在 Why Deep Structure 一文中我已經(jīng)說(shuō)明了 Deep Structure 的表示能力很強(qiáng)贱除,以及相比 Shallow Structure 的優(yōu)勢(shì)所在完沪。但“能力越大責(zé)任越大”蝗柔,擬合能力越強(qiáng)的模型往往越難找到最優(yōu)解蝶涩。
本文根據(jù)李宏毅老師的講義整理了關(guān)于 Deep Learning 中的 Optimization 部分的一個(gè)特殊情形骤铃,即梯度為 0 的情形沛善。
首先蹲坷,我們知道驶乾,若損失函數(shù)為凸函數(shù),則使用梯度下降法找到的局部最優(yōu)解即為全局最優(yōu)解冠句,但深度學(xué)習(xí)難就難在其損失函數(shù)通常不是凸函數(shù)轻掩,如圖所示:
圖中通過(guò)一個(gè)很簡(jiǎn)單的例子說(shuō)明了為什么 DL 的 Loss Function 通常非凸。假如我們當(dāng)前找到了一組權(quán)重使得 Loss Function 達(dá)到局部最小值懦底,那么我們通過(guò)交換神經(jīng)元的位置而不改變權(quán)重唇牧,顯然得到的還是局部最小值,而這兩者的權(quán)重向量是不同的聚唐,由其中一個(gè)向量變化到另一個(gè)向量的過(guò)程中 Loss Function 必然會(huì)有一個(gè)上升過(guò)程(因?yàn)楫?dāng)前處于局部最胸ぶ亍),因此局部的函數(shù)圖像如右下角的圖形所示杆查,是一個(gè)非凸函數(shù)扮惦。
非凸函數(shù)的麻煩在于,當(dāng)我們利用梯度下降法找到局部最小值時(shí)亲桦,我們不知道和全局最小值相差多少崖蜜,也無(wú)法保證能夠得到全局最小值浊仆。
但近期的研究中人們猜測(cè),雖然 DL 的損失函數(shù)局部最小值很多豫领,但都相差不大抡柿,也就是說(shuō),當(dāng)陷入局部最小的時(shí)候等恐,我們就得到了一個(gè)不錯(cuò)的解洲劣。
所以接下來(lái)的問(wèn)題就是,利用梯度下降法能夠得到局部最優(yōu)解嗎课蔬?
如上圖所示囱稽,當(dāng)我們陷入梯度為 0 (或梯度數(shù)值非常小)的點(diǎn)時(shí)二跋,有可能是局部最小值战惊,有可能是局部最大值,也有可能是鞍點(diǎn)同欠。
當(dāng)然样傍,利用梯度下降法最終停在局部最大值的可能性幾乎為 0,除非你的初始位置就在局部最大值點(diǎn)铺遂,使得參數(shù)無(wú)法更新衫哥。
當(dāng)梯度下降法運(yùn)行停止的時(shí)候,我們要如何判斷所在點(diǎn)是以上哪一種情形呢襟锐?
其實(shí)思路和高中時(shí)期求二階導(dǎo)沒(méi)有本質(zhì)區(qū)別撤逢。首先將 Loss Function 在當(dāng)前的臨界點(diǎn) 進(jìn)行 Taylor expansion,由于當(dāng)前導(dǎo)數(shù)
粮坞,因此函數(shù)值在
附近的變化情形由二階項(xiàng)決定蚊荣。
這里就自然引出了 Hessian Matrix 的定義。
由圖中的形式我們知道莫杈,若 是正定矩陣(即對(duì)任意
互例,都有
),則
在點(diǎn)
附近的所有
的取值都大于在
的取值(因?yàn)槎雾?xiàng)恒正)筝闹,所以
是 local minimum媳叨。
同理,若 是負(fù)定矩陣关顷,則
在點(diǎn)
附近的所有
的取值都小于在
的取值(因?yàn)槎雾?xiàng)恒負(fù))糊秆,所以
是 local maximum。
若有時(shí), 有時(shí)
议双,則
是一個(gè)鞍點(diǎn)痘番。
需要注意的是,如果 是半正定或半負(fù)定的,即對(duì)任意
汞舱,都有
或
伍纫,則無(wú)法確定
是哪一種情形,因此當(dāng)
的時(shí)候,決定
附近點(diǎn)的取值的就變成三次項(xiàng)了辞嗡。
最后,需要說(shuō)明的是,梯度下降法有時(shí)候會(huì)卡住飞几,也就是說(shuō) Loss Function 的值不再呈下降趨勢(shì),而是在某個(gè)值附近振蕩萍虽,這時(shí)候我們往往認(rèn)為是接近臨界點(diǎn)導(dǎo)致的轴脐,而事實(shí)并不一定如此。
如圖所示砾嫉,當(dāng)梯度下降法導(dǎo)致的 Loss Function 變化平緩的時(shí)候幼苛,其實(shí)它的梯度值仍然可能很大。
此外焕刮,在實(shí)踐中人們發(fā)現(xiàn)舶沿,DL 的訓(xùn)練過(guò)程中 Loss Function 的變化趨勢(shì)更像下面的形式。
也就是說(shuō)配并,我們一直在不斷跳入鞍點(diǎn)(下降)然后逃離(上升)括荡,而不是一路下降停在一個(gè)局部最優(yōu)點(diǎn)。