改善深層神經(jīng)網(wǎng)絡(luò)-第三周-吳恩達(dá) Deep Learning Specialization 學(xué)習(xí)筆記

超參數(shù)調(diào)整

前面已經(jīng)看到在神經(jīng)網(wǎng)絡(luò)調(diào)試過程中需要涉及很多的超參數(shù),那么如何系統(tǒng)性的調(diào)整這些參數(shù)以快速的達(dá)到更好的學(xué)習(xí)效果癌别?Andrew 的建議是按照以下的優(yōu)先級:

  1. α: 永恒重要木人,是訓(xùn)練中重點調(diào)整的對象之一

  2. 隱藏單元的數(shù)量勺爱、 mini-batch 的容量大小税课,如果采用動量梯度撬即,那么 β 也是可以考慮的參數(shù)(一般取 0.9)

  3. 層數(shù)宰缤、學(xué)習(xí)率下降相關(guān)參數(shù)颂翼,同時如果采用 Adam,默認(rèn)選擇 β1 = 0.9 慨灭,β2 = 0.999疚鲤,ε = 10-8 即可

實際的參數(shù)選擇過程可以先在預(yù)計有效的取值范圍內(nèi)采取隨機測試的方式,再集中在表現(xiàn)較好的參數(shù)附近進(jìn)一步細(xì)化選仍堤簟:

  • 對于單元數(shù)量和層數(shù)這類整數(shù)值的選取可采用隨機均勻取值

  • 對于學(xué)習(xí)率這類小數(shù)如果可能取值在 0.0001 - 1 之間則一般推薦按照 10 倍數(shù)量級的方式隨機選取集歇,例如可以令r = -4 * np.random.rand(),再令 α = 10 r

  • 對于 β 如果取值在 0.9 - 0.999 之間則可以令 1 - β = 10r 语淘,再參照 α 的計算方式進(jìn)行選擇

輸出的批量標(biāo)準(zhǔn)化 Batch Normalization

正如前面標(biāo)準(zhǔn)化輸入可以改善學(xué)習(xí)速度一樣诲宇,我們在使用 mini-batch 進(jìn)行訓(xùn)練的時候同樣可以通過標(biāo)準(zhǔn)化每一層的輸出來進(jìn)一步提高學(xué)習(xí)效率际歼。這里的輸出可以指應(yīng)用了激活函數(shù)后的輸出值 a[ l ],也可以指未應(yīng)用激活函數(shù)的 z[ l ]姑蓝,在本課中 Andrew 使用的是對于 z[ l ] 的標(biāo)準(zhǔn)化鹅心,對于任意一層:

  1. 先對每一個 z( i ) 做標(biāo)準(zhǔn)化 znorm( i ) = (z( i ) - μ) / sqrt(σ2 + ε)ε 是為了防止除 0 而做的一個安全設(shè)置纺荧,同時這個參數(shù)還可以起到放大樣本方差的作用旭愧。公式中的 μσ 是訓(xùn)練時的一個 mini-batch 的輸出在激活前的 μσ

  2. 因為這一處理的結(jié)果會使得 z( i ) 呈(0, 1)分布,如果其取值嚴(yán)格遵循隨機分布宙暇,在使用 ReLU 作為激活函數(shù)的時候會導(dǎo)致一半左右的 ReLU 失活输枯,因此實際應(yīng)用中需要代替 z( i ) 的是 z( i ) = γznorm( i ) + β,這里的 γ, β 是需要通過學(xué)習(xí)獲得的參數(shù)占贫,其作用同 wb 類似都是實現(xiàn)了對輸入的縮放

在應(yīng)用中可以采用梯度下降法桃熄,通過 γ = γ - αγ, β = β - αβ 的方式更新這兩個參數(shù),并且 Batch Normalization 可以結(jié)合動量梯度下降型奥、RMSprop 瞳收、Adam 等優(yōu)化方法來加速學(xué)習(xí)。

另外一點需要注意的是厢汹,對 z( i ) 的標(biāo)準(zhǔn)化過程實際上會消除掉 b 這個參數(shù)的影響螟深,因此在采用 Batch Normalization 的時候,可以省去 b 這個參數(shù)烫葬。

經(jīng)過 Batch Normalization 的處理血崭,使得每一個隱藏層的輸出的分布情況得到了控制,后續(xù)層的學(xué)習(xí)就建立在更加堅實的基礎(chǔ)上厘灼,因此使得學(xué)習(xí)得到的參數(shù)對于輸入的波動耐受程度更高夹纫,使得整個網(wǎng)絡(luò)更加穩(wěn)健。

測試時的 Batch Normalization

由于在測試的時候樣本的輸入很可能是一個樣本一個樣本的方式進(jìn)行的设凹,而對于單一樣本來說算法中的標(biāo)準(zhǔn)化處理部分求均值舰讹,方差,再做標(biāo)準(zhǔn)化并沒有意義闪朱。因此在實際測試中是將前面采用 mini-batch 進(jìn)行訓(xùn)練的到的每一個小批量的 μσ 做指數(shù)加權(quán)平均得到總體的 μσ月匣,再用這兩個參數(shù)對于測試樣本進(jìn)行標(biāo)準(zhǔn)化計算 znorm( i ) = (z( i ) - μ) / sqrt(σ2 + ε)z( i ) = γznorm( i ) + β

關(guān)于 Batch Normalization奋姿,更詳細(xì)的解釋可以參考 R2RT 的博客 Udacity 的這個練習(xí)锄开。

Softmax 回歸

前面學(xué)習(xí)的 Logistic 回歸只能處理二元分類問題,實際應(yīng)用中很多時候輸出值可以有多個不同的分類称诗,這個時候就要采用 Softmax 回歸萍悴。

Softmax 回歸最顯著的特征就是輸出層不再是一個單元,而是一個列向量,其維數(shù)為對應(yīng)的分類種類癣诱,且每一個數(shù)值代表其取相應(yīng)分類的概率计维,其計算過程如下:

  1. 在輸出層首先計算 z[ L ] = w[ L ]a[ L-1 ] + b[ L ],這里依據(jù)之前的約定 L 大寫代表輸出層

  2. 之后在該層應(yīng)用 softmax 激活函數(shù):先對 z[ L ] 做基于元素的冪運算撕予,即 t = ez[L]鲫惶,再將這個向量求和,然后取得每一個元素與求和的比值实抡。

Softmax 函數(shù)之所以如此命名是對應(yīng)的有一個叫 Hardmax 的函數(shù)欠母,會將上述的輸出結(jié)果中最大值轉(zhuǎn)化為 1,其他值均轉(zhuǎn)化為 0吆寨,而 Softmax 則會保留各個計算值赏淌。

Softmax 回歸可以視作 Logistic 回歸的一個泛化,當(dāng)最終的分類為二元分類的時候鸟废,可以通過數(shù)學(xué)證明其等同于 Logistic 回歸。由于最終的輸出值不再是單一的一個值姑荷,因此 softmax 回歸有單獨的損失函數(shù)定義:

L(?, y) = - ∑yj log?j 盒延,其中 j = 1, ... ,CC 為最終的分類數(shù)

對應(yīng)的成本函數(shù)為:

J = ∑L(?(i), y(i)) / m鼠冕,其中 i = 1, ... ,m添寺,m 為樣本的數(shù)量

在 python 中 softmax 函數(shù)的實現(xiàn)方式如下:

import numpy as np

def softmax(z):
    exp_z = np.exp(z)
    sum_of_z = np.sum(exp_z)
    return exp_z / sum_of_z

神經(jīng)網(wǎng)絡(luò)的應(yīng)用框架

神經(jīng)網(wǎng)絡(luò)的應(yīng)用框架使得大家可以無需每做一個項目都從頭開始,節(jié)省了大量的工作時間懈费。同時需要注意到不同的框架都有其擅長處理的領(lǐng)域计露,所以在選擇框架的時候 Andrew 建議大家注意以下幾點:

  • 是否易于開發(fā)和部署

  • 運行速度是否夠快

  • 是否真正的開源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市憎乙,隨后出現(xiàn)的幾起案子票罐,更是在濱河造成了極大的恐慌,老刑警劉巖泞边,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该押,死亡現(xiàn)場離奇詭異,居然都是意外死亡阵谚,警方通過查閱死者的電腦和手機蚕礼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梢什,“玉大人奠蹬,你說我怎么就攤上這事∥宋纾” “怎么了囤躁?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我割以,道長金度,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任严沥,我火速辦了婚禮猜极,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘消玄。我一直安慰自己跟伏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布翩瓜。 她就那樣靜靜地躺著受扳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兔跌。 梳的紋絲不亂的頭發(fā)上勘高,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音坟桅,去河邊找鬼仅乓。 笑死,一個胖子當(dāng)著我的面吹牛宾抓,可吹牛的內(nèi)容都是我干的豫喧。 我是一名探鬼主播紧显,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸟妙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了花椭?” 一聲冷哼從身側(cè)響起房午,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤袋倔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宾娜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嚣艇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年食零,在試婚紗的時候發(fā)現(xiàn)自己被綠了寂屏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡吱抚,死狀恐怖欧引,靈堂內(nèi)的尸體忽然破棺而出恳谎,到底是詐尸還是另有隱情因痛,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站廓译,受9級特大地震影響债查,放射性物質(zhì)發(fā)生泄漏盹廷。R本人自食惡果不足惜征绸,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一管怠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祝拯,春花似錦暮芭、人聲如沸辕宏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至聚假,卻和暖如春块蚌,著一層夾襖步出監(jiān)牢的瞬間膘格,已是汗流浹背峭范。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工瘪贱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纱控,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓菜秦,卻偏偏與公主長得像甜害,于是被迫代替她去往敵國和親球昨。 傳聞我的和親對象是個殘疾皇子尔店,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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