CS131 Lecture03: 线性代数初级 Part2

CS131 Lecture03: 线性代数初级 Part2

by:斯坦福大学计算机科学系
github: https://github.com/zhaoxiongjun/CS131_notes_zh-CN (包含中英文版课件及相关课程视频)

由于公式较多,这篇文章强烈建议移步github下载中文版的pdf版观看,感谢理解!!!

1 向量和矩阵回顾

向量

列向量v ∈ R^(n*1) :

行向量 v^T ∈ R^(1*n) :(T 表示转置操作)

范式:

更多关于向量和矩阵范式解释:
https://www.zhihu.com/question/20473040/answer/102907063
矩阵
一个mn的矩阵A ∈ R^(mn):
如果m=n,则A是一个方阵

矩阵的应用

灰度图像在每个像素有一个数值,被存储在一个m*n的矩阵。彩色图像每个像素有3个数值——红色,绿色,蓝色(即对应三通道)

矩阵的初等变换

矩阵可以通过乘法以有用的方式转换向量。最简单的应用是通过缩放,或者将一个缩放矩阵的对角线上有标量乘以向量。
我们也可以用矩阵来旋转向量。当我们把一个矩阵和一个向量相乘;得到的x坐标是原始向量点乘第一行。
为了将一个向量逆时针旋转一个角度θ:

这相当于:P’= RP (P和P’指向量,R是旋转的变换矩阵M)
我们同样可以通过矩阵乘法转换一个点。比如,p’= R2R1Sp。这个转换是从右往左,一层接一层。在我们的例子中,这个等于(R2(R1(Sp)))。
为了翻译向量,我们必须实现一个有点粗糙的解决方案,在向量的最末端添加一个“1”。这样,使用这些“齐次坐标”,我们也可以转换向量。乘法运算的结果是将矩阵最右边的列加到各自的坐标上。均匀矩阵的底行将有[0 0 1]以确保元素被正确添加,并且结果向量的底行有“1”。
按照惯例,在齐次坐标系下,在进行矩阵乘法后,将结果除以最后一个坐标。

因此,为了得到P(x;y)—> P’=(SxX;SyY)的结果,我们必须首先P=(x;y)—>(x;y;1)然后P’=(SxX;SyY)—>(SxX;SyY;1)这样我们才能进行矩阵乘法SP。但是,我们必须注意缩放后平移与平后缩放是不同的。换句话说,TSP ≠ ST*P
任何旋转矩阵R都属于正规矩阵的范畴,它满足以下性质。例如,RR^T=I和det(R)=1
旋转矩阵的行总是是相互垂直的(a.k.a.正交)单位向量;这使得它能够满足上面提到的一些独特特性。

逆矩阵

给一个矩阵A,它的逆矩阵A^(-1)定义如下:

I 表示有同样尺寸的单位矩阵
一个逆矩阵例子:

矩阵不一定有逆矩阵。如果存在A^(-1),则称A为可逆或非奇异。对于可逆矩阵,一些有用的恒等式是:

伪逆矩阵

在线性代数问题中,经常需要解X的AX=B方程。你需要计算A(-1),然后两边相乘得到X=A(-1)B。在python中,这个命令是:np.linalg.inv(A)*B。
然而,对于大型浮点矩阵,计算逆矩阵可能非常昂贵,而且可能不准确。对于A,甚至都不可能存在一个逆函数。我们应该怎么做?

矩阵的秩
转换矩阵A的秩告诉您它将一个矩阵转换为多少维。
Col-rank(A)=A的线性无关列向量的最大数目。
Row-rank(A)=A的最大线性无关行向量数。列秩始终等于行秩。
对于转换矩阵,秩表示输出的维数。例如,如果A的秩为1,则转换P’=AP指向一条直线。
满秩矩阵-如果m*m,则秩为m
奇异矩阵-如果m*m矩阵的秩小于m,因为至少有一个维度正在收缩。(无法判断结果的输入值)–>对于非方形矩阵,不存在逆矩阵。

特征向量(SVD)

定义

线性变换A的特征向量x是一个非零向量,当A作用于它时,它不会改变它的方向。将A作用于特征向量,用一个称为特征值的标量来缩放特征向量。
下面的方程描述了特征值和特征向量之间的关系:

求特征向量和特征值

如果我们要求A的特征向量,我们可以用如下方法求解:

因为x是非零向量,因为我们可以将上式变为:

解这个方程给出了A的特征值,这些特征值可以代入原方程,找到相应的特征向量。
性质
矩阵A的迹线等于其特征值之和:

矩阵A的行列式等于特征值的乘积:
			 
矩阵A的秩等于A的非零特征向量的数量。
一个对角矩阵D的特征值就等于其对角线的值

谱理论

定义
特征对是特征值及其相关特征向量的对。
和λ关联的特征空间是向量空间,其中:

矩阵A的谱是所有特征值的集合:
	 C是所有特征值的空间
A的谱半径是其最大值特征值的大小:

 定理:谱半径

可参考:https://blog.csdn.net/lanchunhui/article/details/50619305

对角化

一个nn的矩阵A有n个线性无关特征向量时,它是可对角化的。大多数方阵是可对角化的。
正规矩阵是可对角化的需要满足:
A
是A的共轭矩阵(共轭复数)
矩阵有n个不同的特征值是可对角化的
引理:与不同特征值相关的特征向量是线性无关的。
要使矩阵A对角化,需要考虑其特征值和特征向量。我们可以构造矩阵D和V,其中D是A特征值的对角矩阵,V是相应特征向量的矩阵:

因为我们知道:AV = VD
所以我们可以把A对角化,通过:A = VDV^(-1)
如果所有特征值都是唯一的,那么v是正交的。因为正交矩阵的逆矩阵是它的转置,所以我们可以把对角化写成:A = VDV^T

对称矩阵

如果A是对称的,那么它的所有特征值都是实数,并且它的特征向量是正交的。回顾上述对角化方程,我们可以通过以下方式对A进行对角化:A = VDV^T
利用上面的关系,我们可以写出下面的关系式:
给定y = V^T x : 有

因此,如果我们想作下面的最大化:

然后通过求A的最大特征值对应的特征向量,得到最大X。
应用
特征值和特征向量的一些应用:
页面排名
薛定谔方程
主成分分析(PCA)

矩阵演算

梯度

如果函数f: R^(m*n)→R ,把矩阵A作为输入,然后返回一个实数值,那么f的梯度如下:

每个矩阵元素都是:

梯度f(A)的大小总是和A的大小一样,因此,A是一个向量x的话:

梯度的性质

海赛矩阵

关于x的Hessian矩阵可以写成如下式子或H。它是偏导数的n*n矩阵:

需要注意的是,hessian是向量梯度的每个元素的梯度。例如,hessian的第一列是 的梯度。

海赛矩阵:性质

施瓦兹定理:只要二阶导数存在且是连续的,偏导数的阶就不重要。
因此,hessian始终是对称的:

计算样例

都是演算公式,看原版即可!

你可能感兴趣的:(机器学习,CV路漫漫)