鞍點(saddle point)
想想馬鞍,或兩座山峰之間的山口。站在山口的最低處:沿著連接兩谷的路徑,你正處在一個高點——往任一邊走都會往下。但橫越山脊、朝任一座峰走,你卻處在一個低點——往任一邊走都會往上。你同時在某方向是極大、在另一方向是極小。這個位置就是鞍點。
數學上,鞍點是一個駐點(梯度為零,grad f = 0,所以地面是平的),但既非局部極小也非局部極大。此處的海森矩陣特徵值正負兼具:至少一個為正(曲面在該方向向上彎)、至少一個為負(在另一方向向下彎)。經典例子是 f(x, y) = x^2 - y^2 在原點:沿 x 軸是極小(x^2 向上凹),沿 y 軸是極大(-y^2 向下落)。一階檢驗無法把鞍點和真正的極小分開——兩者看起來都平——這正是二階曲率檢驗存在的理由。
鞍點在現代最佳化中極為重要,尤其是深度學習。在高維中,一個複雜函數的隨機駐點絕大多數機率是鞍點(有些方向往上、有些往下),而非真正的局部極小,因為 n 個特徵值同時全為正,隨 n 增大會變得極其罕見。鞍點才是訓練真正的障礙,而不是壞的局部極小:梯度下降在鞍點附近會慢到近乎停滯(梯度極小),但與極小不同的是,它最終能沿某個下降方向逃離——這也是隨機梯度下降的雜訊有益的原因之一,它把迭代點推離那片平坦的高原。
在 f(x, y) = x^2 - y^2 的原點,梯度 (2x, -2y) 為零,所以是駐點。海森矩陣 diag(2, -2) 的特徵值為 +2 與 -2。正負混合表示它是鞍點:沿 x 是谷底,沿 y 是山頂。一顆恰好放在那裡的球,可能朝任一個 y 為負的方向滾落。
一方向往上、另一方向往下——鞍點雖平,卻不是極小。
別以為梯度變平就找到了極小:在高維中鞍點遠多於極小。好消息是它們可以逃離——嚴格鞍點存在一個下降方向,而隨機雜訊或具曲率資訊的(牛頓型)步進能離開它,反觀局部極小才是真正的陷阱。