基础概念
矩阵在机器学习算法中经常作为辅助计算的存在,除此以外矩阵论本身就是一门独立的学科,在推荐场景下使用尤其广泛,这里有机会从头看看矩阵的相关知识,分享给代价,勾起大学的青葱回忆?
本节中我们将介绍一些矩阵的基础知识,和一些常用的表达,其实我们经常看论文会发现一些表达上比较生涩,我们很难看懂,导致我们整个论文都比较懵懵懂懂,所以这里的基础知识还是比较重要的,可能看着眼熟,但是就是想起不起是干什么的?这里也尽量的提醒大家,从大家走出校园的那一天就和理论知识老死不相往来了,因为工作中我们希望短平快的解决问题,希望大家有机会还能回到书本中,找到自己做事的依据,废话不多说咱们开始吧。
基础矩阵
主对角线的元素不为0,其他元素都为0的矩阵叫做**对角矩阵**,记作
D=diag(d1,d2,...,dn)
如果对角线上的元素都为1, 那么它就是**单位矩阵**,一般使用符号I来表示,而对于所有元素都为0的矩阵为**零矩阵**,一般我们使用符号O.
对于一个列向量,只有一个元素为1,其他元素皆为0的元素我们称为**基本向量**
n\*n的单位向量可以使用n个基本向量来表示。I=[e1,e2,...,en]
矩阵切片
对于一个完整的矩阵来讲,如果表示某行某列呢?使用过numpy的同学肯定会有这样的困惑,总是截取不到自己想要的元素,其实在矩阵定义的时候已经说明了这一点了。
A(i,:) : A的第i行
A(:,j): A的第j列
A(p:q,r:s): A的p行到q行,第r列到第s列组成的子矩阵。
矩阵的基本运算
矩阵加法
A+B=a[i][j]+b[i][j]
假设α是一个标量,那么有如下标量与矩阵的乘法的计算公式
\alpha A=\alpha\*a_{ij}
矩阵乘法
一个矩阵是m\*n维矩阵A,和r\*s维矩阵B,如果矩阵A和矩阵B能够相乘的必要条件是n=r,并且相乘的结果为m\*s维。
a=aik
b=bkj
AB=k=1∑nab
矩阵计算定律
A+B=B+A
A+B+C=A+(B+C)
ABC=A(BC)
(A+B)C=AC+BC
α(A+B)=αA+αB
逆矩阵和转置矩阵
如果A矩阵可逆,是可以找到另一个矩阵A−1,使得
AA−1=I
对于A矩阵的共轭矩阵表示为AC,共轭转置表示为AH,矩阵的转置表示AT,那么会有如下计算规则。
(A+B)C=AC+BC
(A+B)T=AT+BT
(A+B)H=AH+BH
(AB)T=BTAT
(AB)H=BHAH
(AB)−1=B−1A−1
幂等矩阵
如果A是一个幂等矩阵,那么A将满足如下条件,若$$A^2=AA=A$$,则有如下条件成立
An=A
I−A也是幂等矩阵
AH是幂等矩阵
I−AH是幂等矩阵
如果有一个幂等矩阵B,并且AB=BA,那么AB也是幂等矩阵
A(I−A)=O,O为零矩阵
函数f(sI+tA)=(I−A)f(s)+Af(s+t)
对合矩阵
如果矩阵A是对合矩阵或是幂单矩阵,若$$A^2=AA=I$$
若A是对合矩阵那么有如下性质。
f(sI+tA)=21[I+A]f(s+t)+(I−A)f(s−t)
幂等矩阵合和对合矩阵有什么关系呢?
如果矩阵A是对合矩阵,当且仅当21(A+I)是幂等矩阵
向量的线性无关性
如果表达式a1x1+a2x2+..+anxn=b,写成矩阵的表达形式为Ax=b,若只有零解,a1=a2=..=an=0成立,那么就称向量a和x线性无关,反之则成为线性相关。
对于n\*n的矩阵A,如果Ax=0是非奇异的,当且仅当Ax=0只有一个零解,x=0。如果存在非零解,则是奇异的。