线性代数

1. 从初等函数到高等数学

一元线性函数

在中学的初等数学里,把函数f(x)=kx+bf(x)=kx+bf(x)=kx+b (k,bk,bk,b是不变量),称为一元线性函数,因为在平面直角坐标系中这个函数的图形就是一条线,就是变量(包括自变量和因变量)之间的映射关系描述为一条线,把这种函数形象的称之为“线性”函数(如下图L1L_1L1​);如果b=0b=0b=0,则这个函数就变成了f(x)=kxf(x)=kxf(x)=kx的形式,也即是一条过原点的直线,如下图L2L_2L2​。此时的变量之间的映射是单个数值之间的映射,这类单独的数我们称之为标量(scalar)


在大学的代数里,为了线性函数的进一步推广(如推广至双线性函数、多线性函数、线性空间、线性泛函,… …),把一元线性函数f(x)=kx+bf(x)=kx+bf(x)=kx+b的bbb舍掉,成了f(x)=kxf(x)=kxf(x)=kx的形式。即只有过原点的最简单的直线f(x)=kxf(x)=kxf(x)=kx才能被称为一元线性函数。因为只有这样才能满足线性函数性质。

线性函数性质:可加性和比例性

1)可加性:即如果函数f(x)f(x)f(x)是线性的,则有:和的函数等于函数的和。

f(x1+x2)=f(x1)+f(x2)f(x_1+x_2)=f(x_1)+f(x_2)f(x1​+x2​)=f(x1​)+f(x2​)

2)比例性:也叫做齐次性,数乘性或均匀性,即如果函数f(x)f(x)f(x)是线性的,那么有:比例的函数等于函数的比例;或者说自变量缩放,函数也同等比例地缩放。

f(kx)=kf(x)f(kx)=kf(x)f(kx)=kf(x) 其中kkk是常数。

下图左右分别描述了最简单的标量映射(k>0k>0k>0)及其基本性质:

2. 标量、向量、矩阵、张量

多元线性函数

事实上,高等数学里的线性概念正是从最简单的比例函数进行推广的,在大学里所学习的线性代数里的线性函数概念被推广成一个多元线性方程组所表示的映射关系。如方程组:

这与我们定义的f(x)=kxf(x)=kxf(x)=kx形式相去甚远,使形式统一,我们对变量进行了重新定义:

1)初等数学的线性函数的自变量由一个数xxx扩展为一个竖排的数组[x1x2⋮xn]\left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{matrix} \right]⎣⎢⎢⎢⎡​x1​x2​⋮xn​​⎦⎥⎥⎥⎤​,应变量是一个数yyy也扩展

定义为一个竖排的数组[y1y2⋮ym]\left[ \begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{matrix} \right]⎣⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎤​,这些nnn元数组和mmm元数组称之为列向量(vector)

2)初等线性函数的比例系数kkk扩展为由所有kijk_{ij}kij​构成的一个的数的方阵,称之为系数矩阵(matrix)

[k11k12⋯k1nk21k22⋯k2n⋮⋮⋱⋮km1km2⋯kmn]\left[ \begin{matrix} k_{11} & k_{12} & \cdots & k_{1n}\\ k_{21} & k_{22} & \cdots & k_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ k_{m1} & k_{m2} & \cdots & k_{mn} \end{matrix} \right]⎣⎢⎢⎢⎡​k11​k21​⋮km1​​k12​k22​⋮km2​​⋯⋯⋱⋯​k1n​k2n​⋮kmn​​⎦⎥⎥⎥⎤​

小结

标量、向量、矩阵、张量之间的联系

标量(scalar)
一个标量表示一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。

向量(vector)
一个向量表示一组有序排列的数。通过次序中的索引,我们可以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如xx。向量中的元素可以通过带脚标的斜体表示。向量XXX的第一个元素是X1X_1X1​,第二个元素是X2X_2X2​,以此类推。我们也会注明存储在向量中的元素的类型(实数、虚数等)。

矩阵(matrix)
矩阵是具有相同特征和纬度的对象的集合,表现为一张二维数据表。其意义是一个对象表示为矩阵中的一行,一个特征表示为矩阵中的一列,每个特征都有数值型的取值。通常会赋予矩阵粗体的大写变量名称,比如AAA。

张量(tensor)
在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。使用 AAA 来表示张量“A”。张量AAA中坐标为(i,j,k)(i,j,k)(i,j,k)的元素记作A(i,j,k)A_{(i,j,k)}A(i,j,k)​。

四者之间关系

标量是0阶张量,向量是一阶张量。举例:
标量就是知道棍子的长度,但是你不会知道棍子指向哪儿。
向量就是不但知道棍子的长度,还知道棍子指向前面还是后面。
张量就是不但知道棍子的长度,也知道棍子指向前面还是后面,还能知道这棍子又向上/下和左/右偏转了多少。

张量与矩阵的区别

  • 从代数角度讲, 矩阵它是向量的推广。向量可以看成一维的“表格”(即分量按照顺序排成一排), 矩阵是二维的“表格”(分量按照纵横位置排列), 那么nnn阶张量就是所谓的nnn维的“表格”。 张量的严格定义是利用线性映射来描述。
  • 从几何角度讲, 矩阵是一个真正的几何量,也就是说,它是一个不随参照系的坐标变换而变化的东西。向量也具有这种特性。
  • 张量可以用3×3矩阵形式来表达。
  • 表示标量的数和表示向量的三维数组也可分别看作1×1,1×3的矩阵。

3)然后定义一种系数矩阵与向量(矩阵)相乘的运算法则,则式(1)可以改写成如下形式:

[y1y2⋮ym]=[k11k12⋯k1nk21k22⋯k2n⋮⋮⋱⋮km1km2⋯kmn][x1x2⋮xn](2)\left[ \begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{matrix} \right]=\left[ \begin{matrix} k_{11} & k_{12} & \cdots & k_{1n}\\ k_{21} & k_{22} & \cdots & k_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ k_{m1} & k_{m2} & \cdots & k_{mn} \end{matrix} \right]\left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{matrix} \right] \tag {2}⎣⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎤​=⎣⎢⎢⎢⎡​k11​k21​⋮km1​​k12​k22​⋮km2​​⋯⋯⋱⋯​k1n​k2n​⋮kmn​​⎦⎥⎥⎥⎤​⎣⎢⎢⎢⎡​x1​x2​⋮xn​​⎦⎥⎥⎥⎤​(2)

式(2)与(1)等价。

矩阵和向量相乘结果

若使用爱因斯坦求和约定(Einstein summation convention),矩阵AAA, BBB相乘得到矩阵CCC可以用下式表示:
aik∗bkj=cija_{ik}*b_{kj}=c_{ij} aik​∗bkj​=cij​
其中,aika_{ik}aik​, bkjb_{kj}bkj​, cijc_{ij}cij​分别表示矩阵A,B,CA, B, CA,B,C的元素,kkk出现两次,是一个哑变量(Dummy Variables)表示对该参数进行遍历求和。
而矩阵和向量相乘可以看成是矩阵相乘的一个特殊情况,例如:矩阵BBB是一个n×1n \times 1n×1的矩阵。

4)式(2)可进一步简写为:

y=f(X)=KXy=f(X)=KXy=f(X)=KX

其中:y=f(X)=[y1y2⋮ym],K=[k11k12⋯k1nk21k22⋯k2n⋮⋮⋱⋮km1km2⋯kmn],X=[x1x2⋮xn]。y=f(X)=\left[ \begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{matrix} \right], K=\left[ \begin{matrix} k_{11} & k_{12} & \cdots & k_{1n}\\ k_{21} & k_{22} & \cdots & k_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ k_{m1} & k_{m2} & \cdots & k_{mn} \end{matrix} \right], X=\left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{matrix} \right]。 y=f(X)=⎣⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎤​,K=⎣⎢⎢⎢⎡​k11​k21​⋮km1​​k12​k22​⋮km2​​⋯⋯⋱⋯​k1n​k2n​⋮kmn​​⎦⎥⎥⎥⎤​,X=⎣⎢⎢⎢⎡​x1​x2​⋮xn​​⎦⎥⎥⎥⎤​。

到此为止,我们终于看到初等线性函数和高等线性函数的概念在形式上得到了统一,同时也引入了标量、向量、矩阵、张量等概念,这些在机器学习的计算中都是最常用的基本单元。那么,这些基本单元究竟应用于机器学习的什么地方呢?下面插入一个例子

例子:卷积是怎么回事?

在最初接触图像处理的时候,我们一般是从图像的平滑(高低通滤波等)开始的,如下图所示:

  • 如上图的平滑,一个典型的8领域平滑,其结果中的每个值都来源于原对应位置和其周边8个元素与一个3X33 X 33X3矩阵的乘积,也就相当于对原矩阵,按照顺序将各区域元素与WWW矩阵相乘,WWW被称作核(Kernel, 3X33X33X3)。

  • 也就是,这个核对图像进行操作,相当于对图像进行了低通滤波(如图中左下角月球图片,亮暗交界的地方变得平滑)。因此这个核也被称为滤波器,整个操作过程按照概念称为卷积。

  • 扩展来讲,对二维图像的滤波操作可以写成卷积,比如常见的高斯滤波、拉普拉斯滤波(算子)等。

图像识别中的卷积

  • 不如我们预想一个识别问题:我们要识别图像中的某种特定曲线,也就是说,这个滤波器要对这种曲线有很高的输出,对其他形状则输出很低,这也就像是神经元的激活。

  • 想要识别一条曲线(左上),对应用一个矩阵表示。

  • 假设上面的核(滤波器)按照卷积顺序沿着右上图移动。

  • 那么当它移动到尾部黄色方框的位置时,按照矩阵操作,将这个区域的图像像素值与滤波器相乘,我们得到一个很大的值(6600)(右下),类似激活了神经元,识别出是我们想要找的曲线。

  • 而当这个滤波器移动到其他区域,如耳部黄色方框,我们得到一个相对很小的值(左下),表明神经元没有激活,该线段不是我们想要的曲线。

  • 对整个原图进行一次卷积,得到的结果中,在那个特定曲线和周边区域,值就很高,在其他区域,值相对低。这就是一张激活图。对应的高值区域就是我们所要检测曲线的位置。

  • 扩展一下,通俗语言来说,当我们判别整个图像是不是小鼠的时候,应用检测各种形状的卷积核(如检测耳朵的圆圈、眼睛的黑点、胡须的直线等),再综合这些卷积核的信息,就得到图片各个部位的激活图,如果符合小鼠的图片,代表该图片是小鼠图片,否则就不是激活图片。

若对VGG16网络的各层卷积核进行可视化(可视化工具toolbox:yosinski/deep-visualization-toolbox),结果如下所示:
conv1

conv2

conv3

conv4

conv5

VGG16卷积核:

  • 低层的卷积核似乎对颜色,边缘信息感兴趣。
  • 越高层的卷积核,感兴趣的内容越抽象(非常魔幻啊),也越复杂。
  • 高层的卷积核感兴趣的图像越来越难通过梯度上升获得(conv5有很多还是随机噪声的图像)

针对这个图像识别的例子,大家可能会有一个疑问:如果我们用一个复杂一点的卷积核,囊括图中小鼠所有部位的特征,这样一次性解决,这样不好么?非得整这么复杂

人工智能之线性代数应用相关推荐

  1. 人工智能数学基础-线性代数2:向量的点积、內积、数量积和外积

    ☞ ░ 老猿Python博文目录░ 一.内积 1.1.定义 内积(inner product)又称数量积( scalar product).点积(dot product),是指接受在实数R上的两个向量 ...

  2. 人工智能数学基础-线性代数3:线性空间、线性相关及基

    ☞ ░ 老猿Python博文目录░ 一.向量空间(线性空间)及基域 线性空间是在考察了大量的数学对象(如几何学与物理学中的向量,代数学中的n元向量.矩阵.多项式,分析学中的函数等)的本质属性后抽象出来 ...

  3. 一、人工智能数学基础——线性代数

    01 向量空间 1.1定义和例子 1.2向量及其运算 1.3向量组的线性组合 1.4向量组的线性相关性 02 内积和范数 2.1内积的定义 2.2范数的定义 2.3内积的几何解释 03矩阵和线性变换 ...

  4. 人工智能数学基础-线性代数4:矩阵及矩阵运算

    ☞ ░ 老猿Python博文目录░ 本节用到了行列式的相关知识,而在行列式中用到了矩阵知识,但总体来说先介绍矩阵再介绍行列式更合适一些,行列式的知识大家只需要知道一个矩阵A对应的行列式记为符号|A|, ...

  5. 人工智能数学基础-线性代数5:行列式求解线性方程组和拉普拉斯定理

    ☞ ░ 老猿Python博文目录░ 一.逆序及逆序数 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.也就 ...

  6. (二)从零开始学人工智能—数学基础:线性代数

    线性代数 上一部分介绍了机器学习的本质是找到一个最优化的映射关系,也就是函数/模型.接下来几章我会陆续给大家介绍AI的数学基础,本章将首先给大家介绍线性代数如何应用于AI. 1. 从初等函数到高等数学 ...

  7. 人工智能相关书籍介绍

    给人工智能初学者看的5本入门书 | 附下载链接 给人工智能初学者看的5本入门书 | 附下载链接_量子位的博客-CSDN博客 史上最完整的人工智能书单大全,学习AI的请收藏好 史上最完整的人工智能书单大 ...

  8. 人工智能数学基础专栏目录

    ☞ ░ 前往老猿Python博文目录 ░ 本专栏为人工智能数学基础,相关内容介绍人工智能相关的数学知识,在老猿学习过程中,会将一些知识的基础知识都在本专栏内体现,尽量做到本专栏涉及知识点的内容闭环. ...

  9. 人工神经网络导论_神经网络导论

    人工神经网络导论 There has been hype about artificial intelligence, machine learning, and neural networks fo ...

最新文章

  1. 吴恩达神经网络和深度学习——第四周笔记
  2. 关于Vue中计算属性computed和methods属性的区别,你了解多少呢
  3. vue 运行报错Module build failed: Error: Node Sass does not yet support your current environment: Windows
  4. CF1110G Tree-Tac-Toe 博弈论、构造
  5. 【UG NX MCD 机电一体化概念设计】UG NX MCD+PLCSIM Advanced联合仿真实例(二 )仿真序列
  6. 大学生创新项目——机房监控系统设计概述
  7. STM32F412 串口接收不到数据的问题
  8. cpu控制器如何工作
  9. 哈尔滨这家咖啡馆,灯饰和楼梯都成了“拍照道具
  10. 解题:由乃OI 2018 五彩斑斓的世界
  11. 阿里云ECS的1M带宽能干嘛?(详解)
  12. M5311模组烤机测试装置(Arduino)
  13. 与思科交换机三层链路聚合连接 ❀ 飞塔 (Fortinet) 防火墙
  14. 隐马尔可夫模型与语音识别
  15. 乔布斯初心与终点:疯子一样的不知妥协
  16. 三阶四阶魔方自动复原程序(Java)
  17. 无组件架构:你不需要知道的“新一代”前端架构模式
  18. vxi11协议服务器的实现,LXI_VXI零槽控制器服务端设计与实现
  19. Android 头像透明背景不透明效果
  20. java中文变成问号怎么解码_alpine 镜像 java 日志中文问号乱码

热门文章

  1. YOLO---Darknet下的学习笔记
  2. 产品经理 - 需求调研常用方法
  3. 计算机毕设Python+Vue学校旧书交易网站(程序+LW+部署)
  4. 已解决pyautogui.FailSafeException: PyAutoGUI fail-safe triggered from mouse moving to a corner of the s
  5. 快手小风车跳转微信生成超链接
  6. Segmentation fault段错误出现原因分析及解决方法笔记
  7. 智慧灯杆网关与智慧路灯
  8. 基于FPGA的扩频系统设计(上)
  9. tornado模板引擎原理
  10. oracle rac lrm 00109,ORA-01078 LRM-00109 解决方案 RAC ASM