第12课:优化神经网络——网络初始化技巧与超参数调试
上一篇,我們主要介紹了神經(jīng)網(wǎng)絡(luò)中幾種常見(jiàn)的梯度下降優(yōu)化算法,包括 Mini-Batch、Momentum、Nesterov Momentum、AdaGrad、RMSprop、Adam、Learning Rate Decay ,并對(duì)各自特點(diǎn)進(jìn)行了說(shuō)明和對(duì)比。本文將重點(diǎn)講解初始化神經(jīng)網(wǎng)絡(luò)的一些技巧以及如何高效進(jìn)行超參數(shù)調(diào)試。
網(wǎng)絡(luò)輸入標(biāo)準(zhǔn)化
我們知道,神經(jīng)網(wǎng)絡(luò)的輸入層是訓(xùn)練樣本的各個(gè)特征值,而不同特征值的數(shù)值范圍可能不同。例如訓(xùn)練樣本數(shù)據(jù)中輸入層特征是二維的:$[x_1,x_2]$。$x_1$ 的數(shù)值范圍是 [0, 0.01],$x_2$ 的數(shù)值范圍是 [0, 100],彼此相差了 10000 倍。$x_1$ 與 $x_2$ 之間分布極不平衡,會(huì)造成訓(xùn)練得到的權(quán)重 $W$ 數(shù)值差別很大,參數(shù) $b$ 也是一樣。這樣的后果會(huì)造成運(yùn)行梯度下降算法時(shí),振蕩較大,輕則影響訓(xùn)練速度,重則導(dǎo)致模型無(wú)法正確優(yōu)化,無(wú)法獲得優(yōu)質(zhì)解。
怎么理解呢?下面用圖解的方式來(lái)說(shuō)明。
上圖顯示了損失函數(shù) $J$ 與 $W$ 和 $b$ 的凸函數(shù)關(guān)系。左邊兩張圖沒(méi)有進(jìn)行輸入標(biāo)準(zhǔn)化,可見(jiàn) $J$ 與 $W$ 和 $b$ 呈類似橢圓的形狀,這是因?yàn)楸舜朔捣秶煌8鶕?jù)上文中的假設(shè),$x_1$ 與 $x_2$ 之間分布極不平衡,造成 $W$ 數(shù)值差別很大。這時(shí),如果學(xué)習(xí)因子過(guò)大,就容易發(fā)生振蕩,使得 $J$ 下降不穩(wěn)定。為了減小振蕩,只能盡量減小學(xué)習(xí)因子,但是會(huì)大大增加訓(xùn)練時(shí)間,讓訓(xùn)練變得非常緩慢和困難。
右邊兩張圖進(jìn)行了輸入標(biāo)準(zhǔn)化
總結(jié)
以上是生活随笔為你收集整理的第12课:优化神经网络——网络初始化技巧与超参数调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自己常用的C/C++小技巧
- 下一篇: 第11课:优化神经网络——梯度优化