數值最佳化

二階最佳性條件(second-order optimality condition)

知道地面是平的,只告訴你身處某個特殊點,卻沒說是哪一種。你是在碗底、圓頂頂端,還是在一個某方向往上、另一方向往下彎的鞍上?要分辨,就檢查地面在你四周如何彎曲:若每個方向都向上拱起,就是真正的谷底。二階最佳性條件正是這個曲率檢驗,而曲率由海森矩陣(Hessian matrix)所刻畫。

海森矩陣 H 是所有二階偏導數組成的矩陣,H_ij = d^2 f / (dx_i dx_j);它記錄梯度本身隨移動如何變化,也就是每一對方向上的曲率。在駐點 x*(grad f = 0 之處):若 H 正定(positive definite)——意即對每個非零方向 v 都有 v^T H v > 0,等價於它所有特徵值都為正——則 x* 是嚴格局部極小(曲面在每個方向都向上彎)。若 H 負定(所有特徵值為負),x* 是局部極大。若 H 同時有正、負特徵值,x* 是鞍點。必要版本說局部極小必須有 H 半正定(特徵值 >= 0);充分版本則需要嚴格正定。

這之所以重要,是因為它是確認極小的嚴謹方法,而海森矩陣的特徵值還揭示問題的條件性(conditioning):最大特徵值與最小特徵值之比,就是這個最佳化的條件數,比值很大(一條又長又窄的谷)正是讓樸素梯度下降來回鋸齒、爬得極慢的原因。誠實的難處在成本:組出並分解整個 n×n 的海森矩陣約需 O(n^3) 運算與 O(n^2) 儲存,當 n 達數百萬時不可行,這正是擬牛頓法改用梯度近似曲率、而不直接計算 H 的緣故。臨界情形——H 半正定但奇異(有一個零特徵值)——確實無法判定,需要更高階導數才能解決。

對 f(x, y) = x^2 + 3y^2,梯度 (2x, 6y) 在原點為零。海森矩陣是常數對角矩陣 diag(2, 6),特徵值 2 與 6——皆為正,所以原點是嚴格局部(此處也是全域)極小。對 g(x, y) = x^2 - y^2,海森矩陣 diag(2, -2) 有一正一負的特徵值:原點是鞍點。

正定海森矩陣 = 碗 = 極小;正負混合 = 鞍點。

常見的錯誤是只檢查某些對角元素為正——那並不是正定。你必須檢驗所有特徵值(或所有順序主子式)。而奇異的半正定海森矩陣(有零特徵值)會讓問題確實懸而未決。

又称
positive-definite Hessian testcurvature testHessian test海森矩陣正定檢驗曲率檢驗