线性代数基本只要是理工科,都是必修的一门课。当时学习的时候总是有一个疑惑,这个东西到底是干嘛用的?为什么数学家发明出这么一套方法呢,感觉除了解方程没发现有什么大用啊!但随着学习的深入,慢慢发现矩阵的应用其实还是挺广泛的,无论是信号处理,特征提取,还是图片处理等方面都有着非常广泛的应用。
上周写了概率论的内容,发现根本没有人看啊,心好塞……所以还是不讲太多理论的内容了,就简单介绍一下线性代数中比较基本的概念,然后通过一个小应用即通过SVD分解提取图片主要特征来认识一下线性代数在机器学习中的作用。
基本概念
行列式:矩阵中任一行(或列)的各元素与其对应的代数余子式的乘积之和。
伴随矩阵:各元素代数余子式构成的矩阵的转置。
其中,伴随矩阵左乘原矩阵就可以得到一个对角元素全是行列式的对角阵。
矩阵的乘法:对应的行和列的元素相乘相加。
特别要提的是矩阵和向量的乘法,比如矩阵A(m行n列)和一个列向量(n行1列)相乘得到一个m维的列向量,那么这样其实矩阵A就对应了一个从n维空间到m维空间的线性映射(旋转,平移,侧切等)。
矩阵的秩:矩阵A中有一个不等于0的r阶子式D,并且所有的r+1阶子式全等于0,那么D称为A的最高阶非零子式,r为矩阵的秩。
这个解释其实很不友好,完全不知道它的意义在哪儿。其实所谓秩,对应的是该矩阵象空间的维数,这样就可以理解为什么可以用秩来判断方程的解的个数。对于Ax=b,如果(A,b)的秩大于A的秩,那么说明引入b后,象空间维数上升,因此原来的A的象空间无法表达b,方程无解。而如果(A,b)的秩和A相等,说明b的引入不改变A象空间的维数,因此b可在A的象空间中表示,而一旦这个秩比未知数个数还小,那么就有无穷多解了。
正交阵:若n阶矩阵满足A.T*A=I,则称A为正交矩阵。(即A的行(列)都是单位向量,且两两正交)
特征值和特征向量:若A是n阶矩阵,若 数λ和非0列向量x满足Ax=λx,则称数λ为A的特征值,x称为λ对应的特征向量。
矩阵A与其特征向量相乘得到特征值乘以该特征向量,因此矩阵对特征向量只做了拉伸变换,而这个特征值的大小表明了该特征的重要性。
特征值分解:比如对于矩阵A而言,有三个特征向量,Ax1=λ1x1,Ax2=λ2x2,Ax3=λ3x3,则有A(x1,x2,x3)=(x1,x2,x3)B,其中B为对角线是λ1,λ2,λ3的阵,再进一步就有A=(x1,x2,x3)B(x1,x2,x3)^-1。