【算法工程师的数学基础】系列将会从线性代数、微积分、数值优化、概率论、信息论五个方面进行介绍,感兴趣的欢迎关注【搜索与推荐Wiki】公众号,获得最新文章。
《算法工程师的数学基础》已更新:
线性代数主要包含向量、向量空间(或称线性空间)以及向量的线性变换和有限维的线性方程组。本篇文章主要介绍线性代数部分中的矩阵知识。
线性映射
线性映射(linear map) 是指从线性空间V到线性空间W的一个映射函数:f→W,并满足:对于V中任何两个向量u和v以及任何标量c,有:
f(u+v)=f(u)+f(v)f(cv)=cf(v)
两个有限维欧式空间的映射函数f:Rn→Rm可以表示为:
y=Ax=Δ⎣⎢⎢⎢⎢⎢⎢⎡a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn...am1x1+am2x2+...+amnxn⎦⎥⎥⎥⎥⎥⎥⎤
其中A定义为m∗n的矩阵(matrix),是一个由m行n列元素排列成的矩形阵列。一个矩阵的第i行,第j列上的元素表示为Aij。
矩阵操作
加 如果A和B都是 m∗n的矩阵,则A和B的加法结果也是 m∗n的矩阵,其每个元素都是A和B对应位置元素相加。
[A+B]ij=aij+bij
乘积 假设有两个A和B分别表示两个线性映射g:Rm→Rk和f:Rn→Rm,则其复合线性映射:
(g∘f)(x)=g(f(x))=g(Bx)=A(B(x))=(AB)(x)
其中AB表示矩阵A和B的乘积,定义为:
[AB]ij=k=1∑maikbkj
两个矩阵的乘积仅当第一个矩阵的列数和第二个矩阵的行数相等时才能定义。如果A为k∗m,B为m∗n,这A∗B的结果是一个k∗n的矩阵。
矩阵的乘法满足结合律和分配律:
- 结合律:(AB)C=A(BC)
- 分配律:(A+B)C=AC+BC,C(A+B)=CA+CB
Hadamard积 A和B的Hadamard积,也称为逐点乘积,为A和B中对应的元素相乘。
[A⊙B]ij=aijbij
一个标量c与矩阵A乘积为A的相应位置的元素与c的乘积:
[cA]ij=caij
转置 m∗n矩阵A的转置(transposition)是一个n∗m的矩阵,记为AT,AT的第i行第j列的元素是原矩阵A的第j行第i列的元素
[AT]ij=[A]ji
向量化 矩阵的向量化是将矩阵表示为一个列向量。这里vec是向量化算子。设A=[aij]m∗n,则:
vec(A)=[a11,a21,...,am1,a12,a22,...,am2,...,a1n,...,amn]T
迹 方块矩阵A的对角线元素之和称为它得迹(trace),记为tr(A)。尽管矩阵得乘法不满足交换律,但它们得迹相同,即tr(AB)=tr(BA)
相信读者看到这里,肯定会有疑问,这么简单的「迹」,有什么特殊意义的?因为迹是有所有矩阵特征值的和,在求矩阵特征值的时候特别重要。
行列式 方块矩阵A的行列式是一个将其映射到标量的函数,记作det(A)或∣A∣。行列式可以看做是有向面积或体积的概念在欧氏空间的推广。在n维欧式空间中,行列式描述的是一个线性变换对体积所造成的影响。
一个n∗n的方块矩阵A的行列式定义为:
det(A)=σ∈Sn∑sgn(σ)i=1∏nai,σ(i)
其中 Sn 是 {1,2,...,n}的所有排列的集合,σ是一种一个排列,σ(i)是元素i在排列σ中的位置,sgn(σ)表示排列σ的符号差,定义为:
(σ)={10
当σ中的逆序对有偶数个是为1,当σ中的逆序对有奇数个是0
其中逆序对的定义为:在排列σ中,如果有序数对(i,j)满足1≤i<j≤n但σ(i)>σ(j),则其为σ的一个逆序对。
秩 一个矩阵A的列秩是A的线性无关的列向量数量,行秩是A的线性无关的行向量数量。一个矩阵的列秩和行秩总是相等的,简称为秩(rank)。
一个m∗n的矩阵的秩最大为min(m,n)。两个句子的乘积AB的秩rank(AB)≤min(rank(A),rank(B))。
范数 矩阵的范数有很多种形式,其中常用的lp范数定义为:
∣∣A∣∣p=(i=1∑mj=1∑n∣aij∣p)1/p
矩阵类型
对称矩阵(symmetric) 指其转置等于自己的矩阵,即满足A=AT。
稀疏矩阵(sparse matrix) 矩阵中分布有大量的元素 0,即非 0 元素非常少,这类矩阵称为稀疏矩阵。如下:
⎣⎡000101020⎦⎤
上(下)三角矩阵 一个 m∗m的矩阵的对角线称为主对角线,如果除主对角线之外的元素全部为0,则主对角线下的矩阵称为上三角矩阵,主对角线上的矩阵称为下三角矩阵

对角矩阵(diagonal matrix) 是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。一个n∗n的对角矩阵A满足:
[A]ij=0ifi=j,∀i,j∈{1,...,n}
对角矩阵A也可以记为diag(a),a为一个n维向量,并满足:
[A]ij=ai
n∗n的对角矩阵A=diag(a)和n维向量b的乘积为一个n维向量
Ab=diag(a)b=a⊙b
其中$\odot 表示点乘,即(a \odot b)_i = a_i b_i$
单位矩阵(identity matrix) 是一种特殊的对角矩阵,其主对角线元素为1,其余元素为0。 n阶单位矩阵In,是一个n∗n的方块矩阵,可以记为In=diag(1,1,1,...)
一个m∗n的矩阵A和单位矩阵的乘积等于其本身
AIn=ImA=A
逆矩阵 对于一个 n∗n的方块矩阵A,如果存在另一个方块矩阵B使得
AB=BA=In
为单位矩阵,则称A是可逆的。矩阵B称为A的逆矩阵(inverse matrix),记为A−1
一个方阵的行列式等于0当且仅当该方阵不可逆。
正定矩阵(positive-definite matrix) 对于一个n∗n的对称矩阵A,如果对于所有的非零向量x∈Rn,都满足xTAx>0,则A为正定矩阵。如果xTAx≥0,则A是半正定矩阵。
正交矩阵(orthogonal matrix) 正交矩阵 A为一个方块矩阵,其逆矩阵等于其转置矩阵。
AT=A−1
等价于AT=AAT=In
Gram矩阵 向量空间中一组向量v1,v2,...,vn的Gram矩阵,G是内积的对称矩阵,其元素Gij为viTvj
特征值与特征矢量
如果一个标量 λ 和一个非零向量v满足:
Av=λv
则 λ和v分别称为矩阵A的特征值(eigenvalue)和特征向量(eigenvector)
矩阵分解
一个矩阵通常可以用一些比较简单的矩阵来表示,称为矩阵分解(matrix decomposition,matrix factorization)
奇异值分解 一个m∗n的矩阵A的奇异值分解(Singualr Value Decomposition,SVD)定义为:
A=UDVT
其中U,V 分别为m∗m,n∗n的正交矩阵,D为m∗n的对角矩阵,其对角线上的元素称为奇异值(singular value)
特征分解 一个n∗n的方块矩阵A的特征分解(Eigendecomposition)定义为:
A=QBQ−1
其中Q为n∗n的方块矩阵,其每一列都为A的特征向量,B为对角阵,其每一个对角元素A的特征值。
如果A为对称矩阵,则A可以被分解为:
A=QBQT
其中 Q为正交阵。
好了,线性代数中的矩阵介绍和相关概念已经介绍完毕了,欢迎转发分享,让更多的人看到!
扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!
