布局(Layout):在矩阵求导中有两种布局,分别为分母布局(denominator layout)和分子布局(numerator layout)。
例如向量 y = [ y 1 y 2 ⋮ y n ] \mathbf{y}=\left[\begin{array}{c}y_{1} \\ y_{2} \\ \vdots \\ y_{n}\end{array}\right] y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤, 关于标量 x x x 的求导,在分子布局下,导数维数与分子一致,为:
∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y n ∂ x ] \frac{\partial \mathbf{y}}{\partial x}=\left[\begin{array}{c} \frac{\partial y_{1}}{\partial x} \\ \\ \frac{\partial y_{2}}{\partial x} \\ \\ \vdots \\ \\ \frac{\partial y_{n}}{\partial x} \end{array}\right] ∂x∂y=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x∂y1∂x∂y2⋮∂x∂yn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
而在分母布局下,导数维数与分母一致,为:
∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋯ ∂ y n ∂ x ] \frac{\partial \mathbf{y}}{\partial x}=\left[\begin{array}{cccc} \frac{\partial y_{1}}{\partial x} & \frac{\partial y_{2}}{\partial x} & \cdots & \frac{\partial y_{n}}{\partial x} \end{array}\right] ∂x∂y=[∂x∂y1∂x∂y2⋯∂x∂yn]
由此可以发现,分子布局和分母布局之间刚好差一个转置,分子布局下的导数经过转置可以得到分母布局下的导数。
本文将采用的是分子布局。
标量与标量的导数,即 ∂ y ∂ x \frac{\partial {y}}{\partial x} ∂x∂y
向量与标量的导数
向量 y = [ y 1 y 2 ⋮ y n ] \mathbf{y}=\left[\begin{array}{c}y_{1} \\ y_{2} \\ \vdots \\ y_{n}\end{array}\right] y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤关于标量 x x x 的求导就是 y \mathbf{y} y中每个元素分别对 x x x求导,可以表示为:
∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y n ∂ x ] (2.1) \frac{\partial \mathbf{y}}{\partial x}=\left[\begin{array}{c} \frac{\partial y_{1}}{\partial x} \\ \\ \frac{\partial y_{2}}{\partial x} \\ \\ \vdots \\ \\ \frac{\partial y_{n}}{\partial x} \end{array}\right]\tag{2.1} ∂x∂y=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x∂y1∂x∂y2⋮∂x∂yn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤(2.1)
矩阵与标量的导数
令 A ∈ R m × m \mathbf{A} \in\mathbb{R}^{m \times m} A∈Rm×m,且其元素为标量 α \alpha α 的函数,可得 ∂ A ∂ α = [ ∂ a 11 ∂ α ∂ a 12 ∂ α ⋯ ∂ a 1 n ∂ α ∂ a 21 ∂ α ∂ a 22 ∂ α ⋯ ∂ a 2 n ∂ α ⋮ ⋮ ⋮ ∂ a m 1 ∂ α ∂ a m 2 ∂ α ⋯ ∂ a m n ∂ α ] (2.2) \frac{\partial \mathbf{A}}{\partial \alpha}=\left[\begin{array}{cccc} \frac{\partial \mathbf{a}_{11}}{\partial \alpha} & \frac{\partial \mathbf{a}_{12}}{\partial \alpha} & \cdots & \frac{\partial \mathbf{a}_{1 n}}{\partial \alpha} \\\\ \frac{\partial \mathbf{a}_{21}}{\partial \alpha} & \frac{\partial \mathbf{a}_{22}}{\partial \alpha} & \cdots & \frac{\partial \mathbf{a}_{2 n}}{\partial \alpha} \\\\ \vdots & \vdots & & \vdots \\\\ \frac{\partial \mathbf{a}_{m 1}}{\partial \alpha} & \frac{\partial \mathbf{a}_{m 2}}{\partial \alpha} & \cdots & \frac{\partial \mathbf{a}_{m n}}{\partial \alpha} \end{array}\right]\tag{2.2} ∂α∂A=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂α∂a11∂α∂a21⋮∂α∂am1∂α∂a12∂α∂a22⋮∂α∂am2⋯⋯⋯∂α∂a1n∂α∂a2n⋮∂α∂amn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤(2.2)
当 A ∈ R m × m \mathbf{A} \in\mathbb{R}^{m \times m} A∈Rm×m,且为非奇异矩阵,其元素为标量 α \alpha α 的函数,则
∂ A − 1 ∂ α = − A − 1 ∂ A ∂ α A − 1 (2.3) \frac{\partial \mathbf{A}^{-1}}{\partial \alpha}=-\mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial \alpha} \mathbf{A}^{-1}\tag{2.3} ∂α∂A−1=−A−1∂α∂AA−1(2.3)
推论一
令 y = A u (2.8) \mathbf{y}= \mathbf{A} \mathbf{u}\tag{2.8} y=Au(2.8)
其中 y ∈ R m × 1 \mathbf{y} \in\mathbb{R}^{m \times 1} y∈Rm×1, A ∈ R m × n \mathbf{A} \in\mathbb{R}^{m \times n} A∈Rm×n, u ∈ R n × 1 \mathbf{u} \in\mathbb{R}^{n \times 1} u∈Rn×1, x ∈ R p × 1 \mathbf{x} \in\mathbb{R}^{p \times 1} x∈Rp×1, A \mathbf{A} A与 x \mathbf{x} x无关 且有,我们知道结果肯定和 ∂ u ∂ x \frac{\partial \mathbf{u}}{\partial \mathbf{x}} ∂x∂u 有关,于是先把 A \mathbf{A} A 提出求导式,接着可以发现 ∂ u ∂ x ∈ R n × p \frac{\partial \mathbf{u}}{\partial \mathbf{x}} \in \mathbb{R}^{n \times p} ∂x∂u∈Rn×p,因此有 ∂ y ∂ x = A ∂ u ∂ x (2.9) \frac{\partial \mathbf{y} }{\partial \mathbf{x}}= \mathbf{A}\frac{\partial \mathbf{u}}{\partial \mathbf{x}} \tag{2.9} ∂x∂y=A∂x∂u(2.9)矩阵求导可以从维度上进行分析
推论二
令 α = y ⊤ A x (2.10) \alpha=\mathbf{y}^{\top} \mathbf{A} \mathbf{x}\tag{2.10} α=y⊤Ax(2.10)
其中 y ∈ R m × 1 \mathbf{y} \in\mathbb{R}^{m \times 1} y∈Rm×1, A ∈ R m × n \mathbf{A} \in\mathbb{R}^{m \times n} A∈Rm×n, x ∈ R n × 1 \mathbf{x} \in\mathbb{R}^{n \times 1} x∈Rn×1,且 A \mathbf{A} A 独立于 x , y \mathbf{x,y} x,y 。我们可以将它分为两个部分
令 w ⊤ = y ⊤ A ∈ R 1 × m (2.11) \mathbf{w}^{\top}= \mathbf{y}^{\top}\mathbf{A} \in \mathbb{R}^{1 \times m}\quad \tag{2.11} w⊤=y⊤A∈R1×m(2.11)所以
α = w ⊤ x (2.12) \alpha=\mathbf{w}^{\top} \mathbf{x}\tag{2.12} α=w⊤x(2.12)
由式(2.6)可知
∂ α ∂ x = w ⊤ = y ⊤ A (2.13) \frac{\partial \alpha}{\partial \mathbf{x}}=\mathbf{w}^{\top}=\mathbf{y}^{\top} \mathbf{A}\tag{2.13} ∂x∂α=w⊤=y⊤A(2.13)
这是第一个结论,由于阿尔法是一个标量,我们可以推出
α = α ⊤ = x ⊤ A ⊤ y (2.14) \alpha=\alpha^{\top}=\mathbf{x}^{\top} \mathbf{A}^{\top} \mathbf{y}\tag{2.14} α=α⊤=x⊤A⊤y(2.14)
同理可以得到
∂ α ∂ y = x ⊤ A ⊤ (2.15) \frac{\partial \alpha}{\partial \mathbf{y}}=\mathbf{x}^{\top} \mathbf{A}^{\top} \tag{2.15} ∂y∂α=x⊤A⊤(2.15)
当 x \mathbf{x} x 与 y \mathbf{y} y 是 z \mathbf{z} z 的函数且 A \mathbf{A} A 与 z \mathbf{z} z 无关时,有:
∂ α ∂ z = ∂ α ∂ y ∂ y ∂ z + ∂ α ∂ x ∂ x ∂ z = x ⊤ A ⊤ ∂ y ∂ z + y ⊤ A ∂ x ∂ z (2.16) \frac{\partial \alpha}{\partial \mathbf{z}}=\frac{\partial \alpha}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{z}}+\frac{\partial \alpha}{\partial \mathbf{x}} \frac{\partial \mathbf{x}}{\partial \mathbf{z}}=\mathbf{x}^{\top} \mathbf{A}^{\top} \frac{\partial \mathbf{y}}{\partial \mathbf{z}}+\mathbf{y}^{\top} \mathbf{A} \frac{\partial \mathbf{x}}{\partial \mathbf{z}}\tag{2.16} ∂z∂α=∂y∂α∂z∂y+∂x∂α∂z∂x=x⊤A⊤∂z∂y+y⊤A∂z∂x(2.16)
推论三
令 α = x ⊤ A x (2.17) \alpha=\mathbf{x}^{\top} \mathbf{A} \mathbf{x}\tag{2.17} α=x⊤Ax(2.17)即 α = ∑ j = 1 n ∑ i = 1 n a i j x i x j (2.18) \alpha=\sum_{j=1}^{n} \sum_{i=1}^{n} a_{i j} x_{i} x_{j}\tag{2.18} α=j=1∑ni=1∑naijxixj(2.18)
其中 A ∈ R n × n \mathbf{A} \in\mathbb{R}^{n \times n} A∈Rn×n, x ∈ R n × 1 \mathbf{x} \in\mathbb{R}^{n \times 1} x∈Rn×1,且 A \mathbf{A} A 独立于 x \mathbf{x} x 。对 x \mathbf{x} x 的 k k k 分量求导可得
∂ α ∂ x k = ∑ j = 1 n a k j x j + ∑ i = 1 n a i k x i (2.19) \frac{\partial \alpha}{\partial x_{k}}=\sum_{j=1}^{n} a_{k j} x_{j}+\sum_{i=1}^{n} a_{i k} x_{i}\tag{2.19} ∂xk∂α=j=1∑nakjxj+i=1∑naikxi(2.19)推广到 k = 1 , 2 , ⋯ , n k=1,2,\cdots,n k=1,2,⋯,n可得
∂ α ∂ x = x ⊤ A ⊤ + x ⊤ A = x ⊤ ( A ⊤ + A ) (2.20) \frac{\partial \alpha}{\partial \mathbf{x}}=\mathbf{x}^{\top} \mathbf{A}^{\top}+\mathbf{x}^{\top} \mathbf{A}=\mathbf{x}^{\top}\left(\mathbf{A}^{\top}+\mathbf{A}\right)\tag{2.20} ∂x∂α=x⊤A⊤+x⊤A=x⊤(A⊤+A)(2.20)特别地,当 A \mathbf{A} A为对称阵的时候, ∂ α ∂ x = 2 x ⊤ A (2.21) \frac{\partial \alpha}{\partial x}=2 \mathbf{x}^{\top} \mathbf{A}\tag{2.21} ∂x∂α=2x⊤A(2.21)
推论四
令 α = y ⊤ x (2.22) \alpha=\mathbf{y}^{\top} \mathbf{x}\tag{2.22} α=y⊤x(2.22)其中 y ∈ R n × 1 \mathbf{y} \in\mathbb{R}^{n \times 1} y∈Rn×1, x ∈ R n × 1 \mathbf{x} \in\mathbb{R}^{n \times 1} x∈Rn×1,且 x \mathbf{x} x 与 y \mathbf{y} y 是 z \mathbf{z} z 的函数,可得 ∂ α ∂ z = ∂ α ∂ y ∂ y ∂ z + ∂ α ∂ x ∂ x ∂ z = x ⊤ ∂ y ∂ z + y ⊤ ∂ x ∂ z (2.23) \frac{\partial \alpha}{\partial \mathbf{z}}=\frac{\partial \alpha}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{z}}+\frac{\partial \alpha}{\partial \mathbf{x}} \frac{\partial \mathbf{x}}{\partial \mathbf{z}}=\mathbf{x}^{\top} \frac{\partial \mathbf{y}}{\partial \mathbf{z}}+\mathbf{y}^{\top} \frac{\partial \mathbf{x}}{\partial \mathbf{z}}\tag{2.23} ∂z∂α=∂y∂α∂z∂y+∂x∂α∂z∂x=x⊤∂z∂y+y⊤∂z∂x(2.23)
pinv (X'*X)*X'*y
梯度下降法 | 正规方程 |
---|---|
需要选择学习率 | 不需要选择学习率 |
需要许多次迭代 | 不需要迭代 |
O ( k n 2 ) O(kn^2) O(kn2) | O ( n 3 ) O(n^3) O(n3),需要计算 X ⊤ X \mathbf{X}^{\top}\mathbf{X} X⊤X 的逆矩阵 |
当n很大时效率较高 | 当n很大时计算时间长 |
X ⊤ X \mathbf{X}^{\top}\mathbf{X} X⊤X不可逆的可能原因: