斯坦福的CS131课件中的Lecture2,介绍了计算机视觉所需要必备的一些线性代数知识:
- 向量和矩阵
- 矩阵变换
- 矩阵转置
- 矩阵的秩
- 奇异值分解(SVD)【非常重要】
一、向量和矩阵
这部分内容主要介绍了矩阵是什么?向量是什么?矩阵的基本操作以及一些特殊矩阵。而这部分内容对于上大学的学生来说应该是非常简单的一部分,但是斯坦福给出的关于向量和矩阵的定义值得一看,Vectors and matrics are just collections of ordered numbers that represent something:movements in space,scaling factors,pixel brightness,etc. 虽然学过线性代数,但是如果让你对向量和矩阵下定义,是否能给出这样的解释呢?向量和矩阵仅仅是有序的数值的集合,简而言之,是数的集合,而这这些数在现实世界中是有一定的意义的,比如说代表着空间的移动,缩放因子,像素的亮度,而这些东西却是计算机视觉,机器学习,深度学习这些中经常会牵涉到的,所以矩阵在计算机科学中的重要地位不言而喻。在计算机中,图像使用一个一个像素点,而最终需要通过矩阵来表示出来,灰度图像中的每一个像素点代表一个数,而彩色图像属于三通道的,所以一个像素点有三个数值(RGB)。
关于向量:1 向量可以代表二维或者三维空间的偏移。
2 空间中一点其实是起点位于原点的向量。
基本的矩阵操作主要是:Addition(加) /Scaling(缩放)/Dot product(点乘)/Multiplication(乘法)/Transpose(转置)/Inverse(逆)/trace(迹)这些内容在线性代数中应该属于耳熟能详的内容,而需要注意的是向量的内积,即所谓的点乘,这在机器学习中的数学公式推导中用的很多,我们所进行的数学公式操作需要进行向量化表示,而向量的内积往往起到关键的作用,懂得向量内积的操作变化,机器学习中一些基本的数学公式推导就不难理解。下面分别是数学公式的表达以及几何的表示:
二、矩阵变换(Transformation )
变换矩阵中所涉及到的主要操作是Scaling/Rotation/Translation,在了解这三个变换矩阵操作之前,先了解一个概念:Homogeneous Coordinates(齐次坐标),在理解齐次坐标之后,再来看矩阵的变换操作就容易多了!下面是课件中给出的Homogeneous System相关的操作:在矩阵的最后一行加上【0 0 1】以便于结果中出现1
1 、Scaling(缩放)
2、Rotation(旋转)
关于旋转操作的证明过程,参考文章:仿射变换
3、Translation(平移)
上面就是所介绍的矩阵变换中的三种常用基本操作,而这三种的操作又可以进行任意组合:
三、矩阵的逆
在AX=B中,A如果可逆的话,则两边同乘以A的逆即可求出X
若是A不可逆,在计算机中也有伪逆操作来进行相应的处理,所以不用担心这个问题。在MATLAB中是这样进行操作的:
四、矩阵的秩
关于矩阵的秩,基本概念不再赘述,有一个知识需要提及:在矩阵的变换操作中,秩告诉了我们输出向量的维度,如A的秩为1,说明A中的向量线性相关,在对向量【x y】T 进行矩阵变化之后,所得出的向量的维度也是1,与进行矩阵变换操作乘的矩阵的秩是一样的。
另外需要提及的就是满秩以及非奇异的概念。
五:奇异值分解(svd)
奇异值分解所涉及内容请参考我这篇博客文章:SVD