文章目录
- 数学预备知识
- 3、线性代数
- 3.1、矩阵奇异值分解(SVD)
- 3.2、广义逆矩阵(Moore-Penrose )
- 3.3、数据白化(Data Whitening)
- 3.4、向量导数
- 4、其它
数学预备知识
3、线性代数
3.1、矩阵奇异值分解(SVD)
矩阵分解的本质是将原本复杂的矩阵分解成对应的几个简单矩阵的乘积的形式。使得矩阵分析起来更加简单。很多矩阵都是不能够进行特征值分解的。这种情况下,如果我们想通过矩阵分解的形式将原本比较复杂的矩阵问题分解成比较简单的矩阵相乘的形式,会对其进行奇异值分解。
将普通矩阵分解为奇异向量和奇异值,对于一个m x n的矩阵A,其奇异值分解可以表示为:
A = U Σ V T A = UΣV^T A=UΣVT
其中,U是一个m x m的正交矩阵,Σ 是一个m x n的矩阵,其对角线上的元素称为奇异值,Σ 不一定是方阵V是一个n x n的正交矩阵。
Σ对角线上的元素被称为A的奇异值。
U的列向量:左奇异向量
V的列向量:右奇异向量
对角阵不是方阵,这说法头一次见,如何确定Σ的元素?
A A T 、 A T A AA^T、A^TA AAT、ATA的特征值相同,假设特征值为 λ 1 、 λ 2 、 λ 3 λ_1、λ_2、λ_3 λ1、λ2、λ3,Σ中元素为 σ 1 、 σ 2 、 σ 3 σ_1、σ_2、σ_3 σ1、σ2、σ3
σ 1 = λ 1 σ_1 = \sqrt{\lambda_1} σ1=λ1
同理:
σ 2 = λ 2 σ_2 = \sqrt{\lambda_2} σ2=λ2, σ 3 = λ 3 σ_3 = \sqrt{\lambda_3} σ3=λ3,
求得的σ只选取非零的。
如何确定Σ主对角线位置?
【这里我反复被网上的对角阵可以不是方阵?非方阵如何确定对角线位置?的各种矛盾回答搞晕了,奇异值分解的博客很少提到σ的排列问题,浪费了很多时间,最终在周志华的《机器学习》附录中找到了准确描述。视频在数学预备知识这部分讲得稀烂,没有复看的价值😒。】
Σ i i = σ i Σ_{ii} = σ_i Σii=σi,其他未知元素均为0,常将奇异值按降序排列,确保Σ的唯一性。
如何求解U?
求解 A A T AA^T AAT的特征值 λ \lambda λ,进而求得特征向量 μ,组成矩阵 U 。
如何求解V?
求解 A T A A^TA ATA的特征值 λ \lambda λ,进而求得特征向量 μ,组成矩阵 V 。
如果A是正定矩阵可以进行特征值分解,奇异值分解又是怎样的结果?
若矩阵A可以通过正交变换法实现相似对角化 x T A x = Λ 、 A = x Λ x T x^TAx=Λ 、A=xΛx^T xTAx=Λ、A=xΛxT,那么:
u = x
Σ = Λ
V T = x T V^T = x^T VT=xT
此时,奇异值分解结果与正交变换法实现的相似对角化完全一致。
3.2、广义逆矩阵(Moore-Penrose )
逆矩阵的推广,对任一 m×n 阶矩阵 A,都存在惟一的 n×m 阶矩阵 X,它满足:
- AXX = X
- XAX = X
- (AX)* = AX
- (XA)* = XA
则称 X 为 A 的 Moore-Penrose 广义逆矩阵,简称 M-P 逆,记为 A⁺。
计算 A + A^+ A+的实际算法基于以下公式:
A + = V Σ + U T A^+ = VΣ^+U^T A+=VΣ+UT (奇异值分解)
Σ + Σ+ Σ+ 由 Σ 转置得到。
广义逆矩阵有什么用?
判断线性方程组有解,当遇到线性方程组 Ax=b 中求解x困难的情况,可以使用广义逆矩阵来判断。
Ax = b,解存在的条件为:
当且仅当 A + b A^+b A+b为其中一个解,即 A A + b = b AA^+b = b AA+b=b
广义逆矩阵在机器学习中有什么用?
- 最小二乘问题:在机器学习中,最小二乘问题是一种常见的问题,例如在线性回归中,目标是最小化预测值与实际值之间的误差。在这种情况下,可以使用广义逆矩阵来求解最小二乘问题,从而提高模型的拟合效果。
- 矩阵逆的估计:当遇到矩阵逆难以直接计算的情况时,可以使用广义逆矩阵来估计矩阵的逆。例如,在PageRank算法中,可以通过使用广义逆矩阵来计算网站的PageRank值。
- 特征值和特征向量的求解:在机器学习中,特征值和特征向量通常用于对数据进行降维或进行模型训练。当遇到求解矩阵的特征值和特征向量困难的情况时,可以使用广义逆矩阵来求解。
- 隐式建模:在一些机器学习问题中,需要对数据进行建模。但是,有时数据无法直接建模或无法通过常规方法求解。在这种情况下,可以使用广义逆矩阵来拟合数据,从而实现隐式建模。
3.3、数据白化(Data Whitening)
观测数据x组成实对称矩阵 x x T xx^T xxT,其特征向量组成U, x x T = U T Σ U xx^T = U^TΣU xxT=UTΣU
令:
x ~ = U T Σ − 0.5 U ⋅ x \widetilde{x} = U^TΣ^{-0.5}U · x x =UTΣ−0.5U⋅x
则:
x ~ x ~ T = ( U T Σ − 0.5 U ⋅ x ) ( U T Σ − 0.5 U ⋅ x ) T \widetilde{x}\widetilde{x}^{T} = (U^TΣ^{-0.5}U · x)(U^TΣ^{-0.5}U · x)^T x x T=(UTΣ−0.5U⋅x)(UTΣ−0.5U⋅x)T
= ( U T Σ − 0.5 U ⋅ x ) ( x T U T Σ − 0.5 U ) = (U^TΣ^{-0.5}U · x)(x^T U^TΣ^{-0.5}U ) =(UTΣ−0.5U⋅x)(xTUTΣ−0.5U)
= U T Σ − 0.5 U ⋅ ( x x T ) U T Σ − 0.5 U =U^TΣ^{-0.5}U · (xx^T) U^TΣ^{-0.5}U =UTΣ−0.5U⋅(xxT)UTΣ−0.5U
= U T Σ − 0.5 U ⋅ ( U T Σ U ) U T Σ − 0.5 U =U^TΣ^{-0.5}U · (U^TΣU) U^TΣ^{-0.5}U =UTΣ−0.5U⋅(UTΣU)UTΣ−0.5U
= I =I =I
在机器学习中数据白化的意义?
数据白化是一种有用的数据预处理技术,数据白化的主要作用是使数据符合正态分布,从而更易于使用传统的机器学习算法进行处理。在数据白化之后,数据的均值和方差都为零,并且各维度之间的相关性为零。这有助于消除数据中的冗余信息。数据白化还可以提高算法的收敛速度和训练效果。因为数据白化可以降低数据之间的相关性,所以可以减少算法的过拟合风险,并且使算法更容易找到最优解。
3.4、向量导数
向量矩阵求导,本质是多元函数求导,矩阵比多元函数,在表达上更简洁方便。
向量偏导公式
∂ A x ∂ x = A T \frac{∂Ax}{∂x} = A^T ∂x∂Ax=AT
∂ A x ∂ x T = A \frac{∂Ax}{∂x^T} = A ∂xT∂Ax=A
∂ ( x T A ) ∂ x = A \frac{∂(x^TA)}{∂x} = A ∂x∂(xTA)=A
x为列向量,A为矩阵。
线性回归中直接用。
求导结果的布局?
标量、向量、矩阵 对 标量、向量、矩阵 求导,共9种情况。
分子布局,分母布局两种布局。
标量对向量的求导
分母布局。
y = x T A x y = x^TAx y=xTAx
y = x T A x y = x^TAx y=xTAx 结果为1 * 1,标量
∂ y ∂ x = ∂ ( x T A x ) ∂ x = ( A + A T ) ⋅ x \frac{∂y}{∂x} = \frac{∂(x^TAx)}{∂x} = (A + A^T)·x ∂x∂y=∂x∂(xTAx)=(A+AT)⋅x
若 A 为对称阵,则有:
∂ ( x T A x ) ∂ x = 2 A x \frac{∂(x^TAx)}{∂x} =2Ax ∂x∂(xTAx)=2Ax
4、其它
奇异矩阵
若A可逆,则称A为非奇异方阵,也就说若A不是满秩,则为奇异矩阵。
I n I_n In
单位矩阵。