一、定義
海森矩陣最直觀的定義是具有多維輸入的函數f(x
1,x2.....xn)的二階偏導數組成的方陣,形式如下:當然,我們也可以認為函數的輸入是一個多維向量,這和深度學習的場景就很相似了。由於微分算子在任何二階偏導連續的點可交換
我們仔細觀察海森矩陣會發現它有很強的對稱性,實際上在深度學習的背景下,我們遇到的大多數函數的海森矩陣幾乎處處對稱。
二、作用
1、判斷多元函數的極值
我們都知道對於一元二階可導函數,一階導數為零,二階導數大於零是極小值點;一階導數為零,二階導數小於零是極大值點;一階導數和二階導數都為零是駐點。海森矩陣幫助我們把這個理論推廣到了多維函數。將海森矩陣進行特徵值分解可得如下定理:
矩陣正定(所有特徵值為正),該臨界點為局部極小值點。
矩陣負定(所有特徵值為負),該臨界點為局部極大值點。
特徵值中至少一個為正或者至少一個為負,該臨界點為鞍點。
所有非零特徵值同號且至少有一個特徵值為零,該點無法確定。
2、優化目標函數
我們可以將目標函數在某點的鄰域展開成泰勒多項式來逼近原函數。最典型的應用就是牛頓法。牛頓法基於一個二階泰勒公式展開來近似x
0附近的f(x)。其中H代表海森矩陣,如果f是一個正定二次函數,牛頓法能直接跳到函數的最小點。如果f不是一個正定二次函數但是在局部能近似為正定二次,牛頓法也可以比梯度下降更快的到達臨界點。
但是在遇到鞍點時卻很容易淪陷。只有當海森矩陣正定時牛頓法才適用。
閱讀更多 時辰大海 的文章