机器学习与深度学习19-线性代数02
目录
- 前文回顾
- 6.协方差矩阵与主成分分析
- 7.矩阵的奇异值分解
- 8.神经网络的前向传播和反向传播
- 9.矩阵的迹
- 10.特征工程的多项式特征扩展
前文回顾
上一篇文章链接:地址
6.协方差矩阵与主成分分析
协方差矩阵是一个对称矩阵,用于衡量随机变量之间的线性相关性和方差。给定一个 n n n维随机向量 X = ( X 1 , X 2 , … , X n ) \boldsymbol{X} = (X_1, X_2, \ldots, X_n) X=(X1,X2,…,Xn),其协方差矩阵表示为 C = { cov ( X i , X j ) } \boldsymbol{C} = \{\text{cov}(X_i, X_j)\} C={cov(Xi,Xj)},其中 cov ( X i , X j ) \text{cov}(X_i, X_j) cov(Xi,Xj) 表示随机变量 X i X_i Xi 和 X j X_j Xj 的协方差。协方差矩阵是一个 n × n n \times n n×n 的矩阵,其中第 ( i , j ) (i, j) (i,j) 个元素表示 X i X_i Xi 和 X j X_j Xj 之间的协方差。对角线上的元素是各个随机变量的方差,非对角线上的元素则代表了两个随机变量之间的协方差
在主成分分析(PCA)中,协方差矩阵扮演着重要的角色。PCA 是一种常用的降维技术,旨在找到数据中最重要的特征(主成分),以便用较低维度的特征表示数据。使用 PCA 进行降维的关键步骤之一是计算数据的协方差矩阵。通过计算协方差矩阵,我们可以获得数据中各个特征之间的相关性信息。协方差矩阵的特征值和特征向量提供了关于数据结构和特征重要性的有用信息,在 PCA 中,我们将协方差矩阵的特征向量作为新的基向量,将数据投影到这些基向量上,构成新的特征空间。通过将特征值排序,我们可以选择最重要的特征(较大的特征值),从而实现数据维度的降低。这样可以减少数据的冗余信息,并捕捉到最具代表性的特征
总结来说,协方差矩阵在主成分分析中起着至关重要的作用。它提供了关于数据特征之间关系的信息,帮助我们理解数据的结构并选择最具代表性的特征,从而实现数据的降维和压缩
7.矩阵的奇异值分解
矩阵的奇异值分解(Singular Value Decomposition,SVD)是一种重要的矩阵分解技术,它将一个矩阵分解为三个矩阵的乘积。给定一个 m × n m \times n m×n的矩阵 A \boldsymbol{A} A,其SVD表示为:
A = U Σ V T \boldsymbol{A} = \boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^T A=UΣVT
其中, U \boldsymbol{U} U和 V \boldsymbol{V} V是正交矩阵, Σ \boldsymbol{\Sigma} Σ是一个对角矩阵。 U \boldsymbol{U} U的列向量称为左奇异向量, V \boldsymbol{V} V的列向量称为右奇异向量, Σ \boldsymbol{\Sigma} Σ的对角线元素称为奇异值,SVD的主要特点是将原始矩阵分解成了三个部分,每个部分都有其独特的性质和含义。这使得SVD在矩阵分解和降维中具有广泛应用,比如:
- 矩阵分解:SVD在矩阵分解中非常有用。通过将矩阵 A \boldsymbol{A} A进行奇异值分解,我们可以得到特征向量矩阵 U \boldsymbol{U} U和 V \boldsymbol{V} V以及奇异值矩阵 Σ \boldsymbol{\Sigma} Σ。这使得我们能够有效地计算矩阵的逆、伪逆和矩阵方程的解等
- 数据压缩和降维:SVD也被广泛应用于数据压缩和降维。通过保留最大的奇异值和相应的特征向量,我们可以将原始高维数据投影到一个较低维度的空间中,并且尽量保留原始数据的主要信息。这对于处理高维数据、去除冗余信息和减少计算复杂性非常有帮助
- 图像处理:在图像处理中,SVD可以用于图像压缩和图像增强等任务。通过对图像矩阵进行SVD,我们可以提取出图像的主要特征,并用较低维度的表示来表示图像
- 推荐系统:在协同过滤推荐系统中,SVD可以用于对用户-物品评分矩阵进行分解,以获取用户和物品的潜在特征。这有助于发现用户和物品之间的关联性,并用于生成个性化的推荐
总结来说,矩阵的奇异值分解(SVD)是一种强大且广泛应用的矩阵分解技术。它在矩阵分解、数据压缩、降维、图像处理和推荐系统等领域具有重要作用,并为我们理解和处理复杂的数据提供了有力工具
8.神经网络的前向传播和反向传播
-
前向传播:
- 输入向量 x \boldsymbol{x} x 通过与权重矩阵 W \boldsymbol{W} W 的乘法得到隐藏层的输入: h = W ⋅ x \boldsymbol{h} = \boldsymbol{W} \cdot \boldsymbol{x} h=W⋅x
- 隐藏层的输入 h \boldsymbol{h} h 经过激活函数 f ( ⋅ ) f(\cdot) f(⋅) 得到隐藏层的激活值: a = f ( h ) \boldsymbol{a} = f(\boldsymbol{h}) a=f(h)
- 隐藏层的激活值 a \boldsymbol{a} a 再次与权重矩阵 W ′ \boldsymbol{W}^\prime W′ 进行乘法运算得到输出层的输入: o = W ′ ⋅ a \boldsymbol{o} = \boldsymbol{W}^\prime \cdot \boldsymbol{a} o=W′⋅a
- 输出层的输入 o \boldsymbol{o} o 经过激活函数 f ( ⋅ ) f(\cdot) f(⋅) 得到最终的输出值: y = f ( o ) \boldsymbol{y} = f(\boldsymbol{o}) y=f(o)
-
反向传播(基于交叉熵损失函数):
- 计算输出层的误差项: δ o = ( y − t ) ⊙ f ′ ( o ) \boldsymbol{\delta}_o = (\boldsymbol{y} - \boldsymbol{t}) \odot f^\prime(\boldsymbol{o}) δo=(y−t)⊙f′(o),其中 t \boldsymbol{t} t 是目标值, ⊙ \odot ⊙ 表示逐元素相乘, f ′ ( ⋅ ) f^\prime(\cdot) f′(⋅) 是激活函数的导数
- 反向传播输出层的误差项到隐藏层: δ a = W ′ T ⋅ δ o ⊙ f ′ ( h ) \boldsymbol{\delta}_a = \boldsymbol{W}^{\prime T} \cdot \boldsymbol{\delta}_o \odot f^\prime(\boldsymbol{h}) δa=W′T⋅δo⊙f′(h)
- 计算权重矩阵 W ′ \boldsymbol{W}^\prime W′ 的梯度: ∇ W ′ = δ o ⋅ a T \nabla_{\boldsymbol{W}^\prime} = \boldsymbol{\delta}_o \cdot \boldsymbol{a}^T ∇W′=δo⋅aT
- 计算权重矩阵 W \boldsymbol{W} W 的梯度: ∇ W = δ a ⋅ x T \nabla_{\boldsymbol{W}} = \boldsymbol{\delta}_a \cdot \boldsymbol{x}^T ∇W=δa⋅xT
在反向传播过程中,梯度计算使用了链式法则,通过将误差项逐层传递回去,从而计算出权重矩阵的梯度。这些梯度可以用于更新权重矩阵,以最小化损失函数,并不断优化神经网络的性能,通过矩阵运算和逐元素操作,神经网络可以高效地进行前向传播和反向传播过程,实现输入数据的转换和网络参数的学习
9.矩阵的迹
矩阵的迹(Trace)是指一个方阵对角线上所有元素的和。对于一个 n × n n \times n n×n矩阵 A \boldsymbol{A} A,其迹表示为 tr ( A ) \text{tr}(\boldsymbol{A}) tr(A),计算方式为:
tr ( A ) = ∑ i = 1 n A i i \text{tr}(\boldsymbol{A}) = \sum_{i=1}^{n} A_{ii} tr(A)=i=1∑nAii
迹有以下特性:
- 迹对矩阵的转置不变: tr ( A ) = tr ( A T ) \text{tr}(\boldsymbol{A}) = \text{tr}(\boldsymbol{A}^T) tr(A)=tr(AT)
- 迹对矩阵乘法具有结合律: tr ( A B ) = tr ( B A ) \text{tr}(\boldsymbol{AB}) = \text{tr}(\boldsymbol{BA}) tr(AB)=tr(BA)
- 迹对矩阵加法具有可加性: tr ( A + B ) = tr ( A ) + tr ( B ) \text{tr}(\boldsymbol{A} + \boldsymbol{B}) = \text{tr}(\boldsymbol{A}) + \text{tr}(\boldsymbol{B}) tr(A+B)=tr(A)+tr(B)
在矩阵求导和优化中,迹具有一些重要的应用。矩阵求导中的应用有:
- 迹的导数:当我们需要对一个标量函数关于一个矩阵进行求导时,可以将其转化为对迹的求导。根据迹的性质,我们有 ∂ ∂ A tr ( A B ) = B T \frac{\partial}{\partial \boldsymbol{A}} \text{tr}(\boldsymbol{AB}) = \boldsymbol{B}^T ∂A∂tr(AB)=BT 和 ∂ ∂ A tr ( A B A T ) = B A T + B T A \frac{\partial}{\partial \boldsymbol{A}} \text{tr}(\boldsymbol{ABA}^T) = \boldsymbol{BA}^T + \boldsymbol{B}^T \boldsymbol{A} ∂A∂tr(ABAT)=BAT+BTA 等等
- 链式法则:在多元复合函数求导时,迹的性质使得我们能够使用迹来简化求导过程。通过将迹运算与矩阵链式相乘结合起来,我们可以高效地计算复杂函数的导数
优化中的应用:
- 正则化项:在损失函数中引入迹作为正则化项,可以对模型参数进行约束,避免过拟合或提高模型的稳定性
- 物理意义:在一些优化问题中,迹可以表示系统的某些物理量,例如能量、功率等,从而帮助解决实际问题
总结:矩阵的迹是指方阵对角线上所有元素的和,具有对转置不变、结合律和可加性等特性。在矩阵求导和优化中,迹被广泛应用于简化求导过程、定义正则化项以及表示物理量等方面
10.特征工程的多项式特征扩展
在特征工程中,多项式特征扩展(Polynomial Feature Expansion)是一种将原始特征通过多项式组合生成新的特征的方法。它通过引入原始特征的幂和交互项来捕捉特征之间的非线性关系,从而提供更丰富的特征表示
假设我们有一个包含 n n n个特征的向量 x = ( x 1 , x 2 , … , x n ) \boldsymbol{x} = (x_1, x_2, \ldots, x_n) x=(x1,x2,…,xn),多项式特征扩展可以将其转化为一个包含多项式特征的向量 y = ( y 1 , y 2 , … , y m ) \boldsymbol{y} = (y_1, y_2, \ldots, y_m) y=(y1,y2,…,ym),其中 m m m是根据所选特征的最高次数和交互项确定的新特征维度
通过线性代数的方法,可以使用以下步骤来实现多项式特征扩展:
- 构建特征矩阵:将原始特征向量 x \boldsymbol{x} x构造成一个 n × 1 n \times 1 n×1的矩阵 X \boldsymbol{X} X
X = [ x 1 x 2 ⋮ x n ] \boldsymbol{X} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} X= x1x2⋮xn
计算多项式度数:选择所需的多项式度数 d d d,确定要生成的多项式特征的最高次数 - 扩展特征矩阵:通过计算原始特征的幂和交互项,将特征矩阵 X \boldsymbol{X} X扩展为一个 n × m n \times m n×m的新特征矩阵 Y \boldsymbol{Y} Y。每一列代表一个多项式特征
Y = [ 1 x 1 x 1 2 … x 1 d x 1 x 2 … 1 x 2 x 2 2 … x 2 d x 2 x 3 … ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋱ 1 x n x n 2 … x n d x n − 1 x n … ] \boldsymbol{Y} = \begin{bmatrix} 1 & x_1 & x_1^2 & \ldots & x_1^d & x_1x_2 & \ldots \\ 1 & x_2 & x_2^2 & \ldots & x_2^d & x_2x_3 & \ldots \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \ddots \\ 1 & x_n & x_n^2 & \ldots & x_n^d & x_{n-1}x_n & \ldots \end{bmatrix} Y= 11⋮1x1x2⋮xnx12x22⋮xn2……⋱…x1dx2d⋮xndx1x2x2x3⋮xn−1xn……⋱… - 利用线性代数进行计算:可以使用线性代数中的矩阵乘法来计算特征矩阵的扩展。我们可以将特征矩阵 X \boldsymbol{X} X与一个由多项式系数组成的矩阵相乘,得到扩展后的特征矩阵 Y \boldsymbol{Y} Y,多项式特征扩展使得我们能够引入更多非线性特征,从而改善模型对数据的拟合能力。然而,要注意的是,高次多项式和大量交互项可能导致特征维度的爆炸,需要谨慎选择多项式的度数和特征组合