深度学习线性代数回顾

深度学习中线性代数回顾

一、范数

在机器学习中,我们使用称为**范数(norm)**的函数来衡量向量的大小。

1. L p L^p Lp 范数

L p L^p Lp 范数定义如下:

∣ ∣ x ∣ ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p ||\mathbf x||_p=(\sum_i |x_i|^p)^{\frac 1p} xp=(ixip)p1
其中, p ∈ R , p ≥ 1 p \in \mathbb R, \quad p \ge 1 pR,p1
范数(包括 L p L^p Lp 范数)是将向量映射到非负值的函数,向量 x ⃗ \vec x x 的范数衡量从原点到点 x ⃗ \vec x x 的距离,有如下性质:

  • f ( x ⃗ ) = 0 ⇒ x ⃗ = 0 f(\vec x)=0 \quad \Rightarrow \quad\vec x =0 f(x )=0x =0
  • f ( x ⃗ + y ⃗ ) ≤ f ( x ⃗ ) + f ( y ⃗ ) f(\vec x+\vec y) \le f(\vec x)+f(\vec y) f(x +y )f(x )+f(y ) (triangle inequality)
  • ∀ α ∈ R , f ( α x ⃗ ) = ∣ α ∣ f ( x ⃗ ) \forall \alpha \in \mathbb R,\quad f(\alpha\vec x)=|\alpha|f(\vec x) αR,f(αx )=αf(x )

2. L 2 L^2 L2 范数(Euclidean norm)

L 2 L^2 L2 可以简单用 x T x \mathbf x ^T \mathbf x xTx 计算。

3. L 1 L^1 L1 范数

L 2 L^2 L2 范数在原点附近增长十分缓慢,某些机器学习情况下,需要区分恰好是0的元素和非零但值很小的元素非常重要,于是,我们使用在各个位置斜率相同,
并且保持简单数学形式的函数: L 1 L^1 L1 范数,每当 x \mathbf x x 中某个元素从0增加 ϵ \epsilon ϵ ,对应的 L 1 L^1 L1 范数也增加 ϵ \epsilon ϵ

∣ ∣ x ∣ ∣ 1 = ∑ i ∣ x i ∣ ||\mathbf x||_1=\sum_i |x_i| x1=ixi

4. L ∞ L^\infty L 范数

也被称为最大范数,表示向量中具有最大幅值的元素的绝对值:

∣ ∣ x ∣ ∣ ∞ = max ⁡ i ∣ x i ∣ ||\mathbf x||_\infty=\max_i |x_i| x=imaxxi

5. F r o b e n i u s Frobenius Frobenius 范数

∣ ∣ A ∣ ∣ F = ∑ i , j A i , j 2 ||\mathbf A||_F=\sqrt {\sum_{i,j}\mathbf A_{i,j}^2} AF=i,jAi,j2
用于衡量矩阵的大小,类似与向量的 L 2 L^2 L2 范数


二、矩阵分解

1.特征分解

关于特征分解的概念、计算以及相关性质不在此赘述,仅作补充
每个实对称矩阵都可以分解成特征向量和实特征值: A = Q Λ Q T \mathbf A=\mathbf Q \Lambda \mathbf Q^T A=QΛQT
其中 Q \mathbf Q Q A \mathbf A A 的特征值组成的正交矩阵, Λ \Lambda Λ 是对角矩阵。特征值 Λ i , j \Lambda _{i,j} Λi,j 对应的特征向量是矩阵 Q \mathbf Q Q 的第 i i i 列,记作 Q : , i \mathbf Q_{:,i} Q:,i

特征向量和特征值的作用效果如下图所示
在这里插入图片描述
这里矩阵 A \mathbf A A 有两个标准正交的特征向量,对应特征值为 λ 1 \lambda _1 λ1 ν ( 1 ) \mathbf \nu ^{(1)} ν(1) 以及对应特征值为 λ 2 \lambda _2 λ2 ν ( 2 ) \mathbf \nu ^{(2)} ν(2)
左侧是所有单位向量 μ ∈ R 2 \mathbf\mu \in \mathbb R^2 μR2 的集合;右侧是所有 A μ \mathbf A \mathbf \mu Aμ 点的集合,通过观察 A \mathbf A A 拉伸单位圆的方式,我们看到它将 ν ( i ) \mathbf \nu ^{(i)} ν(i) 方向的空间拉伸了 λ i \lambda _i λi

注:

  • 所有特征值都是正数的矩阵称为正定(positive definite)
  • 所有特征值都是非负数的矩阵称为半正定(positive semidefinite)
  • 所有特征值都是负数的矩阵称为负定(negative definite)
  • 所有特征值都是非正数的矩阵称为半负定(negative semidefinite)

2.奇异值分解(SVD)

每个实数矩阵都有一个奇异值分解,但不一定都有特征分解,如非方阵

A = U D V T \mathbf A = \mathbf U \mathbf D \mathbf V^T A=UDVT
假设 A \mathbf A A 是一个 m × n m \times n m×n 的矩阵,那么 U \mathbf U U 是一个 m × m m \times m m×m 的矩阵, D \mathbf D D 是一个 m × n m \times n m×n 的矩阵, V \mathbf V V 是一个 n × n n \times n n×n 的矩阵

  • 矩阵 U \mathbf U U V \mathbf V V 都定义为正交矩阵,而矩阵 D \mathbf D D 定义为对角矩阵, D \mathbf D D 不一定为方阵
  • 对角矩阵 D \mathbf D D 对角线上的元素称为 A \mathbf A A奇异值(singular value),矩阵 U \mathbf U U 的列向量称为左奇异向量(left singular vector),矩阵 V \mathbf V V 的列向量称为右奇异向量(right singular vector)
  • 矩阵 A \mathbf A A 的左奇异向量是 A A T \mathbf A\mathbf A^T AAT 的特征向量, A \mathbf A A 的右奇异向量是 A T A \mathbf A^T\mathbf A ATA 的特征向量
  • A \mathbf A A 的非零奇异值是 A T A \mathbf A^T\mathbf A ATA 特征值的平方根,同时也是 A A T \mathbf A\mathbf A^T AAT 特征值的平方根

三、Moore-Penrose伪逆

  1. 用于非方阵求解线性方程问题
    Definition Moore-Penrose pseudoinverse,矩阵 A \mathbf A A 的伪逆定义如下:

A + = lim ⁡ α ↘ 0 ( A T A + α I ) − 1 A T \mathbf A^+= \lim_{\alpha \searrow 0}(\mathbf A^T\mathbf A+\alpha \mathbf I)^{-1} \mathbf A^T A+=α0lim(ATA+αI)1AT
计算时,使用 A + = V D + U T \mathbf A^+=\mathbf V \mathbf D^+ \mathbf U^T A+=VD+UT ,其中 U \mathbf U U D \mathbf D D V \mathbf V V 是矩阵 A \mathbf A A 奇异值分解后得到的矩阵。对角矩阵 D \mathbf D D 的伪逆 D + \mathbf D^+ D+ 是其非零元素取倒数之后再转置得到的。

  1. 对与线性方程 A x = y ⟹ x = B y \mathbf A \mathbf x=\mathbf y\quad \Longrightarrow \quad \mathbf x=\mathbf B\mathbf y Ax=yx=By
    • 当矩阵 A \mathbf A A 的列数多于行数时,使用伪逆求解线性方程时众多可能解法中的一种。特别地 x = A + y \mathbf x=\mathbf A^+\mathbf y x=A+y 是方程所有可行解中Euclidean norm ∣ ∣ x ∣ ∣ 2 ||\mathbf x||_2 x2 最小的一个
    • 当矩阵 A \mathbf A A 的列数少于行数时,可能没有解,通过伪逆得到的 x \mathbf x x 使得 A x \mathbf A \mathbf x Ax y \mathbf y y 的Euclidean距离 ∣ ∣ A x − y ∣ ∣ 2 ||\mathbf A \mathbf x-\mathbf y||_2 Axy2 最小

四、迹运算

  1. 迹运算返回的是矩阵对角元素的和:

T r ( A ) = ∑ i A i , j Tr(\mathbf A)=\sum_i \mathbf A_{i,j} Tr(A)=iAi,j
2. 迹运算描述矩阵 F r o b e n i u s Frobenius Frobenius 范数:

∣ ∣ A ∣ ∣ F = T r ( A A T ) ||\mathbf A||_F=\sqrt{Tr(\mathbf A\mathbf A^T)} AF=Tr(AAT)
3.

T r ( A B C ) = T r ( C A B ) = T r ( B C A ) Tr(\mathbf A\mathbf B \mathbf C)=Tr(\mathbf C\mathbf A\mathbf B)=Tr(\mathbf B \mathbf C \mathbf A) Tr(ABC)=Tr(CAB)=Tr(BCA)
更一般地:

T r ( ∏ i = 1 n F ( i ) ) = T r ( F ( n ) ∏ i = 1 n − 1 F ( i ) ) Tr(\prod_{i=1}^n \mathbf F^{(i)})=Tr(\mathbf F^{(n)} \prod_{i=1}^{n-1}\mathbf F^{(i)}) Tr(i=1nF(i))=Tr(F(n)i=1n1F(i))
4. 即使循环转置后矩阵乘积得到的矩阵形状变了,迹运算地结果不变,假设矩阵 A ∈ R m × n \mathbf A \in \mathbb R^{m \times n} ARm×n ,矩阵 B ∈ R n × m \mathbf B \in \mathbb R^{n \times m} BRn×m

T r ( A B ) = T r ( B A ) Tr(\mathbf A\mathbf B)=Tr(\mathbf B \mathbf A) Tr(AB)=Tr(BA)
尽管 A B ∈ R m × m \mathbf A\mathbf B \in \mathbb R^{m \times m} ABRm×m B A ∈ R n × n \mathbf B \mathbf A \in \mathbb R^{n \times n} BARn×n


五、矩阵求导

1.行向量对元素求导

y T = [ y 1 , . . . , y n ] y^T = [y_1,...,y_n] yT=[y1,...,yn] n n n维行向量, x x x是元素,则 ∂ y T ∂ x = [ ∂ y 1 ∂ x , . . . , ∂ y n ∂ x ] \frac{\partial y^T}{\partial x}=[\frac{\partial y_1}{\partial x},...,\frac{\partial y_n}{\partial x}] xyT=[xy1,...,xyn]


2.列向量对元素求导

y = [ y 1 ⋮ y m ] y=\left[ \begin{matrix}y_1\\ \vdots \\ y_m\end{matrix}\right] y=y1ym m m m维列向量, x x x是元素,则 ∂ y ∂ x = [ ∂ y 1 ∂ x ⋮ ∂ y m ∂ x ] \frac{\partial y}{\partial x}=\left[\begin{matrix}\frac{\partial y_1}{\partial x}\\ \vdots \\ \frac{\partial y_m}{\partial x}\end{matrix}\right] xy=xy1xym


3.矩阵对元素求导

Y = [ y 11 ⋯ y 1 n ⋮ ⋱ ⋮ y m 1 ⋯ y m n ] Y=\left [\begin{matrix}y_{11} & \cdots & y_{1n}\\ \vdots & \ddots & \vdots \\y_{m1} & \cdots & y_{mn}\end{matrix}\right] Y=y11ym1y1nymn m × n m \times n m×n矩阵, x x x是元素,则

∂ Y ∂ x = [ ∂ y 11 ∂ x ⋯ ∂ y 1 n ∂ x ⋮ ⋱ ⋮ ∂ y m 1 ∂ x ⋯ ∂ y m n ∂ x ] \frac{\partial Y}{\partial x}=\left [ \begin{matrix} \frac{\partial y_{11}}{\partial x} & \cdots & \frac{\partial y_{1n}}{\partial x}\\ \vdots & \ddots & \vdots \\ \frac{\partial y_{m1}}{\partial x} & \cdots & \frac{\partial y_{mn}}{\partial x} \end{matrix} \right] xY=xy11xym1xy1nxymn


4.元素对行向量求导

y y y是元素, X T = [ x 1 , . . . , x q ] X^T = [x_1,...,x_q] XT=[x1,...,xq] q q q维行向量,则 ∂ y ∂ X T = [ ∂ y ∂ x 1 , . . . , ∂ y ∂ x q ] \frac{\partial y}{\partial X^T}=[\frac{\partial y}{\partial x_1},...,\frac{\partial y}{\partial x_q}] XTy=[x1y,...,xqy]


5.元素对列向量求导

y y y是元素, X = [ x 1 ⋮ x p ] X=\left[\begin{matrix}x_1\\ \vdots \\ x_p\end{matrix}\right] X=x1xp p p p维列向量,则 ∂ y ∂ X = [ ∂ y ∂ x 1 ⋮ ∂ y ∂ x p ] \frac{\partial y}{\partial X}=\left[\begin{matrix}\frac{\partial y}{\partial x_1}\\ \vdots \\ \frac{\partial y}{\partial x_p}\end{matrix}\right] Xy=x1yxpy


6.元素对矩阵求导

y y y是元素, X = [ x 11 ⋯ x 1 q ⋮ ⋱ ⋮ x p 1 ⋯ x p q ] X=\left [\begin{matrix}x_{11} & \cdots & x_{1q}\\\vdots & \ddots & \vdots \\x_{p1} & \cdots & x_{pq}\end{matrix}\right] X=x11xp1x1qxpq p × q p \times q p×q矩阵,则

∂ y ∂ X = [ ∂ y ∂ x 11 ⋯ ∂ y ∂ x 1 q ⋮ ⋱ ⋮ ∂ y ∂ x p 1 ⋯ ∂ y ∂ x p q ] \frac{\partial y}{\partial X}=\left [ \begin{matrix} \frac{\partial y}{\partial x_{11}} & \cdots & \frac{\partial y}{\partial x_{1q}}\\ \vdots & \ddots & \vdots \\ \frac{\partial y}{\partial x_{p1}} & \cdots & \frac{\partial y}{\partial x_{pq}} \end{matrix} \right] Xy=x11yxp1yx1qyxpqy


7.行向量对列向量求导

y T = [ y 1 , . . . , y n ] y^T = [y_1,...,y_n] yT=[y1,...,yn]是n维行向量, X = [ x 1 ⋮ x p ] X=\left[\begin{matrix}x_1\\ \vdots \\ x_p\end{matrix}\right] X=x1xp p p p维列向量,则

∂ y T ∂ X = [ ∂ y 1 ∂ x 1 ⋯ ∂ y n ∂ x 1 ⋮ ⋱ ⋮ ∂ y 1 ∂ x p ⋯ ∂ y n ∂ x p ] \frac{\partial y^T}{\partial X}=\left [ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \cdots & \frac{\partial y_n}{\partial x_1}\\ \vdots & \ddots & \vdots \\ \frac{\partial y_1}{\partial x_p} & \cdots & \frac{\partial y_n}{\partial x_p} \end{matrix} \right] XyT=x1y1xpy1x1ynxpyn


8.列向量对行向量求导

y = [ y 1 ⋮ y m ] y=\left[\begin{matrix}y_1\\ \vdots \\ y_m\end{matrix}\right] y=y1ym m m m维列向量, X T = [ x 1 , . . . , x q ] X^T = [x_1,...,x_q] XT=[x1,...,xq] q q q维行向量,则

∂ y ∂ X T = [ ∂ y 1 ∂ x 1 ⋯ ∂ y 1 ∂ x q ⋮ ⋱ ⋮ ∂ y m ∂ x 1 ⋯ ∂ y m ∂ x q ] \frac{\partial y}{\partial X^T}=\left [ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \cdots & \frac{\partial y_1}{\partial x_q}\\ \vdots & \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1} & \cdots & \frac{\partial y_m}{\partial x_q} \end{matrix} \right] XTy=x1y1x1ymxqy1xqym

注:参考《Deep Learning》,lan Goodfellow, Yoshua Bengio, Aaron Courville

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值