1. 程式人生 > >【Math for ML】向量微積分(Vector Calculus)

【Math for ML】向量微積分(Vector Calculus)

I. 向量梯度

假設有一個對映函式為\(f:R^n→R^m\)和一個向量\(x=[x_1,...,x_n]^T∈R^n\),那麼對應的函式值的向量為\(f(x)=[f_1(x),...,f_m(x)]^T∈R^m\)

現在考慮\(f\)\(x_i\)的梯度為:\(\frac{\partial{f}}{\partial{x_i}}=[\frac{\partial{f_1}}{\partial{x_i}},...,\frac{\partial{f_m}}{\partial{x_i}}]^T∈R^m\)

所以有
\[ \begin{align} \frac{df(x)}{dx}&= \left[ \begin{matrix} \frac{\partial{f(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f(x)}}{\partial{x_n}} \end{matrix} \right] \\ &=\left[ \begin{matrix} \frac{\partial{f_1(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f_1(x)}}{\partial{x_n}} \\ \vdots & \ddots & \vdots \\ \frac{\partial{f_m(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f_m(x)}}{\partial{x_n}} \\ \end{matrix} \right] ∈R^{m×n} \\ \end{align} \]

接下來給出Jacobian定義:

\(f:R^n→R^m\)的所有一階偏導集合叫做Jacobian。Jacobian J 是一個\(m×n\)的矩陣,形式定義如下:
\[ \begin{align} J&=\nabla_xf=\frac{df(x)}{dx} \\ &=\left[ \begin{matrix} \frac{\partial{f(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f(x)}}{\partial{x_n}} \end{matrix} \right] \\ &=\left[ \begin{matrix} \frac{\partial{f_1(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f_1(x)}}{\partial{x_n}} \\ \vdots & \ddots & \vdots \\ \frac{\partial{f_m(x)}}{\partial{x_1}} & \cdots & \frac{\partial{f_m(x)}}{\partial{x_n}} \\ \end{matrix} \right] \\ x &= \left[ \begin{matrix} x_1 \\ \vdots \\ x_n \end{matrix} \right],\,\,\, J(i,j)=\frac{\partial{f_i}}{\partial{x_j}} \end{align} \]

II. 矩陣梯度

其實和向量梯度類似,這裡不再給出推導過程,直接給出一些重要的結果:

  • 如果\(f(x)∈R^{m×n},x∈R^{p×q}\),則\(\frac{\partial{f(x)}}{\partial{x}}∈R^{(m×n)×(p×q)}\)
  • 在機器學習中常用到的計算公式:

III. 高階梯度

上面提到的都是一階梯度,在實際應用中會涉及到高階梯度。而常見的有二階梯度

海森矩陣(Hessian) 是一個多變數實值函式的二階偏導陣列成的方陣。其形式如下:

以下內容參考海森矩陣

1. 在對映 \({\displaystyle f:\mathbb {R} ^{2}\to \mathbb {R} }\)
的應用

給定二階導數連續的對映 \({\displaystyle f:\mathbb {R} ^{2}\to \mathbb {R} }\),海森矩陣的行列式,可用於分辨 \({\displaystyle f}\)的臨界點是屬於鞍點還是極值點。

對於 \({\displaystyle f}\) f的臨界點 \({\displaystyle (x_{0},y_{0})}\)一點,有 \({\displaystyle {\frac {\partial f(x_{0},y_{0})}{\partial x}}={\frac {\partial f(x_{0},y_{0})}{\partial y}}=0}\),然而憑一階導數不能判斷它是鞍點、區域性極大點還是區域性極小點。海森矩陣可能解答這個問題。

\[{\displaystyle H={\begin{vmatrix}{\frac {\partial ^{2}f}{\partial x^{2}}}&{\frac {\partial ^{2}f}{\partial x\,\partial y}}\\\\{\frac {\partial ^{2}f}{\partial y\,\partial x}}&{\frac {\partial ^{2}f}{\partial y^{2}}}\end{vmatrix}}={\frac {\partial ^{2}f}{\partial x^{2}}}{\frac {\partial ^{2}f}{\partial y^{2}}}-({\frac {\partial ^{2}f}{\partial y\,\partial x}})^{2}}\]

  • H > 0:若 \({\displaystyle {\frac {\partial ^{2}f}{\partial x^{2}}}>0}\),則 \({\displaystyle (x_{0},y_{0})})\)是區域性極小點;若 \({\displaystyle {\frac {\partial ^{2}f}{\partial x^{2}}}<0}\),則 \({\displaystyle (x_{0},y_{0})}\)是區域性極大點。
  • H < 0:\({\displaystyle (x_{0},y_{0})}\)是鞍點。
  • H = 0:二階導數無法判斷該臨界點的性質,得從更高階的導數以泰勒公式考慮。

2. 在高維情況下的推廣

當函式 \({\displaystyle f:\mathbb {R} ^{n}\to \mathbb {R} }\) 二階連續可導時,Hessian矩陣H在臨界點 \({\displaystyle x_{0}}\) 上是一個 \({\displaystyle n\times n}\)階的對稱矩陣。

  • 當H是正定矩陣時,臨界點 \({\displaystyle x_{0}}\) 是一個區域性的極小值。
  • 當H是負定矩陣時,臨界點 \({\displaystyle x_{0}}\) 是一個區域性的極大值。
  • H=0,需要更高階的導數來幫助判斷。
  • 在其餘情況下,臨界點 \({\displaystyle x_{0}}\) 不是區域性極值



MARSGGBO原創





2018-12-24