深度模型中的優(yōu)化
1. 神經(jīng)網(wǎng)絡(luò)中的優(yōu)化挑戰(zhàn)
1.1 病態(tài)
??病態(tài)問題一般被認(rèn)為存在于神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中兄渺。病態(tài)體現(xiàn)在隨機(jī)梯度下降會(huì)‘‘卡’’ 在某些情況,此時(shí)即使很小的更新步長(zhǎng)也會(huì)增加代價(jià)函數(shù)撑刺。
1.2 局部極小值
??由于模型可辨識(shí)性(model identifiability)問題,神經(jīng)網(wǎng)絡(luò)和任意具有多個(gè)等效參數(shù)化潛變量的模型都會(huì)具有多個(gè)局部極小值。如果一個(gè)足夠大的訓(xùn)練集可以唯一確定一組模型參數(shù)聪蘸,那么該模型被稱為可辨認(rèn)的狰闪。帶有潛變量的模型通常是不可辨認(rèn)的疯搅,因?yàn)橥ㄟ^相互交換潛變量我們能得到等價(jià)的模型。例如埋泵,考慮神經(jīng)網(wǎng)絡(luò)的第一層幔欧,我們可以交換單元 i 和單元 j 的傳入權(quán)重向量、傳出權(quán)重向量而得到等價(jià)的模型丽声。如果神經(jīng)網(wǎng)絡(luò)有 m 層礁蔗,每層有 n 個(gè)單元,那么會(huì)有 n! m 種排列隱藏單元的方式雁社。這種不可辨認(rèn)性被稱為權(quán)重空間對(duì)稱性(weight space symmetry)浴井。
??一種能夠排除局部極小值是主要問題的檢測(cè)方法是畫出梯度范數(shù)隨時(shí)間的變化。如果梯度范數(shù)沒有縮小到一個(gè)微小的值霉撵,那么該問題既不是局部極小值磺浙,也不是其他形式的臨界點(diǎn)。
1.3 高原徒坡、鞍點(diǎn)和其他平坦區(qū)域
??對(duì)于很多高維非凸函數(shù)而言撕氧,局部極小值(以及極大值)事實(shí)上都遠(yuǎn)少于另一類梯度為零的點(diǎn):鞍點(diǎn)。鞍點(diǎn)附近的某些點(diǎn)比鞍點(diǎn)有更大的代價(jià)喇完,而其他點(diǎn)則有更小的代價(jià)伦泥。在鞍點(diǎn)處,Hessian矩陣同時(shí)具有正負(fù)特征值锦溪。位于正特征值對(duì)應(yīng)的特征向量方向的點(diǎn)比鞍點(diǎn)有更大的代價(jià)不脯,反之,位于負(fù)特征值對(duì)應(yīng)的特征向量方向的點(diǎn)有更小的代價(jià)刻诊。
1.4 懸崖和梯度爆炸
??多層神經(jīng)網(wǎng)絡(luò)通常存在像懸崖一樣的斜率較大區(qū)域防楷,如圖1所示。這是由于幾個(gè)較大的權(quán)重相乘導(dǎo)致的则涯。遇到斜率極大的懸崖結(jié)構(gòu)時(shí)域帐,梯度更新會(huì)很大程度地改變參數(shù)值赘被,通常會(huì)完全跳過這類懸崖結(jié)構(gòu)。
??當(dāng)傳統(tǒng)的梯度下降算法提議更新很大一步時(shí)肖揣,啟發(fā)式梯度截?cái)鄷?huì)干涉來減小步長(zhǎng)民假,從而使其不太可能走出梯度近似為最陡下降方向的懸崖區(qū)域。懸崖結(jié)構(gòu)在循環(huán)神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù)中很常見龙优,因?yàn)檫@類模型會(huì)涉及到多個(gè)因子的相乘羊异,其中每個(gè)因子對(duì)應(yīng)一個(gè)時(shí)間步。因此彤断,長(zhǎng)期時(shí)間序列會(huì)產(chǎn)生大量相乘野舶。
1.5 長(zhǎng)期依賴
??當(dāng)計(jì)算圖變得極深時(shí),神經(jīng)網(wǎng)絡(luò)優(yōu)化算法會(huì)面臨的另外一個(gè)難題就是長(zhǎng)期依賴問題——由于變深的結(jié)構(gòu)使模型喪失了學(xué)習(xí)到先前信息的能力宰衙,讓優(yōu)化變得極其困難平道。梯度消失使得我們難以知道參數(shù)朝哪個(gè)方向移動(dòng)能夠改進(jìn)代價(jià)函數(shù),而梯度爆炸會(huì)使得學(xué)習(xí)不穩(wěn)定供炼。之前描述的促使我們使用梯度截?cái)嗟膽已陆Y(jié)構(gòu)便是梯度爆炸現(xiàn)象的一個(gè)例子一屋。
1.6 非精確梯度
??大多數(shù)優(yōu)化算法的先決條件都是我們知道精確的梯度或是Hessian矩陣。在實(shí)踐中袋哼,通常這些量會(huì)有噪聲冀墨,甚至是有偏的估計(jì)。幾乎每一個(gè)深度學(xué)習(xí)算法都需要基于采樣的估計(jì)涛贯,至少使用訓(xùn)練樣本的小批量來計(jì)算梯度诽嘉。