爲什麼機器學習(一)——Hessian矩陣的正定性爲什麼可以決定函數是否有極值

爲什麼機器學習(一)——Hessian矩陣的正定性爲什麼可以決定函數是否有極值

在學習機器學習的過程中,我們不可繞開的是訓練模型的時候怎麼找到損失函數的極值。
可能大家都曾記住過這樣一個結論:若M點處函數的梯度爲0,則M爲駐點,那麼:
(1)Hessian矩陣正定=>函數在M點有極小值
(2)Hessian矩陣負定=>函數在M點有極大值
(3)Hessian矩陣不定=>M點不是極值點
最初我看到這個結論的時候把他當公式背下來了,但是時間久了容易忘而且理解不深刻,最近試着證明理解了一下,希望大家批評指正。

1.引理:多元函數的Taylor展開

多元函數的在x0\vec x_0處的Taylor展開爲:


f(x1,x2,......,xn)=f(x0(1),x0(2),......,x0(n))+i=1nfx0(i)(x0(1),x0(2),......,x0(n))(xix0(i))+12!i,j=0n(xix0(i))(xjx0(j))fx0(i)x0(j)(x0(1),x0(2),......,x0(n))+onf(x_1,x_2,......,x_n) = f(x_{0(1)},x_{0(2)},......,x_{0(n)})+ \sum_{i=1}^{n}f'_{x_{0(i)}}(x_{0(1)},x_{0(2)},......,x_{0(n)})(x_i - x_{0(i)})\\+ \frac{1}{2!}\sum_{i,j=0}^n(x_i-x_0(i))(x_j-x_{0(j)})f''_{x_0(i)x_0(j)}(x_{0(1)},x_{0(2)},......,x_{0(n)}) + o^n

寫成矩陣形式:


f(x)=f(x0)+[f(x0)]T(xx0)+12![xx0]TH(x0)[xx0]+onf(\vec x) = f(\vec x_0) + [\nabla f(x_0)]^T(\vec x - \vec x_0) +\frac{1}{2!}[\vec x - \vec x_0]^TH(x_0)[\vec x - \vec x_0] + o^n

其中HH是Hessian矩陣

2.從極值原理出發看爲什麼有極值

假設x0x_0是駐點,我們想判斷這個點是否是極值點,那麼要看f(x0+Δx)f(x_0+\Delta x)f(x0)f(x_0)的關係:
由Taylor展開的矩陣形式:

f(x+Δx)f(x)=[f(x0)]T(Δx)+12![Δx]TH(x0)[Δx]+on(1)f(\vec x + \vec {\Delta x})-f(\vec x) = [\nabla f(x_0)]^T( \vec {\Delta x}) +\frac{1}{2!}[ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}] + o^n \tag{1}

由於x0x_0是駐點,所以[f(x0)]T[\nabla f(x_0)]^T爲0,忽略ono^n,則(1)式的正負僅與[Δx]TH(x0)[Δx][ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}]有關,故:
(1)Hessian矩陣正定=>(1)式大於0恆成立,函數在M點有極小值
(2)Hessian矩陣負定=>(1)式小於0恆成立函數在M點有極大值
(3)Hessian矩陣不定=>(1)式正負性難料,M點不是極值點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章