深度學習訓練的小技巧食呻,調(diào)參經(jīng)驗。-源于網(wǎng)絡(luò)

獲取數(shù)據(jù):確保要有高質(zhì)量的輸入/輸出數(shù)據(jù)集澎现,這個數(shù)據(jù)集要足夠大仅胞、具有代表性以及擁有相對清楚的標簽。缺乏數(shù)據(jù)集是很難成功的剑辫。

預處理:將數(shù)據(jù)進行集中是非常重要的干旧,也就是要使數(shù)據(jù)均值為0,從而使每個維度的每次變動為1妹蔽。有時椎眯,當輸入的維度隨量級排序變化時,最好使用那個維度的log(1+x)胳岂”嗾基本上,重要的是要找到一個0值的可信編碼以及自然分界的維度乳丰。這樣做可使學習工作得更好掌测。情況就是這樣的,因為權(quán)值是通過公式來更新的:wij中的變化\propto

xidL/dyj(w表示從層x到層y的權(quán)值产园,L是損失函數(shù))汞斧。如果x的均值很大(例如100),那么權(quán)值的更新將會非常大什燕,并且是相互關(guān)聯(lián)的粘勒,這使得學習變得低劣而緩慢。保持0均值和較小的方差是成功的關(guān)鍵因素秋冰。

批處理:在如今的計算機上每次只執(zhí)行一個訓練樣本是很低效的仲义。反之如果進行的是128個例子的批處理,效率將大幅提高剑勾,因為其輸出量是非嘲D欤可觀的。事實上使用數(shù)量級為1的批處理效果不錯虽另,這不僅可獲得性能的提升同時可降低過度擬合暂刘;不過這有可能會被大型批處理超越。但不要使用過大的批處理捂刺,因為有可能導致低效和過多過度擬合谣拣。所以我的建議是:根據(jù)硬件配置選取適合的批處理規(guī)模募寨,量力而為會更加高效。

梯度歸一化:根據(jù)批處理的大小來拆分梯度森缠。這是一個好主意拔鹰,因為如果對批處理進行倍增(或倍減),無需改變學習率(無論如何贵涵,不要太多)列肢。

學習率計劃:從一個正常大小的學習率(LR)開始,朝著終點不斷縮小宾茂。

1LR的典型取值是0.1瓷马,令人驚訝的是,對于大量的神經(jīng)網(wǎng)絡(luò)問題來說跨晴,0.1是學習率的一個很好的值欧聘。通常學習率傾向于更小而非更大。使用一個驗證集——一個不進行訓練的訓練集子集端盆,來決定何時降低學習率以及何時停止訓練(例如當驗證集的錯誤開始增多的時候)怀骤。學習率計劃的實踐建議:若發(fā)現(xiàn)驗證集遭遇瓶頸,不妨將LR除以2(或5)焕妙,然后繼續(xù)晒喷。最終,LR將會變得非常小访敌,這也到了停止訓練的時候了。這樣做可以確保在驗證性能受到損害的時候衣盾,你不會擬合(或過度擬合)訓練數(shù)據(jù)寺旺。降低LR是很重要的,通過驗證集來控制LR是個正確的做法势决。

最重要的是要關(guān)注學習率阻塑。一些研究人員(比如Alex

Krizhevsky)使用的方法是,監(jiān)視更新范數(shù)和權(quán)值范數(shù)之間的比率果复。比率取值大約為10ˉ3。如果取值過小,那么學習會變得非常慢淑际;如果取值過大辛燥,那么學習將會非常不穩(wěn)定甚至失敗。

權(quán)值初始化迈窟。關(guān)注權(quán)值在學習開始時的隨機初始化私植。

如果想偷懶,不妨試試0.02*randn(num_params)车酣。這個范圍的值在許多不同的問題上工作得很好曲稼。當然索绪,更小(或更大)的值也值得一試贫悄。如果它工作得不好(例如是一個非常規(guī)的和/或非常深的神經(jīng)網(wǎng)絡(luò)架構(gòu))瑞驱,那么需要使用init_scale/sqrt(layer_width)*randn來初始化每個權(quán)值矩陣。在這種情況下窄坦,init_scale應該設(shè)置為0.1或者1唤反,或者類似的值。對于深度且循環(huán)的網(wǎng)絡(luò)嫡丙,隨機初始化是極其重要的拴袭。如果沒有處理好,那么它看起來就像沒有學習到任何東西曙博。我們知道拥刻,一旦條件都設(shè)置好了,神經(jīng)網(wǎng)絡(luò)就會學習父泳。一個有趣的故事:多年來般哼,研究人員相信SGD不能訓練來自隨機初始化的深度神經(jīng)網(wǎng)絡(luò)。每次嘗試都以失敗告終惠窄。令人尷尬的是蒸眠,他們沒有成功是因為使用“小的隨機權(quán)值”來進行初始化,雖然小數(shù)值的做法在淺度網(wǎng)絡(luò)上工作得非常好杆融,但在深度網(wǎng)絡(luò)上的表現(xiàn)一點也不好楞卡。當網(wǎng)絡(luò)很深時,許多權(quán)值矩陣之間會進行乘積脾歇,所以不好的結(jié)果會被放大蒋腮。但如果是淺度網(wǎng)絡(luò),SGD可以幫助我們解決該問題藕各。

所以關(guān)注初始化是很有必要的池摧。嘗試多種不同的初始化,努力就會得到回報激况。如果網(wǎng)絡(luò)完全不工作(即沒法實施)作彤,繼續(xù)改進隨機初始化是正確的選擇。

如果正在訓練RNN或者LSTM乌逐,要對梯度(記得梯度已除以批量大薪呋洹)范數(shù)使用一個硬約束。像15或者5這樣的約束在我個人的實驗中工作得很好黔帕。請將梯度除以批處理大小代咸,再檢查一下它的范數(shù)是否超過15(或5)。如果超過了成黄,將它縮小到15(或5)呐芥。這個小竅門在RNN和LSTM的訓練中發(fā)揮著巨大作用逻杖,不這樣做的話,爆炸性的梯度將會導致學習失敗思瘟,最后不得不使用像1e-6這樣微小而無用的學習率荸百。

數(shù)值梯度檢查:如果沒有使用過Theano或者Torch,梯度實現(xiàn)只能親力親為了滨攻。在實現(xiàn)梯度的時候很容易出錯够话,所以使用數(shù)值梯度檢查是至關(guān)重要的。這樣做會讓你對自己的代碼充滿信心光绕。調(diào)整超級參數(shù)(比如學習率和初始化)是非常有價值的女嘲,因此好刀要用在刀刃上。

如果正在使用LSTM同時想在具有大范圍依賴的問題上訓練它們诞帐,那么應該將LSTM遺忘關(guān)口的偏差初始化為較大的值欣尼。默認狀態(tài)下,遺忘關(guān)口是S型的全部輸入停蕉,當權(quán)值很小時愕鼓,遺忘關(guān)口會被設(shè)置為0.5,這只能對部分問題有效慧起。這是對LSTM初始化的一個警示菇晃。

數(shù)據(jù)增加(Data

augmentation):使用算法來增加訓練實例數(shù)量是個有創(chuàng)意的做法。如果是圖像蚓挤,那么應該轉(zhuǎn)換和旋轉(zhuǎn)它們磺送;如果是音頻,應該將清晰的部分和所有類型的雜音進行混合處理灿意。數(shù)據(jù)添加是一門藝術(shù)(除非是在處理圖像)册着,這需要一定的常識。

dropoutdropout提供了一個簡單的方法來提升性能脾歧。記得要調(diào)整退出率,而在測試時不要忘記關(guān)閉dropout演熟,然后對權(quán)值求乘積(也就是1-dropout率)鞭执。當然,要確保將網(wǎng)絡(luò)訓練得更久一點芒粹。不同于普通訓練兄纺,在進入深入訓練之后,驗證錯誤通常會有所增加化漆。dropout網(wǎng)絡(luò)會隨著時間推移而工作得越來越好估脆,所以耐心是關(guān)鍵。

綜合(Ensembling)座云。訓練10個神經(jīng)網(wǎng)絡(luò)疙赠,然后對其預測數(shù)據(jù)進行平均付材。該做法雖然簡單,但能獲得更直接圃阳、更可觀的性能提升厌衔。有人可能會困惑,為什么平均會這么有效捍岳?不妨用一個例子來說明:假如兩個分類器的錯誤率為70%富寿,如果其中一個的正確率保持較高,那么平均后的預測會更接近正確結(jié)果锣夹。這對于可信網(wǎng)絡(luò)的效果會更加明顯页徐,當網(wǎng)絡(luò)可信時結(jié)果是對的,不可信時結(jié)果是錯的银萍。

(下面幾點是上面的簡化版)

1:準備數(shù)據(jù):務(wù)必保證有大量变勇、高質(zhì)量并且?guī)в懈蓛魳撕灥臄?shù)據(jù),沒有如此的數(shù)據(jù)砖顷,學習是不可能的

2:預處理:這個不多說贰锁,就是0均值和1方差化

3:minibatch:建議值128,1最好,但是效率不高滤蝠,但是千萬不要用過大的數(shù)值豌熄,否則很容易過擬合

4:梯度歸一化:其實就是計算出來梯度之后,要除以minibatch的數(shù)量物咳。這個不多解釋

5:下面主要集中說下學習率

5.1:總的來說是用一個一般的學習率開始锣险,然后逐漸的減小它

5.2:一個建議值是0.1,適用于很多NN的問題览闰,一般傾向于小一點芯肤。

5.3:一個對于調(diào)度學習率的建議:如果在驗證集上性能不再增加就讓學習率除以2或者5,然后繼續(xù)压鉴,學習率會一直變得很小崖咨,到最后就可以停止訓練了。

5.4:很多人用的一個設(shè)計學習率的原則就是監(jiān)測一個比率(每次更新梯度的norm除以當前weight的norm)油吭,如果這個比率在10-3附近击蹲,如果小于這個值,學習會很慢婉宰,如果大于這個值歌豺,那么學習很不穩(wěn)定,由此會帶來失敗心包。

6:使用驗證集类咧,可以知道什么時候開始降低學習率,和什么時候停止訓練。

7:關(guān)于對weight初始化的選擇的一些建議:

7.1:如果你很懶痕惋,直接用0.02*randn(num_params)來初始化区宇,當然別的值你也可以去嘗試

7.2:如果上面那個不太好使,那么久依次初始化每一個weight矩陣用init_scale

/ sqrt(layer_width) * randn,init_scale可以被設(shè)置為0.1或者1

7.3:初始化參數(shù)對結(jié)果的影響至關(guān)重要血巍,要引起重視萧锉。

7.4:在深度網(wǎng)絡(luò)中,隨機初始化權(quán)重述寡,使用SGD的話一般處理的都不好柿隙,這是因為初始化的權(quán)重太小了。這種情況下對于淺層網(wǎng)絡(luò)有效鲫凶,但是當足夠深的時候就不行了禀崖,因為weight更新的時候,是靠很多weight相乘的螟炫,越乘越小波附,有點類似梯度消失的意思(這句話是我加的)

8:如果訓練RNN或者LSTM,務(wù)必保證gradient的norm被約束在15或者5(前提還是要先歸一化gradient)昼钻,這一點在RNN和LSTM中很重要掸屡。

9:檢查下梯度,如果是你自己計算的梯度然评。

10:如果使用LSTM來解決長時依賴的問題仅财,記得初始化bias的時候要大一點

12:盡可能想辦法多的擴增訓練數(shù)據(jù),如果使用的是圖像數(shù)據(jù)碗淌,不妨對圖像做一點扭轉(zhuǎn)啊之類的盏求,來擴充數(shù)據(jù)訓練集合。

13:使用dropout

14:評價最終結(jié)果的時候亿眠,多做幾次碎罚,然后平均一下他們的結(jié)果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纳像,一起剝皮案震驚了整個濱河市荆烈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竟趾,老刑警劉巖耙考,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異潭兽,居然都是意外死亡,警方通過查閱死者的電腦和手機斗遏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門山卦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事账蓉∶锻耄” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵铸本,是天一觀的道長肮雨。 經(jīng)常有香客問我,道長箱玷,這世上最難降的妖魔是什么怨规? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮锡足,結(jié)果婚禮上波丰,老公的妹妹穿的比我還像新娘。我一直安慰自己舶得,他們只是感情好掰烟,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沐批,像睡著了一般纫骑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上九孩,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天先馆,我揣著相機與錄音,去河邊找鬼捻撑。 笑死磨隘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的顾患。 我是一名探鬼主播番捂,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼江解!你這毒婦竟也來了设预?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤犁河,失蹤者是張志新(化名)和其女友劉穎鳖枕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桨螺,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡宾符,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灭翔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魏烫。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哄褒,到底是詐尸還是另有隱情稀蟋,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布呐赡,位于F島的核電站退客,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏链嘀。R本人自食惡果不足惜萌狂,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望管闷。 院中可真熱鬧粥脚,春花似錦、人聲如沸包个。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碧囊。三九已至树灶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糯而,已是汗流浹背天通。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熄驼,地道東北人像寒。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像瓜贾,于是被迫代替她去往敵國和親诺祸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容