机器学习---线性代数基础知识点
1.标量
一个标量就是一个单独的数,一般用小写的的变量名称表示。
2.向量
一个向量就是一列数,这些数是有序排列的。用过次序中的索引,我们可以确定每个单独的数。通常会赋予向量粗体的小写名称。当我们需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的纵柱:
我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。
3.矩阵
矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说。
3.1矩阵的正定性
1.首先半正定矩阵定义为:
(正定是:xTAx>0)
其中X 是向量,M 是变换矩阵。
我们换一个思路看这个问题,矩阵变换中,
代表对向量 X进行变换,我们假设变换后的向量为Y,记做
于是半正定矩阵可以写成:
这个是不是很熟悉呢? 他是两个向量的内积。 同时我们也有公式:
||X||, ||Y||代表向量 X,Y的长度,θ是他们之间的夹角。
于是半正定矩阵意味着
这下明白了么?正定、半正定矩阵的直觉代表一个向量经过它的变化后的向量与其本身的夹角小于等于90度。
2.考虑矩阵的特征值。
若所有特征值均不小于零,则称为半正定。
若所有特征值均大于零,则称为正定。
3.2矩阵的特征值分解(特征值分解的矩阵只能是方阵!!!)
特征值
如果一个非零向量v是方阵A的特征向量,将一定可以表示成下面形式,而λ是特征
向量v对应的特征值:
特征值分解是将一个矩阵分解成下面的形式:
其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的
元素就是一个特征值。一个矩阵的一组特征向量是一组正交向量。
【练习题】求解矩阵A的特征值与特征向量。
方阵的特征值表示什么含义呢,我们通过一组向量图表示。初始状态下,i(红色)和j(蓝色)表示二维坐标平面下的两个单位向量,v是空间上任意一条向量(绿色)
用方阵A左乘向量v之后,得到一个新的向量Av(紫色)
接下来,在二维空间上,手动移动向量v,移动到某一时刻,向量v(绿色)与向
量Av(紫色)发生了重合,且Av的向量摸大于v的模(下图左),再继续移动v,
又会发现在v与Av的另一个重合时刻,但此时|Av|<|v|(下图右)
这两个时刻,v与Av发生了重合,即两个向量方向一致,大小差了一个lambda
倍,也就是上面所提到的
这里的lambda就是特征值(两个特征值,一个大于1,一个小于1),这两个时刻
对应的v向量,就是矩阵A的特征向量。
特征值存在以下几个性质:
设n阶矩阵A=(aij) 的特征值为λ1,λ2,...λn
(1)λ1+λ2+...+λn = a11+ a22+…+ann,trail(A)=特征值的和。
(2)λ1λ2… λn =|A|,特征值的乘积=A的行列式
若λ是方阵A的特征值
(1)λ^2是A^2的特征值
(2)A可逆时,λ^(-1)是A^(-1)的特征值
(3)kλ是kA的特征值,k∈R。
设方阵A的m个特征值λ1,λ2 ,...,λm,与之对应的特征向量是p1,p2,...,pm,若
λ1,λ2 ,...,λm各不相等,则p1,p2 ,...,pm线性无关。(不同特征值对应的特征向量
线性无关),实对称矩阵不同特征值的特征向量相互正交。
特征值分解
【注】因为矩阵M是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换
当M非对称时,在平面上对一个轴进行的拉伸变换(蓝色箭头所示)。如果要描述好一个变换M,那就描述好这个变换主要的变化方向。
分解得到的Σ矩阵是一个对角阵,若Σ里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要变化到次要变化排列) 当矩阵是高维的情况下,那么这个矩阵A就是高维空间下的一个线性变换,这个变换也同样有很多的变换方向,通过特征值分解得到的前N个特征向量,对应了矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。 也就是说:提取这个矩阵最重要的特征。特征值分解的局限:变换的矩阵必须是方阵!!
3.3矩阵的奇异值分解
当分解的矩阵不是方阵时,可以利用奇异值分解。它的具体做法是将一个普通矩阵分解为奇异向量和奇异值。比如将矩阵A分解成三个矩阵的乘积:
假设A是一个m*n矩阵,那么U是一个m*m矩阵,D是一个m*n矩阵,V是一个n*n矩阵。这些矩阵每一个都拥有特殊的结构,其中U和V都是正交矩阵,D是对角矩阵(注意,D不一定是方阵。除了对角线的元素,其他元素都是0,对角线上的元素称为奇异值)。对角矩阵D对角线上的元素被称为矩阵A的奇异值。矩阵U的列向量被称为左奇异向量,矩阵V 的列向量被称右奇异向量。
右奇异向量求解:矩阵A左乘转置AT,将会得到一个方阵(m*m),我们用这个
方阵求特征值和特征向量,得到的vi就是右奇异向量
根据上面得到的特征值λ,计算奇异值σ,以及左奇异向量u。
4.Moore-Penrose伪逆
对于非方矩阵而言,其逆矩阵没有定义。假设在下面问题中,我们想通过矩阵A的左逆B来求解线性方程:
等式两边同时左乘左逆B后,得到:
是否存在唯一的映射将A映射到B取决于问题的形式。
如果矩阵A的行数大于列数,那么上述方程可能没有解;如果矩阵A的行数小于列数,那么上述方程可能有多个解。
Moore-Penrose伪逆使我们能够解决这种情况,矩阵A的伪逆定义为:
但是计算伪逆的实际算法没有基于这个式子,而是使用下面的公式:
其中,矩阵U,D 和V 是矩阵A奇异值分解后得到的矩阵。对角矩阵D 的伪逆D+ 是其非零元素取倒之后再转置得到的。
5. 张量
张量=容器,它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。0维张量是标量(一个数字);1维张量是向量;2维张量称为矩阵
机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。张量在深度学习中是一个很重要的概念,因为它是一个深度学习框架中的一个核心组件,后续的所有运算和优化算法几乎都是基于张量进行的。
6. 范数(一般用在机器学习里做正则项,限制模型复杂度)
范数是某种抽象的长度。可衡量一个矩阵或者向量的大小(非负性、齐次性、三角不等式)
L0范数是指向量中非零元素的个数。
如果用L0规则化一个参数矩阵W,就是希望W中大部分元素是零,实现稀疏。
L1范数是指向量中各个元素的绝对值之和。
L1范数也可以实现稀疏,通过将无用特征对应的参数W置为零实现。
L0和L1都可以实现稀疏化,不过一般选用L1而不用L0,原因包括:1)L0范数很难优化求解(NP难);2)L1是L0的最优凸近似,比L0更容易优化求解。
L2范数是指向量各元素的平方和然后开方。
L2避免过拟合的原理是:让L2范数的规则项||W||2 尽可能小,可以使得W每个元素都很小,接近于零,但是与L1不同的是,不会等于0;这样得到的模型抗干扰能力强,参数很小时,即使样本数据x发生很大的变化,模型预测值y的变化也会很有限。
7. 内积
概括地说,向量的内积(点乘/数量积)。对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b:
a和b的点积公式为:
这里要求一维向量a和向量b的行列数相同。注意:点乘的结果是一个标量(数量而不是向量)
定义:两个向量a与b的内积为 a·b = |a||b|cos∠(a, b),特别地,0·a =a·0 = 0;若a,b是非零向量,则a与b****正交的充要条件是a·b = 0。
内积(点乘)的几何意义包括:表征或计算两个向量之间的夹角;b向量在a向量方向上的投影。有公式:
8.向量正交
两个向量的内积如果是零, 那么就说这两个向量是正交的。正交最早出现于三维空间中的向量分析。 换句话说, 两个向量正交意味着它们是相互垂直的。若向量α与β正交,则记为α⊥β。