深度學(xué)習筆記(二):訓(xùn)練神經(jīng)網(wǎng)絡(luò)

image

Part 1

一.Activation Function激活函數(shù)

image

當激活函數(shù)是線性的時候,兩層的神經(jīng)網(wǎng)絡(luò)就可以逼近所有的函數(shù)了茸炒。激活函數(shù)的作用就是給network加入非線性因素愕乎,因為線性模型盡管組合還是一個線性模型阵苇,對于數(shù)據(jù)的表達和分類效果不強。詳情

常用的激活函數(shù):

image

1.sigmoid函數(shù)存在三個問題:
1)當數(shù)據(jù)正太大和負太小時會陷入飽和感论,也就是梯度為0绅项,這時候back propagation的時候數(shù)據(jù)為0,kill了這個gradients
2)sigmoid輸出不是以0為中心的比肄。這會導(dǎo)致數(shù)據(jù)進入神經(jīng)元的時候是正的快耿,那么w計算出的梯度也會始終都是正的。而我們通常使用這種zigzag path去逼近最佳向量芳绩。

image

3)exp計算比較非時間

2.tanh函數(shù):比sigmoid好的地方是他是零均值的掀亥。

3.LeRU函數(shù)是今年受歡迎的一種函數(shù),存在幾個優(yōu)點:
1)在正區(qū)域不會飽和
2)計算更方便
3)收斂起來比sigmoid/tanh更快

但是缺點是在負區(qū)域還是會飽和妥色,并且很容易就die了搪花。舉個例子,一個非常大的梯度流過一個 ReLU 神經(jīng)元嘹害,更新過參數(shù)之后撮竿,這個神經(jīng)元再也不會對任何數(shù)據(jù)有激活現(xiàn)象了。實際操作中笔呀,learning rate較大時神經(jīng)元容易die幢踏,較小時發(fā)生的較少。

image

4.Leaky-ReLU许师,P-ReLU,R-ReLU
這些都是ReLU的變體房蝉,為了解決dying ReLU的問題。最終效果眾說紛紜枯跑。

5.Maxout:ReLU和Leaky-ReLU的泛化形式惨驶,不會飽和也不會die。缺點是參數(shù)被double了敛助。

如何選擇激活函數(shù)粗卜?

  • 如果使用ReLU,那么一定要小心設(shè)置 learning rate纳击,而且要注意不要讓你的網(wǎng)絡(luò)出現(xiàn)很多 “dead” 神經(jīng)元续扔,如果這個問題不好解決,那么可以試試 Leaky ReLU焕数、PReLU 或者 Maxout.
  • 最好不要用 sigmoid纱昧,你可以試試 tanh,不過可以預(yù)期它的效果會比不上 ReLU 和 Maxout.
  • 很少會把各種激活函數(shù)串起來在一個網(wǎng)絡(luò)中使用的堡赔。

二.數(shù)據(jù)預(yù)處理

常見的數(shù)據(jù)預(yù)處理方式有zero-centered(減去平均值)和normalized(歸一化)识脆,也有進行PCA和whitening的。但是對于image來說,一般采取兩種:

  • 減掉mean image
  • 減掉每個channel的mean

數(shù)據(jù)預(yù)處理可以很好的減低分類損失對于weight matrix的敏感度灼捂。比如下面离例,左邊直線稍微擺動影響要比右邊大很多。在深度學(xué)習中悉稠,也要保證第一層均值不為0宫蛆,方差不為0


image

三.權(quán)值初始化

常見的權(quán)值初始化方式:隨機小數(shù)。隨機小數(shù)又有好幾種設(shè)置:

  • 全為0:代價函數(shù)將不會減少的猛,而且訓(xùn)練效果和預(yù)測效果都不好耀盗。這是因為權(quán)值設(shè)置全為0的網(wǎng)絡(luò)是對稱的,也就是說任一層的每個神經(jīng)單元將學(xué)習相同的權(quán)值卦尊,最終學(xué)習的結(jié)果也是線性的叛拷,因此效果甚至還沒有單個線性回歸分類的效果有效。
  • 初始化為大值:代價函數(shù)非常大猫牡,幾乎所有的神經(jīng)都會飽和為1或-1胡诗,最終梯度值為0

通常我們會使用Xavier initialization。

W = np.random.randn(fan_in, fan_out) / np.sqrt(fan_in)

四.Batch Normalization

歸一化操作通常在FC或conv層之后進行淌友,在nonlinearity之前進行。

image

進行批量歸一化的步驟是:

  • 對數(shù)據(jù)的每一維都計算平均值E和方差R骇陈。這樣當我們需要的時候也可以復(fù)原原來的數(shù)據(jù)
  • 使用下面的公式進行歸一化:
    image

五.調(diào)控學(xué)習過程

學(xué)習過程:

  • 預(yù)處理數(shù)據(jù)
  • 選擇框架震庭,多少層,多少個neuron
  • 通過增加正則項你雌,看loss是否提高的方式來判斷l(xiāng)oss計算是否合理器联。
  • 首先選擇少量數(shù)據(jù)訓(xùn)練,保證能過擬合這些數(shù)據(jù)婿崭,然后再加全量數(shù)據(jù)
  • 學(xué)習率選擇:太小則loss更新很慢拨拓,太大loss會爆炸。通常的學(xué)習率在[1e-3,1e-5]之間氓栈。

六.Hyperparameter Optimization

當我們在進行參數(shù)調(diào)優(yōu)時渣磷,Random Layout有時會比Grid Layout更有效,因為這樣能增加達到較優(yōu)值的可能性授瘦。


image

七.Fancier optimization

1.帶沖量的SGD
前面我們使用了SGD來求得目標函數(shù)的最小值醋界,但是SGD存在著一些問題:

  • 當loss在一個方向上變化快,一個方向上變化慢的時候提完,梯度會進入到曲折中形纺。
    image
  • 容易陷入局部最優(yōu)解和鞍點

為了解決這個問題,提出了一種更有效的方法徒欣,就是在SGD的基礎(chǔ)上加上一個沖量逐样。

image

這里的rho是摩擦系數(shù),通常取0.95或0.9。通過這種操作脂新,在最小點和鞍點的時候秽澳,就算梯度為0,沖量也不為0戏羽,可以沖過最小點和鞍點担神。

還有更好的是Nesterov Momentum:

image

2.RMSProp
RMSProp是AdaGrad的變體,解決了AdaGrad對于局部最小值學(xué)習率逐漸下降直到為0的問題始花。

image

3.Adam算法:Adam是上面幾種算法的集合妄讯。


image

4.learning rate decay
先不用decay,然后看看學(xué)習率酷宵,再加上學(xué)習率decay亥贸,觀看效果

八.Regularition

正則是提高算法性能的方法。常見的有L2浇垦,L1和Elastic net.

image

但是這個正則法在大型神經(jīng)網(wǎng)絡(luò)中不能實現(xiàn)炕置。大型網(wǎng)絡(luò)中通常使用的是Dropout。

Dropout是在一個網(wǎng)絡(luò)層(通常選擇FC層)中隨機的選擇部分節(jié)點男韧,將他們的激活函數(shù)設(shè)置為0朴摊。

image

這樣的好處有兩點:

  • 通過將部分神經(jīng)元置零,可以避免特征之間的互相適應(yīng)此虑,一定程度上減少了過擬合甚纲。
  • 每一次Dropout都是一次隨機選擇,這樣就相當于一個超級巨大的網(wǎng)絡(luò)庫進行訓(xùn)練朦前。

但是Dropout在測試的時候就不是特別的好介杆,因為需要減少這種隨機性,否則會對測試結(jié)果造成不必要的改變韭寸。這樣就需要一些處理春哨。

先對簡單的加以判斷,對于一個簡單的x+y--> a的網(wǎng)絡(luò)恩伺,測試時我們就只想得到w1x+w2y的均值赴背,但是在訓(xùn)練時由于Dropout選擇不同,均值就只有1/2(w1x+w2y)莫其。所以我們就想到能不能再測試的時候乘以癞尚,或者訓(xùn)練的時候除以dropout概率。當然更傾向于訓(xùn)練的時候除以概率乱陡,因為訓(xùn)練可以在高配置機器上長時間運行浇揩。

九.Transfer Learning遷移學(xué)習

遷移學(xué)習其實就是當我們遇到的問題和數(shù)據(jù)跟原有的一些問題和數(shù)據(jù)有聯(lián)系的時候應(yīng)該怎么利用好原來的數(shù)據(jù)。比如憨颠,當我們想要處理一些自己的動植物的圖片胳徽,只要使用好ImageNet預(yù)訓(xùn)練的模型积锅,在最上面加個線性分類器就行了。


image

cs231n assignment實現(xiàn)在這:https://github.com/oubindo/cs231n-cnn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末养盗,一起剝皮案震驚了整個濱河市缚陷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌往核,老刑警劉巖箫爷,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聂儒,居然都是意外死亡虎锚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門衩婚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窜护,“玉大人,你說我怎么就攤上這事非春≈悖” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵奇昙,是天一觀的道長护侮。 經(jīng)常有香客問我,道長敬矩,這世上最難降的妖魔是什么概行? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮弧岳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘业踏。我一直安慰自己禽炬,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布勤家。 她就那樣靜靜地躺著腹尖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伐脖。 梳的紋絲不亂的頭發(fā)上热幔,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音讼庇,去河邊找鬼绎巨。 笑死,一個胖子當著我的面吹牛蠕啄,可吹牛的內(nèi)容都是我干的场勤。 我是一名探鬼主播戈锻,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼和媳!你這毒婦竟也來了格遭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤留瞳,失蹤者是張志新(化名)和其女友劉穎拒迅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體她倘,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡璧微,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了帝牡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片往毡。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖靶溜,靈堂內(nèi)的尸體忽然破棺而出开瞭,到底是詐尸還是另有隱情,我是刑警寧澤罩息,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布嗤详,位于F島的核電站,受9級特大地震影響瓷炮,放射性物質(zhì)發(fā)生泄漏葱色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一娘香、第九天 我趴在偏房一處隱蔽的房頂上張望苍狰。 院中可真熱鬧,春花似錦烘绽、人聲如沸淋昭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翔忽。三九已至,卻和暖如春盏檐,著一層夾襖步出監(jiān)牢的瞬間歇式,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工胡野, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留材失,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓给涕,卻偏偏與公主長得像豺憔,于是被迫代替她去往敵國和親额获。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

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