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\)
所以有
接下來給出Jacobian定義:
\(f:R^n→R^m\)的所有一階偏導集合叫做Jacobian。Jacobian J 是一個\(m×n\)的矩陣,形式定義如下:
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}\),然而憑一階導數不能判斷它是鞍點、局部極大點還是局部極小點。海森矩陣可能解答這個問題。
- 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}}\) 不是局部極值