您的位置:首页 > 其它

深度学习第二章-线性代数笔记

2017-07-26 11:00 239 查看
本章主要介绍与深度学习相关的线性代数知识。

2.1 标量、向量、矩阵和张量

标量 (scalar) 、向量 (vector)、矩阵 (matrix)

张量 (tensor) :一般地,一个数组中的元素分布在若干维坐标的规则网格中,称之为张量。

转置 (transpose) : 以主对角线(左上到右下)为轴进行镜像操作。将矩阵A转置表示为AT,定义如下:(AT)i,j=Aj,i(1)向量可以看作只有一列的矩阵。

两个矩阵相加指矩阵形状相同,对应位置的元素相加:C=A+B,其中Ci,j=Ai,j+Bi,j。

标量和矩阵相乘或相加,指标量与矩阵每个元素相乘。

在深度学习中,允许矩阵和向量相加:C=A+b,表示向量b和矩阵A的每一行相加(需要列数相同),这种隐式地复制向量b到很多位置的方式称为广播(broadcasting)。

import numpy as np
A = np.array([[1,2,3],[4,5,6]])
b = [1,1,1]
C = A+b
print(C)

[[2 3 4]
[5 6 7]]

bb = [1,1]
print (A + bb)

ValueError: operands could not be broadcast together with shapes (2,3) (2,)


2.2 矩阵和向量相乘

元素标准乘积:矩阵A的形状是 m×n,矩阵B的形状是 n×p,那么矩阵C的形状是m×p ,矩阵乘法:C=AB(2)具体地:Ci,j=∑kAi,kBk,j(3)

元素对应乘积(element-wise product)或哈达玛Hadamard乘积,记为A⊙B

两个维数相同的向量x和y点积(dot product),可看作矩阵乘积 xTy。表示对应元素相乘后求和得到标量。

2.3单位矩阵和逆矩阵

单位矩阵(identity matrix):所有沿主对角线的元素都是1,其他位置元素为0,表示为In。任意向量和单位矩阵相乘,都不会改变。latex矩阵写法latex矩阵写法[]

⎡⎣⎢⎢⎢⎢⎢10⋮001⋮0⋯ ⋯ ⋱⋯ 00⋮1⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢1336⋮412234⋮86⋯ ⋯ ⋱⋯ 6722⋮88⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢1336⋮412234⋮86⋯ ⋯ ⋱⋯ 6722⋮88⎤⎦⎥⎥⎥⎥⎥(4)

矩阵A的逆记作A−1,其定义为:A−1A=In。

2.4 线性相关和生成子空间

2.5范数

Latex输入双竖线:一道杠用 |x| 就行,或 \vert,或者左右分别用 \lvert、\rvert,两道杠用 \Vert,或左右用 \lVert、\rVert

boldmath 公式加粗斜体但是mathjax不支持? 用\vec加个箭头

Lp 范数定义:∥x⃗ ∥p=(∑i|xi|p)1p(5)

当 p=2 时,L2称为欧几里得范数(Euclidean norm),表示从原点出发到向量x⃗ 的欧几里得距离,通常简化为∥x∥。

当 p=1 时,L1范 数:∥x∥1=∑i|xi|(6)

当 p=∞,最大范数(max norm),表示最大幅值的元素绝对值:∥x∥∞=maxx|xi|(7)

深度学习中,衡量矩阵大小用Frobenius范数(Frobenius norm):∥A∥F=∑i,jA2i,j−−−−−−√(8),类似于向量的L2范数。

2.6特殊矩阵和向量

对角矩阵(diagonal matrix)只在主对角线上有非零元素。

单位向量(unit vector)是具有单位犯数(unit norm)的向量:∥x⃗ ∥2=1(9),

如果x⃗ Ty⃗ =0,则x⃗ 和y⃗ 正交(orthogonal),夹角90∘。

标准正交(orthonormal):这些向量不仅互相正交,并且范数都为1。

正交矩阵(orthogonal matrix)指行向量和列向量是分别标准正交的方阵:ATA=AAT=I(10)即:A−1=AT(11)

2.7 特征分解

特征向量和特征值查看如何理解特征值,理解了之后具体看计算例子特征值计算

在这里说一下特征向量(eigenvector) v,矩阵 A,特征值(标量) λ。满足:Av=λv(11)

举例:A=[2231],按特征值计算,解得λ=−1,4(具体参考上文第二篇[特征值计算](http://blog.csdn.net/u010182633/article/details/45921929)),当λ=−1,v=[−11],所以形式上:

[2231][−11]=λ[−11]可以计算得到上式左侧结果为[1−1],和[−11]在方向上相同,只是乘了长度**特征值λ**

特征分解(eigendecomposition):A=Vdiag(λ)V−1 ,根据如何理解特征值描述:

特征值就是运动的速度

特征向量就是运动的方向



结合上文看,在求解特征值时用到了特征分解。

所有特征值都是非负数的矩阵称为半正定(positive semidefinite)

∀x,xTAx≥0

所有特征值都是正数的矩阵称为正定(positive definite)

∀x,xTAx≥0,且若 xTAx=0 , x=0

所有特征值都是负数的矩阵称为负定(negative definite)

所有特征值都是非负数的矩阵称为半负定(negative semidefinite)

2.8奇异值分解

与特征分解类似,奇异值分解(singular value decomposition,SVD),将矩阵分解成奇异向量(singular vector)和奇异值(singular value),将A分解为三个矩阵的乘积:A=UDVT假设A 为 m×n,那么U 为 m×m,V 为 n×n。D对角线上的元素称为矩阵A的奇异值。U V分别为左奇异向量,右奇异向量

2.9 Moore-Penrose伪逆

由于非方矩阵没有逆矩阵定义。利用2.8节奇异值分解,对矩阵A 的伪逆:A+=VD+UT其中D+是通过D对角矩阵非零元素取倒数之后转置得到。可求:x=A+y

若矩阵A行数大于列数,一般逆方法没有解,通过伪逆使得Ax和y的欧几里得距离∥Ax−y∥2最小。

若矩阵A列数大于行数,可能有多个解,通过x=A+y的解欧几里得距离∥x∥2最小。

2.10 迹运算

迹运算返回矩阵对角的和:Tr(A)=∑iAi,i

2.11 行列式

记作det(A),行列式等于矩阵特值的乘积。就是按顺序右下方向元素乘后的和,减去左下方向元素相乘后的和,具体运算查书或者百度。

2.12 实例:主成成分分析(PCA)

主成成分分析(principal components analysis,PCA),有损压缩。

具体原理是减去均值后,根据上述特征向量及特征值的分解,找到信息量最大的某些特征,将其提取,实现了有损压缩。

主成成分分析原理详解,可以结合特征向量和特征值的原理一起看,如2.7节中的几篇特征值和特征向量的解释。

————————————————–

SVD支持任意矩阵伪逆

累计贡献率(方差,即信息量) >85%

PCA降维、压缩(06年之前)只解决线性,非线性t-SNE(cs231n有介绍,网易云课堂2016年版本 (课时18吧大概)卷积神经网络可视化部分)->流型:非线性方法提取内部结构

人工:霍夫曼编码;自动:线性:PCA;非线性:t-SNE(12年Hinton高维可视化);autoencoder

矩阵的几何意义,实际上是对坐标的缩放切变旋转等:见博客

计算时通常将大矩阵分解成若干个小矩阵,提高计算效率

行列式>1 :放大

行列式=0 降维,不可逆

0<行列式<1 缩小

行列式<0 反射

随时补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: