BP神經(jīng)網(wǎng)絡(luò)優(yōu)化 如何估算神經(jīng)網(wǎng)絡(luò)的最優(yōu)學(xué)習(xí)率?
如何估算神經(jīng)網(wǎng)絡(luò)的最優(yōu)學(xué)習(xí)率?。具體來(lái)說(shuō),目前主流的神經(jīng)網(wǎng)絡(luò)模型使用梯度下降算法進(jìn)行訓(xùn)練,或?qū)W習(xí)參數(shù)。學(xué)習(xí)速率決定權(quán)重在梯度方向上成批移動(dòng)的距離。理論上,學(xué)習(xí)率越高,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度越快。但是,如果
如何估算神經(jīng)網(wǎng)絡(luò)的最優(yōu)學(xué)習(xí)率?
。
具體來(lái)說(shuō),目前主流的神經(jīng)網(wǎng)絡(luò)模型使用梯度下降算法進(jìn)行訓(xùn)練,或?qū)W習(xí)參數(shù)。學(xué)習(xí)速率決定權(quán)重在梯度方向上成批移動(dòng)的距離。理論上,學(xué)習(xí)率越高,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度越快。但是,如果學(xué)習(xí)速率過(guò)高,可能會(huì)“穿越”損失函數(shù)的最小值,導(dǎo)致收斂失敗。
上圖左邊是高學(xué)習(xí)率,右邊是低學(xué)習(xí)率,來(lái)源:mikkel Duif(quora)
那么,如何找到最佳學(xué)習(xí)率?
方法。但是,這種方法的初始學(xué)習(xí)率(上例中為0.1)不應(yīng)該太高。如果初始學(xué)習(xí)率太高,可能會(huì)“穿越”最優(yōu)值。
另外,還有另外一種思路,就是逆向操作,從學(xué)習(xí)率很低開始,每批之后再提高學(xué)習(xí)率。例如,從0.00001到0.0001,再到0.001,再到0.01,再到0.1。這個(gè)想法背后的直覺(jué)是,如果我們總是以很低的學(xué)習(xí)率學(xué)習(xí),我們總是可以學(xué)習(xí)到最好的權(quán)重(除非整個(gè)網(wǎng)絡(luò)架構(gòu)有問(wèn)題),但它將非常緩慢。因此,從一個(gè)很低的學(xué)習(xí)率開始,我們可以肯定地觀察到損失函數(shù)的下降。然后逐漸加大學(xué)習(xí)率,直到學(xué)習(xí)率過(guò)高,導(dǎo)致發(fā)散。該方法還避免了上述方法初始學(xué)習(xí)率過(guò)高,一次“穿越”最優(yōu)值的隱患。這是Leslie n.Smith在2015年的論文《訓(xùn)練神經(jīng)網(wǎng)絡(luò)的循環(huán)學(xué)習(xí)率》中提出的方法。