机器学习的数学基础——向量与导数
本文介绍机器学习和深度学习公式推导中常见的对向量求导。
对向量的导数,定义如下:
(∂∂xf(x))i=∂∂xifi(x)\left( \frac{\partial}{\partial \bm{x}} f(\bm{x}) \right)_i = \frac{\partial}{\partial x_i} f_i(\bm{x})(∂x∂f(x))i=∂xi∂fi(x)
上式中下标 iii 表示第 iii 个分量。特别地,若 f(x)f(\bm{x})f(x) 为数量,有 fi(x)=f(x)f_i(\bm{x}) = f(\bm{x})fi(x)=f(x)。
结合向量场论中梯度的定义,可知
∂∂xf(x)=∇xf(x)\frac{\partial}{\partial \bm{x}} f(\bm{x}) = \nabla_{\bm{x}} f(\bm{x})∂x∂f(x)=∇xf(x)
对向量求导的结果总是向量,维度与 x\bm{x}x 相同。在线性代数中,这个向量可以写作列向量,也可以写作行向量。下面推导一些常用的结论,一律使用列向量。
∂∂x(μ⊤x)=μ\frac{\partial}{\partial \bm{x}} \left( \bm{\mu}^\top \bm{x} \right) = \bm{\mu}∂x∂(μ⊤x)=μ
因为
∂∂xk(μ⊤x)=∂∂xk∑i=1nμixi=∂∂xk(μkxk)=μk \begin{align*} \frac{\partial}{\partial x_k} \left(\bm{\mu^\top \bm{x}} \right) &= \frac{\partial}{\partial x_k} \sum_{i = 1}^{n} \mu_i x_i \\ &= \frac{\partial}{\partial x_k} \left( \mu_k x_k \right) \\ &= \mu_k \end{align*} ∂xk∂(μ⊤x)=∂xk∂i=1∑nμixi=∂xk∂(μkxk)=μk
∂∂x(x⊤Ax)=2Ax\frac{\partial}{\partial \bm{x}} \left( \bm{x}^\top \mathbf{A} \bm{x} \right) = 2 \mathbf{A} \bm{x}∂x∂(x⊤Ax)=2Ax
其中 A\mathbf{A}A 为实对称矩阵。因为
∂∂xk(x⊤Ax)=∂∂xk∑i,jAijxixj=∂∂xk(∑j≠kAkjxkxj+∑i≠kAikxixk+Akkxk2)=∑i≠kAkjxj+∑i≠kAikxi+2Akkxk=∑jAkjxj+∑iAikxi=2Akx \begin{align*} \frac{\partial}{\partial x_k} \left( \bm{x}^\top \mathbf{A} \bm{x} \right) &= \frac{\partial}{\partial x_k} \sum_{i, j} A_{ij} x_i x_j\\ &= \frac{\partial}{\partial x_k} \left( \sum_{j \ne k} A_{kj} x_k x_j + \sum_{i \ne k} A_{ik} x_i x_k + A_{kk} x_k^2 \right) \\ &= \sum_{i \ne k} A_{kj} x_j + \sum_{i \ne k} A_{ik} x_i + 2 A_{kk} x_k \\ &= \sum_{j} A_{kj} x_j + \sum_{i} A_{ik} x_i \\ &= 2 \bm{A}_k \bm{x} \end{align*} ∂xk∂(x⊤Ax)=∂xk∂i,j∑Aijxixj=∂xk∂j=k∑Akjxkxj+i=k∑Aikxixk+Akkxk2=i=k∑Akjxj+i=k∑Aikxi+2Akkxk=j∑Akjxj+i∑Aikxi=2Akx
其中 AijA_{ij}Aij 表示矩阵 A\mathbf{A}A 的第 iii 行第 jjj 列的数,Ak\bm{A}_kAk 表示矩阵 A\mathbf{A}A 第 kkk 行构成的行向量。最后一步推导用到了 A\mathbf{A}A 的对称性。
更多推荐
所有评论(0)