深度学习中线性代数回顾

一、范数

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

1. LpL^p 范数

LpL^p 范数定义如下:

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

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

2. L2L^2 范数(Euclidean norm)

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

3. L1L^1 范数

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

x1=ixi ||\mathbf x||_1=\sum_i |x_i|

4. LL^\infty 范数

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

x=maxixi ||\mathbf x||_\infty=\max_i |x_i|

5. FrobeniusFrobenius 范数

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


二、矩阵分解

1.特征分解

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

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

注:

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

2.奇异值分解(SVD)

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

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

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

三、Moore-Penrose伪逆

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

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

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

四、迹运算

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

Tr(A)=iAi,j Tr(\mathbf A)=\sum_i \mathbf A_{i,j}
2. 迹运算描述矩阵 FrobeniusFrobenius 范数:

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

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

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

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


五、矩阵求导

1.行向量对元素求导

yT=[y1,...,yn]y^T = [y_1,...,y_n]nn维行向量,xx是元素,则yTx=[y1x,...,ynx]\frac{\partial y^T}{\partial x}=[\frac{\partial y_1}{\partial x},...,\frac{\partial y_n}{\partial x}]


2.列向量对元素求导

y=[y1ym]y=\left[ \begin{matrix}y_1\\ \vdots \\ y_m\end{matrix}\right]mm维列向量,xx是元素,则yx=[y1xymx]\frac{\partial y}{\partial x}=\left[\begin{matrix}\frac{\partial y_1}{\partial x}\\ \vdots \\ \frac{\partial y_m}{\partial x}\end{matrix}\right]


3.矩阵对元素求导

Y=[y11y1nym1ymn]Y=\left [\begin{matrix}y_{11} & \cdots & y_{1n}\\ \vdots & \ddots & \vdots \\y_{m1} & \cdots & y_{mn}\end{matrix}\right]m×nm \times n矩阵,xx是元素,则

Yx=[y11xy1nxym1xymnx] \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]


4.元素对行向量求导

yy是元素,XT=[x1,...,xq]X^T = [x_1,...,x_q]qq维行向量,则yXT=[yx1,...,yxq]\frac{\partial y}{\partial X^T}=[\frac{\partial y}{\partial x_1},...,\frac{\partial y}{\partial x_q}]


5.元素对列向量求导

yy是元素,X=[x1xp]X=\left[\begin{matrix}x_1\\ \vdots \\ x_p\end{matrix}\right]pp维列向量,则yX=[yx1yxp]\frac{\partial y}{\partial X}=\left[\begin{matrix}\frac{\partial y}{\partial x_1}\\ \vdots \\ \frac{\partial y}{\partial x_p}\end{matrix}\right]


6.元素对矩阵求导

yy是元素,X=[x11x1qxp1xpq]X=\left [\begin{matrix}x_{11} & \cdots & x_{1q}\\\vdots & \ddots & \vdots \\x_{p1} & \cdots & x_{pq}\end{matrix}\right]p×qp \times q矩阵,则

yX=[yx11yx1qyxp1yxpq] \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]


7.行向量对列向量求导

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

yTX=[y1x1ynx1y1xpynxp] \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]


8.列向量对行向量求导

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

yXT=[y1x1y1xqymx1ymxq] \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]

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

相关文章:

  • 2021-04-05
  • 2022-12-23
  • 2021-05-27
  • 2021-05-12
  • 2021-11-11
  • 2021-12-06
  • 2021-04-10
  • 2022-01-13
猜你喜欢
  • 2022-12-23
  • 2021-11-29
  • 2021-05-17
  • 2021-07-16
  • 2022-02-05
  • 2022-01-15
  • 2021-05-30
相关资源
相似解决方案