机器学习所需要的线性代数

时间:2023-01-01 22:33:59

说明:数学是机器学习的基础,主要是线性代数、高等数学、复变函数、泛函分析、概率论。

本篇文章主要介绍学习机器学习需要用到哪些线性代数知识

推荐书籍:

《线性代数的几何意义》

《线性代数应该这样学》

基本概念

标量:标量就是0维的数,比如自然数,实数,就是一个单独的数


向量:向量的概念来自于物理,矢量,比如力是有方向的。向量是一列有序数,一维的

机器学习所需要的线性代数

张量:张量是一种映射,张量概念是矢量概念的推广,矢量是一阶张量。张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。比如矩阵的乘法,AB=C。可以看做矩阵A在以B为基的空间中进行转换得到C。


矩阵:矩阵是一个二维数组,可以想象成向量的集合,不过向量的维度要一致。如果一个实数矩阵高度为m,宽度为n,那么我们说矩阵是一个m*n的实矩阵


行列式:行列式,记作det(A),是一个将方阵A 映射到实数的函数。行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是1,那么这个转换保持空间体积不变。


对角矩阵:是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。也常写为diag(a1,a2,...,an) 值得一提的是:对角线上的元素可以为 0 或其他值。不是所有的对角矩阵都是方阵。长方形的矩阵也有可能是对角矩阵。非方阵的对角矩阵没有逆矩阵,但我们仍然可以高效地计算它们的乘法。对于一个长方形对角矩阵D 而言,乘法Dx 会涉及到x 中每个元素的缩放,如果D 是瘦长型矩阵,那么在缩放后的末尾添加一些零;如果D 是胖宽型矩阵,那么在缩放后去掉最后一些元素。


对称矩阵:一个矩阵的转置和其相等的矩阵就成为对称矩阵


正交矩阵:是指行向量和列向量是分别标准正交的方阵

机器学习所需要的线性代数

相似矩阵:如果A、B皆为n阶矩阵,如果矩阵p可逆,且满足:P^(-1)*B*P=A 那么我们称A和B相似,相似矩阵的性质是:

 机器学习所需要的线性代数 

(1) A~ B

(2) 若A~ B,则 B~ A

(3) 若ABB~ C,则A~ C

(4) 若A~ B,则r(A)=r(B),|A|=|B|,tr(A)=tr(B).

(5) 若A~ B,且A可逆,则B也可逆,且B~ A

(6) 若A~ B,则AB有相同的特征方程,有相同的特征值

A对角矩阵相似,则称A可对角化矩阵,若n阶方阵An线性

无关的特征向量,则称A单纯矩阵

可以参考链接:http://dec3.jlu.edu.cn/webcourse/t000022/teach/chapter5/5_3.htm

单位矩阵和逆矩阵

单位矩阵:所有沿主对角线的元素都是1,而所有其他位置的元素都是0

如下图:

机器学习所需要的线性代数
这是一个三阶单位矩阵。

逆矩阵:如果矩阵AB=I,其中I为单位矩阵,那么称B为A的逆矩阵。

机器学习所需要的线性代数

线性相关


在一个N维空间中,如果一个向量A可以由其他向量线性表示,那么就说A与这些向量线性相关。另外的说法就是,一个向量组里,只要有一个向量可以由其它向量线性表示,我们就称这个向量组线性相关。反之,如果向量组里的任意一个向量都不能由其它向量线性表示,我们就称向量组线性无关。


如下来自《线性代数的几何意义》

仔细研究,我们就会发现一些规律,就是在二维平面上:

如果两个向量线性相关,那么这两个向量必然在一条直线上(这也是“线性相关”术语的由来),两个向量的方向或者相同或者相反;反之也成立,例如向量α4 , α 5 , α 7 在一条直线上,因此两两相关;

解释:因为在一条直线上的所有向量中的两个向量都具有x倍数的关系:β = x α ,所有向量都线性相关。


不在一条直线上的任意两个向量一定线性无关;如向量α1 , α 2 , α 3 , α 4 ( or α 5 or α 7 ), α 6 两两

线性无关。

解释:因为一个向量必然不能被另外一个向量线性表示。如果一个向量能够被另外一个向量线性表示的话即β= x α ,那么这两个向量就是 x倍数的关系,就会在一条直线上。这与命题的前提矛盾。


在二维平面空间上,任意三个向量必然相关,{α 1 , α 2 , α 3 },{ α 2 , α 6 , α 7 }等。当然,

个以上的向量也必然线性相关。


我们可以这么去理解线性相关,如果一个向量在一组向量的线性子空间中,那么这个向量就和该向量组线性相关,否则就不相关。这里提到了线性子空间,这里解释下:


线性子空间:设{α 1 , α 2 ... α m }n维向量空间V的一个向量组,m ≤ n ;这个向量组的所有的线性组合生成一个向量空间:

Span{ α 1 , α 2 ... α m } = { x 1 α 1 + x 2 α 2 ... + x m α m | x 1, x 2 ... x m ∈ R }

向量空间 Span{ α 1 , α 2 ... α m } 称为由向量 α1 , α 2 ... α m 张成的子空间。


对于线性方程组:Ax=b,我们有以下结论

如果bA的列向量组成的线性子空间中,那么方程组有解,反之无解。至于有唯一解还是无数解,就要看A的列向量组成的线性子空间到达b的方式有多少种,如果只有1种就是只有一个解,无数种就有无数解。不存在大于1种而小于无数种的情况。



特征值及特征向量

参考《deeplearning》一书


对于一个数字,我们可以对其进行质因数分解,比如:10=2*5,我们可以得到如下结论,10可以被2或者5整除。同


样,对于一个矩阵,我们可以通过特征值和特征向量进行表示。如果矩阵对某一个向量或某些向量只发生伸缩变换,


不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。下面讲具体定义


如果一个矩阵可以表示:非零向量vAv= λv.标量λ被称为这个特征向量对应的特征值(eigenvalue)


vA的特征向量,那么任何缩放后的向量sv(s ∈ R,s ̸ = 0) 也是 A的特征向量。此外,svv有相同的特征值。基于这个原


,通常我们只考虑单位特征向量。


同时矩阵A可以表示为:A= Vdiag(λ)V^(-1)


特征向量是线性不变量

所谓特征向量概念的亮点之一是不变量,这里叫线性不变量。因为我们常讲,线性变换啊线性变换,不就是把一根线(向量)变成另一根线(向量),线的变化的地方大多是方向和长度一块变。而一种名叫“特征向量”的向量特殊,在矩阵作用下不变方向只变长度。不变方向的特性就被称为线性不变量。

如果有读者坚持认为负方向的特征向量就是改变了向量的方向的想法的话,你不妨这样看线性不变量:特征向量的不变性是他们变成了与其自身共线的向量,他们所在的直线在线性变换下保持不变;特征向量和他的变换后的向量们在同一根直线上,变换后的向量们或伸长或缩短,或反向伸长或反向缩短,甚至变成零向量(特征值为零时)

奇异值分解

上节中,我们将矩阵分解为特征向量和特征值的乘积,A= Vdiag(λ)V^(-1)。但是很多时候,矩阵是没有特征值的,那

就没法这样干了,所以我们采取了另外的姿势,奇异值分解。

假设 A是一个 m× n 的矩阵,那么U是一个m× m 的矩阵,D是一个m× n的矩阵,V是一个n× n 矩阵

有:A= UDV^(T) .

这些矩阵中的每一个经定义后都拥有特殊的结构。矩阵UV都被定义为正交矩阵,而矩阵D被定义为对角矩阵。注意,

矩阵D不一定是方阵。对角矩阵D对角线上的元素被称为矩阵A的 奇异值(singularvalue)。矩阵U的列向量被称为 左奇

异向量(leftsingular vector),矩阵V的列向量被称 右奇异

向量(rightsingular vector)。事实上,我们可以用与A相关的特征分解去解释A的奇异值分解。A的 左奇异向量(leftsingular

vector)AA^(T)的特征向量。A的 右奇异向量(rightsingularvector)A^(T)A的特征向量。A的非零奇异值是A^(T)A

特征值的平方根,同时也是AA^(T)特征值的平方根。

可以参考:

http://blog.csdn.net/zhongkejingwang/article/details/43053513


主成分分析(PCA)

主成分分析本质上是将一个矩阵在新的基表示下进行转换。从高维空间压缩到低维空间。

形式化的解释可以参考:http://blog.codinglabs.org/articles/pca-tutorial.html

个人认为写的还不错


这里我贴出《deep learning》的严格数据证明

机器学习所需要的线性代数

机器学习所需要的线性代数

机器学习所需要的线性代数

机器学习所需要的线性代数

机器学习所需要的线性代数