(ML-0) 微积分与线性代数

机器学习的梯度下降法离不开微积分(尤其是 涉及矩阵乃至高维张量的微积分),机器学习涉及的大量元素的批量操作离不开线性代数(科学计算工具为批量操作提供了一系列的优化).

参考:Matrix calculus - Wikipedia

变量说明 ​

不加说明的情况下:

  1. 非粗体小写字母 (xx,aa,uu,vv) 为标量;
  2. 粗体小写字母 (x\mathbf{x},a\mathbf{a},u\mathbf{u},v\mathbf{v}) 为向量;
  3. 非粗体大写字母 (XX,AA,UU,VV) 为矩阵;
  4. xx、x\mathbf{x}、XX 表示自变量;
  5. aa,a\mathbf{a},AA 表示常量;
  6. uu,vv,u\mathbf{u},v\mathbf{v},UU,VV 表示关于 xx、x\mathbf{x}、XX 的因变量;
  7. ff,gg 表示标量函数 (标量场);
  8. F\mathbf{F},G\mathbf{G} 表示向量函数 (向量场).

向量对标量的导数 ​

  1. 常向量

dadx=0ddx(f(x)a)=0\begin{align*} \frac{\mathrm{d} \mathbf{a}}{\mathrm{d} x} = \mathbf{0} \\ \frac{\mathrm{d}}{\mathrm{d} x}(f(x) \mathbf{a}) = \mathbf{0}\end{align*}

  1. 标量乘向量

ddx(av)=advdx\frac{\mathrm{d}}{\mathrm{d} x}(a \mathbf{v}) = a \frac{\mathrm{d} \mathbf{v}}{\mathrm{d} x}

  1. 矩阵乘向量

ddx(Av)=Advdx\frac{\mathrm{d}}{\mathrm{d} x}(A \mathbf{v}) = A\frac{\mathrm{d} \mathbf{v}}{\mathrm{d} x}

  1. 转置

dv⊤dx=(dvdx)⊤\frac{\mathrm{d} \mathbf{v}^\top}{\mathrm{d} x} = \left( \frac{\mathrm{d} \mathbf{v}}{\mathrm{d} x} \right)^\top

  1. 外积

ddx(u×v)=dudx×v+u×dvdxddx(a×v)=a×dvdx\begin{align*}\frac{\mathrm{d}}{\mathrm{d} x}(\mathbf{u} \times \mathbf{v}) &= \frac{\mathrm{d} \mathbf{u}}{\mathrm{d} x} \times \mathbf{v} + \mathbf{u} \times \frac{\mathrm{d} \mathbf{v}}{\mathrm{d} x} \\ \frac{\mathrm{d}}{\mathrm{d} x}(\mathbf{a} \times \mathbf{v}) &= \mathbf{a} \times \frac{\mathrm{d} \mathbf{v}}{\mathrm{d} x}\end{align*}

  1. 向量场

ddxF(u)=∂F∂ududx\frac{\mathrm{d}}{\mathrm{d} x}\mathbf{F}(\mathbf{u}) = \frac{\partial \mathbf{F}}{\partial \mathbf{u}}\frac{\mathrm{d} \mathbf{u}}{\mathrm{d} x}

即雅可比矩阵和向量的乘积.

标量对向量的导数 (梯度) ​

  1. 常数

∇x(a)=∂a∂x=0\nabla_{\mathbf{x}}(a)=\frac{\partial a}{\partial \mathbf{x}} = \mathbf{0}

  1. 乘积

∇x(uv)=∂∂x(uv)=v∂u∂x+u∂v∂x=v∇xu+u∇xv\nabla_{\mathbf{x}}(uv) = \frac{\partial}{\partial \mathbf{x}} (uv) = v\frac{\partial u}{\partial \mathbf{x}} + u\frac{\partial v}{\partial \mathbf{x}} = v\nabla_{\mathbf{x}}u + u\nabla_{\mathbf{x}}v

  1. 链式法则

∇xf(u)=∂∂xf(u)=df(u)du∂u∂x=f′(u)∇xu∇xf=∂f∂x=(∂u∂x)⊤∂f∂u=(∂v∂u∂u∂x)⊤∂f∂v=(∂w∂v∂v∂u∂u∂x)⊤∂f∂w\begin{align*} \nabla_{\mathbf{x}}f(u) &= \frac{\partial}{\partial \mathbf{x}} f(u) = \frac{\mathrm{d}f(u)}{\mathrm{d} u}\frac{\partial u}{\partial \mathbf{x}} = f'(u) \nabla_{\mathbf{x}} u \\ \nabla_{\mathbf{x}}f &= \frac{\partial f}{\partial \mathbf{x}} = \left( \frac{\partial \mathbf{u}}{\partial \mathbf{x}} \right)^\top \frac{\partial f}{\partial \mathbf{u}} = \left( \frac{\partial \mathbf{v}}{\partial \mathbf{u}}\frac{\partial \mathbf{u}}{\partial \mathbf{x}} \right)^\top \frac{\partial f}{\partial \mathbf{v}} = \left( \frac{\partial \mathbf{w}}{\partial \mathbf{v}}\frac{\partial \mathbf{v}}{\partial \mathbf{u}}\frac{\partial \mathbf{u}}{\partial \mathbf{x}} \right)^\top \frac{\partial f}{\partial \mathbf{w}}\end{align*}

  1. 内积

∇x(u⊤v)=∂∂x(u⊤v)=∂u∂xv+∂v∂xu∇x(a⊤v)=∂∂x(a⊤v)=∂v∂xa∇x(a⊤x)=∂∂x(a⊤x)=a∇x(x⊤x)=∂∂x(x⊤x)=2x\begin{align*}\nabla_{\mathbf{x}} (\mathbf{u}^\top\mathbf{v}) = \frac{\partial}{\partial \mathbf{x}}(\mathbf{u}^\top\mathbf{v}) &= \frac{\partial \mathbf{u}}{\partial \mathbf{x}}\mathbf{v} + \frac{\partial \mathbf{v}}{\partial \mathbf{x}}\mathbf{u} \\ \nabla_{\mathbf{x}} (\mathbf{a}^\top\mathbf{v}) = \frac{\partial}{\partial \mathbf{x}}(\mathbf{a}^\top\mathbf{v}) &= \frac{\partial \mathbf{v}}{\partial \mathbf{x}}\mathbf{a} \\ \nabla_{\mathbf{x}} (\mathbf{a}^\top\mathbf{x}) = \frac{\partial}{\partial \mathbf{x}}(\mathbf{a}^\top\mathbf{x}) &= \mathbf{a} \\ \nabla_{\mathbf{x}} (\mathbf{x}^\top\mathbf{x}) = \frac{\partial}{\partial \mathbf{x}}(\mathbf{x}^\top\mathbf{x}) &= 2\mathbf{x}\end{align*}

其中 ∂u∂x\frac{\partial \mathbf{u}}{\partial \mathbf{x}},∂v∂x\frac{\partial \mathbf{v}}{\partial \mathbf{x}} 是雅可比矩阵.

  1. 二次型 (AA 为对称矩阵)

∇x(x⊤Ax)=∂∂x(x⊤Ax)=2Ax∇x∇x⊤(x⊤Ax)=∂2∂x∂x⊤(x⊤Ax)=2A\begin{align*} \nabla_{\mathbf{x}}(\mathbf{x}^\top A \mathbf{x}) = \frac{\partial}{\partial \mathbf{x}}(\mathbf{x}^\top A \mathbf{x}) = 2A\mathbf{x} \\ \nabla_{\mathbf{x}}\nabla_{\mathbf{x}}^\top (\mathbf{x}^\top A \mathbf{x}) = \frac{\partial^2}{\partial \mathbf{x} \partial \mathbf{x}^\top }(\mathbf{x}^\top A \mathbf{x}) = 2A \end{align*}

向量对向量的导数 (雅可比矩阵) ​

  1. 常向量

∂a∂x=O\frac{\partial \mathbf{a}}{\partial \mathbf{x}} = O

  1. 自身向量

∂x∂x=I\frac{\partial \mathbf{x}}{\partial \mathbf{x}} = I

  1. 标量乘向量

∂∂x(av)=a∂v∂x∂∂x(va)=∂v∂xa⊤∂∂x(ax)=aI\begin{align*} \frac{\partial}{\partial \mathbf{x}}(a\mathbf{v}) &= a\frac{\partial \mathbf{v}}{\partial \mathbf{x}} \\ \frac{\partial}{\partial \mathbf{x}}(v \mathbf{a}) &= \frac{\partial v}{\partial \mathbf{x}} \mathbf{a}^\top \\ \frac{\partial}{\partial \mathbf{x}}(a\mathbf{x}) &= a I\end{align*}

  1. 矩阵乘向量

∂∂x(Av)=∂v∂xA⊤∂∂x(Ax)=A⊤\begin{align*}\frac{\partial}{\partial \mathbf{x}}(A\mathbf{v}) &= \frac{\partial \mathbf{v}}{\partial \mathbf{x}} A^\top \\ \frac{\partial}{\partial \mathbf{x}}(A \mathbf{x}) &= A^\top\end{align*}

  1. 向量场

∂∂xF(u)=∂F∂u∂u∂x\frac{\partial}{\partial \mathbf{x}} \mathbf{F}(\mathbf{u}) = \frac{\partial \mathbf{F}}{\partial \mathbf{u}}\frac{\partial \mathbf{u}}{\partial \mathbf{x}}

即两个雅可比矩阵的乘积.

正定 ​

若 AA 正定,则

  1. (对称性)AA 是对称矩阵;
  2. (二次型)∀ x≠0\forall\, \mathbf{x} \ne 0,x⊤Ax>0\mathbf{x}^\top A \mathbf{x} > 0.类似 y=ax2y = ax^2,a>0a > 0;
  3. (特征值)AA 的所有特征值 λi>0\lambda_{i} > 0.相当于在线性变换中,空间不被压缩或被翻转任何方向;
  4. (椭球)x⊤Ax=1\mathbf{x}^\top A \mathbf{x} = 1 在二维上是椭圆、三维上是椭球;
  5. (Sylvester 准则)各阶顺序主子式全正;
  6. (可逆性)AA 可逆(非奇异、满秩、行列式非零),且 A−1A^{-1} 正定;
  7. (​Cholesky 分解)AA 可被唯一分解成 A=LL⊤A=LL^\top,其中 LL 为下三角矩阵且主对角线元素全正;
  8. (凹凸性)x⊤Ax\mathbf{x}^\top A \mathbf{x} 为严格凸函数(convex),在 x=0\mathbf{x} = \mathbf{0} 处取全局唯一最小值 00,用于 凸优化;
  9. (对角线)AA 的主对角线元素全正;
  10. (标准型)AA 合同于 II,即存在可逆矩阵 PP 使得 P⊤AP=IP^\top AP = I,即二次型可化为标准型 ∑yi2\sum y_{i}^2;
  11. (迹为正)tr A=∑λi>0\mathrm{tr}\,A = \sum \lambda_{i} > 0;
  12. (惯性)正惯性指数为 nn,负惯性指数为 00,二次型仅含正平方项;
  13. (平方根)存在唯一的正定矩阵 BB,使得 B2=AB^2 = A.类似正数的算术平方根;

正定矩阵在优化问题、数值计算中具有广泛的应用,例如 共轭梯度法.

合同:保持类型的变形 ​

对于同型矩阵 AA,BB,若存在可逆矩阵 PP,使得 P⊤AP=BP^\top A P = B,则称 AA 与 BB 合同.

合同矩阵描述的是 同一个二次型 在 不同坐标变换 下的表现形式,保持几何体的形状类型(椭球、双曲面).

想象一个橡皮泥捏成的球体,你可以拉伸或压缩它,使其变成椭球,但无法将其变成马鞍形.

在这里,“拉伸或压缩” 对应可逆的合同变换 PP,尽管形状、大小发生改变(不保持特征值),但 类型不变:你不可能通过捏椭球(正定:正惯性指数为 nn,负惯性指数为 00)捏出一个双曲面(正惯性指数小于 nn,负惯性指数大于 00)!这就是合同变换的 惯性定理:合同变换保持惯性指数.特别地,合同变换保持正定性.

比如二次型 x2+2y2x^2 + 2y^2 对应矩阵 [1002]\begin{bmatrix*} 1 & 0 \\ 0 & 2 \end{bmatrix*},通过合同变换 P=[1101]P = \begin{bmatrix*} 1 & 1 \\ 0 & 1 \end{bmatrix*} 得到

B=P⊤AP=[1101]⊤[1002][1101]=[3223]B = P^\top A P = \begin{bmatrix*} 1 & 1 \\ 0 & 1 \end{bmatrix*}^\top\begin{bmatrix*} 1 & 0 \\ 0 & 2 \end{bmatrix*}\begin{bmatrix*} 1 & 1 \\ 0 & 1 \end{bmatrix*} = \begin{bmatrix*} 3 & 2 \\ 2 & 3 \end{bmatrix*}

对应的新二次型为 3x′2+4x′y′+3y′23x'^2 + 4x'y' + 3y'^2,尽管大小变化,形状变化、倾斜,但仍是椭圆(正定).

除此之外,合同变换还保持秩、对称性,但不保持特征值.

相似:同一变换的不同视角 ​

对于同型矩阵 AA,BB,若存在可逆矩阵 PP,使得 P−1AP=BP^{-1} A P = B,则称 AA 与 BB 相似.

相似矩阵描述的是 同一个线性变换 在 不同基 下的表现形式,保持变换的数量特征(特征值、行列式、迹、秩).

小明从 AA 点走到 BB 点.你在正视情况下,小明从左边走到了右边;在斜视情况下,小明从左上方走到了右下方.小明客观上就是从 AA 点走到了 BB 点,走过的路程(数量特征)不受你视角的影响,但走的方向(非数量特征)会随着你的视角不同而改变.“正视着看到小明从左边走到右边”和“斜视着看到小明从左上走到右下”描述了同一个事实:小明从 AA 点走到了 BB 点.

在这里,小明走路是线性变换,矩阵“小明从左边走到右边”与矩阵“小明从左上走到右下”相似,PP 就是视角的切换.

凸性分析 ​

考虑二次型

f(x)=12x⊤Ax−x⊤b+cf(\mathbf{x}) = \frac{1}{2}\mathbf{x}^\top A\mathbf{x} - \mathbf{x}^\top \mathbf{b} + c

其凸性由 Hessian 矩阵

(∇x∇x⊤)f=∂2f∂x∂x⊤=A(\nabla_{\mathbf{x}}\nabla_{\mathbf{x}}^\top) f = \frac{\partial^2 f}{\partial \mathbf{x} \partial \mathbf{x}^\top } = A

的正定性决定.要判断该矩阵是否正定,一般通过 惯性指数判定(低阶手算一般用各阶顺序主子式的正负性).这时由于原矩阵的惯性指数不好直接得到,我们需要对其进行 合同变换(保持惯性指数均不变),转化成易得惯性指数的 对角矩阵:

P⊤AP=DP^\top AP = D

  1. 如果 AA 对称,那么可以对 AA 进行对角化,即可得到正交矩阵 PP 和对角矩阵 DD;
  2. 更进一步,如果 AA 正定,那么可以对 AA 进行 ​Cholesky 分解 A=LL⊤A = L L^\top,得 P=L−1P = L^{-1} 和 D=ID = I.

若 AA 正定,则令一阶导

∇xf=∂f∂x=Ax−b=0\nabla_{\mathbf{x}}f = \frac{\partial f}{\partial \mathbf{x}} = A \mathbf{x} - \mathbf{b} = \mathbf{0}

若有解,得到线性方程

Ax=bA \mathbf{x} = \mathbf{b}

的解 x∗\mathbf{x}^* 即为最小值点.由于 AA 正定,AA 满秩,AA 可逆,于是该最小值点有唯一性.

(ML-1-1) 机器学习及其类别
倍增