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

后記

優(yōu)化算法這一部分如果沒有實(shí)際操作的話非常的抽象,建議結(jié)合代碼進(jìn)行理解枝恋。作為一個(gè)合格的寫作者练链,我首先推薦大家看比我寫的更好的材料,比如 這個(gè) 這個(gè) 瘩扼。

樣本的小批量 Mini-Batch 計(jì)算

盡管通過向量化輸入可以使得算法計(jì)算的速度大幅提升谆甜,但如果輸入樣本量非常大的情況下依然會(huì)拖慢算法迭代的速度。所以聰明的計(jì)算機(jī)科學(xué)家們又想到可以將樣本集分成小的批量 mini-batch集绰,例如假設(shè)我們有 5,000,000 個(gè)樣本规辱,那么可以將每 1,000 個(gè)樣本劃分為一組,對(duì)于整個(gè)樣本集采用分組計(jì)算的方式來加快計(jì)算速度栽燕。為了描述方便罕袋,mini-batch 計(jì)算中每一組數(shù)據(jù)集用 X{ t } 表示,t 表示整個(gè)樣本集中的第 t 個(gè)小批次碍岔。假設(shè)測(cè)試集中有 m 個(gè)樣本:

  • 如果每一個(gè)批次的樣本量定為 m , 則這就是我們之前討論的遍歷整個(gè)樣本集的計(jì)算方式浴讯。依然以前面的 5,000,000 個(gè)樣本的數(shù)據(jù)集為例,算法計(jì)算時(shí)會(huì)一次性完成 5,000,000 個(gè)樣本的前向傳播計(jì)算蔼啦,再反向傳播更新一次權(quán)重榆纽,再開始下一個(gè)周期

  • 如果每一個(gè)批次的樣本量定為 1 , 則這種計(jì)算方法稱為隨機(jī)梯度下降 Stochastic Gradient Descent,實(shí)際計(jì)算中會(huì)采用第一個(gè)樣本進(jìn)行前向傳播計(jì)算捏肢,然后反向更新權(quán)重奈籽;再用更新過的權(quán)重去結(jié)合第二個(gè)樣本進(jìn)行前向傳播計(jì)算,再反向更新權(quán)重...此時(shí)如果繪制成本函數(shù)和迭代次數(shù)的關(guān)系圖像就會(huì)發(fā)現(xiàn)成本函數(shù)不總是下降的鸵赫,會(huì)隨著輸入的波動(dòng)產(chǎn)生一定的隨機(jī)性衣屏,這就是前面這個(gè)名字的由來。在實(shí)際應(yīng)用中辩棒,隨機(jī)梯度下降會(huì)使得向量化失去意義狼忱,并且成本函數(shù)最終無法完全收斂,最理想的情況也是在一個(gè)范圍內(nèi)震蕩一睁,因此一般會(huì)選擇一個(gè)居間的數(shù)值作為批量中的樣本量

  • mini-batch 的具體計(jì)算過程類似于隨機(jī)梯度下降藕赞,只不過每一次計(jì)算一個(gè)批次的樣本,然后利用更新的權(quán)重來結(jié)合下一個(gè)批次進(jìn)行下一循環(huán)的計(jì)算卖局。這樣既可以充分利用到向量化帶來的好處斧蜕,又可以無需等待全部的樣本集計(jì)算結(jié)束才能看到算法的進(jìn)展情況

mini-batch 每一個(gè)批次的容量選擇:

  • 一般當(dāng) m ≤ 2000 時(shí),應(yīng)該考慮一次性批量處理掉全部樣本

  • 如果樣本量較大砚偶,則一般 mini-batch 批次的容量在 64批销,128洒闸,256,512 之間選擇均芽,之所以采用 2 的乘方數(shù)丘逸,是因?yàn)榭紤]到了內(nèi)存的物理設(shè)置和讀寫特性,因此實(shí)際應(yīng)用中需要結(jié)合 GPU 和 CPU 的內(nèi)存設(shè)置來決定選擇哪一個(gè)數(shù)值

指數(shù)加權(quán)平均及其偏差校正

為了引入后續(xù)的動(dòng)量梯度下降法掀宋,這里需要先講一下指數(shù)加權(quán)平均 Exponentially weighted moving average深纲,這是對(duì)數(shù)據(jù)的一個(gè)平滑處理,其數(shù)學(xué)表達(dá)式為:

  • vt = βvt-1 + (1 - β)θt 劲妙,其中 vt 為平均后的當(dāng)前時(shí)間值湃鹊,vt-1 為平均后的歷史時(shí)間值,而 θt 為未經(jīng)處理過的當(dāng)前值

之所以這樣稱呼是因?yàn)椴捎眠@個(gè)公式對(duì)數(shù)據(jù)進(jìn)行處理的時(shí)候當(dāng)前數(shù)據(jù) vt 會(huì)被展開成歷史數(shù)據(jù)和 β 的指數(shù)的加權(quán)平均值镣奋。 課堂中 Andrew 舉了一個(gè)不同時(shí)間的氣溫?cái)?shù)據(jù)平滑的例子币呵,對(duì)應(yīng)不同的 β 值,平滑后的曲線波動(dòng)狀況不同侨颈,β 值越高余赢,曲線越平滑。

在應(yīng)用中可以將 vt 近似的看作對(duì)于過去 1 / (1 - β) 時(shí)間內(nèi)的一個(gè)平均值哈垢,其對(duì)應(yīng)的數(shù)學(xué)原理是如果令 ε = 1 - β 則 (1 - ε) 1 / ε 近似等于 0.35 也近似等于 1 / e 這個(gè)神奇的數(shù)字妻柒。(這里我還需要進(jìn)一步理解)

  • 當(dāng) β = 0.9 時(shí),可以理解為對(duì)于過去10天的平均

  • 當(dāng) β = 0.98 時(shí)耘分,可以理解為對(duì)于過去50天的平均

Exponentially weighted averages

在實(shí)際代碼實(shí)現(xiàn)中举塔,可以先令v = 0,之后隨著時(shí)間的推移只需要一行代碼就可以不斷的更新v 的值: v += beta * v + (1 - beta) * theta陶贼。與此同時(shí),可以看到如僅簡(jiǎn)單的令 v = 0待秃,則在初期的一段時(shí)間數(shù)據(jù)會(huì)被較大程度的拉低拜秧,因此可以在前述計(jì)算的基礎(chǔ)上進(jìn)一步令 v = v / (1 - βt) 來校正這個(gè)偏差。

動(dòng)量 Momentum 梯度下降

動(dòng)量梯度下降算法的基本思想通過指數(shù)加權(quán)平均來處理得到的梯度值章郁,再用這個(gè)梯度值來更新參數(shù)枉氮。直觀的理解動(dòng)量梯度下降就是我們不僅要使用當(dāng)前次計(jì)算得到的梯度值,也要充分利用之前得到的梯度值對(duì)這個(gè)數(shù)值做一個(gè)校正暖庄,使得參數(shù)的更新過程更加具有參照性聊替。相當(dāng)于利用歷史數(shù)據(jù)對(duì)于當(dāng)前的梯度之提供一個(gè)動(dòng)量,是的其可以越過局部最小值培廓。

具體來說就是在第 t 次迭代中:

  1. 通過 vdw = βvdw + (1 - β)dw 以及 vdb = βvdb + (1 - β)db 對(duì) dw, db 做指數(shù)加權(quán)平均

  2. 參數(shù)的更新過程為: w = w - αvdwb = b - αvdb

這個(gè)方法實(shí)際上又在算法中引入了一個(gè)超參數(shù)惹悄,實(shí)際應(yīng)用中一般令 β = 0.9 ,即加權(quán)平均前 10 次迭代得到的梯度值即可肩钠,并且一般無需再做偏差校正泣港。

RMSprop 算法

全稱是 Root Mean Square Propagation暂殖,算法實(shí)現(xiàn)過程是在第 t 次迭代中:

  1. 先計(jì)算 dw, db,再通過 sdw = β2sdw + (1 - β2)dw2sdb = β2sdb + (1 - β2)db2 來指數(shù)加權(quán)平均 dw, db 的平方当纱,一般令 β2 = 0.999

  2. 參數(shù)的更新過程為:w = w - αdw / sqrt(sdw + ε)b = b - αdb / sqrt(sdb + ε) 呛每,分母中的 ε 是為了防止出現(xiàn)除 0 的情況,一般令 ε = 10-8 即可坡氯,并且這個(gè)計(jì)算過程也解釋了 Root mean square 是何意

在實(shí)際計(jì)算中晨横,在數(shù)量上 sdw 會(huì)相對(duì)較小,而 sdb 則會(huì)相對(duì)較大箫柳,這使得成本函數(shù)在迭代過程中減少震蕩的同時(shí)又不降低收斂的速度手形。

Adam 優(yōu)化算法

Adam 這個(gè)詞是 Adaptive momentum estimation 的縮寫,其結(jié)合了動(dòng)量梯度下降和 RMSprop 兩種算法滞时,在具體實(shí)現(xiàn)中首先初始化 vdw = 0, sdw = 0, vdb = 0, sdb = 0叁幢,然后在第 t 次迭代中:

  1. 先用當(dāng)前 mini-batch 的樣本計(jì)算 dw, db

  2. 根據(jù)動(dòng)量梯度計(jì)算 vdw = β1vdw + (1 - β1)dwvdb = β1vdb + (1 - β1)db

  3. 再根據(jù) RMSprop 計(jì)算 sdw = β2sdw + (1 - β2)dw2sdb = β2sdb + (1 - β2)db2

  4. 通常在 Adam 優(yōu)化算法中要對(duì)上述兩組數(shù)值做偏差校正,即:

    • vdwcorrected = vdw / (1 - β1t), vdbcorrected = vdb / (1 - β1t)
    • sdwcorrected = sdw / (1 - β2t), sdbcorrected = sdb / (1 - β2t)
  5. 參數(shù)更新過程為: w = w - αvdwcorrected / sqrt(sdwcorrected + ε)b = b - αvdbcorrected / sqrt(sdbcorrected + ε)

Adam 優(yōu)化算法中涉及多個(gè)超參數(shù)坪稽,其各自的取值情況如下:

  • α: 永恒重要曼玩,是訓(xùn)練中重點(diǎn)調(diào)整的對(duì)象之一

  • 一般令 β1 = 0.9β2 = 0.999窒百,ε = 10-8

一個(gè)非常好的介紹 Adam 優(yōu)化算法的文章在 這里 黍判。

學(xué)習(xí)速率衰減 Learning rate decay

訓(xùn)練的初期較大的 α 有利于快速迭代,但隨著迭代次數(shù)的增加篙梢,逐漸減小 α 有利于加速收斂顷帖,因此這種有意為之的隨時(shí)間推移逐漸減小學(xué)習(xí)率被稱為 Learning rate decay。具體實(shí)施中一般令 α = α0 / ( 1 + decay rate * epoch number)渤滞,其中:

  • decay rate, α0 都是超參數(shù)

  • 一個(gè) epoch 代表算法完全遍歷一次全部數(shù)據(jù)集贬墩,epoch number 代表第幾次遍歷數(shù)據(jù)集,這樣做的意義就是我們一般完全遍歷過一次全部數(shù)據(jù)集之后再更新學(xué)習(xí)速率

學(xué)習(xí)速率衰減還有其他幾個(gè)可行的方法或計(jì)算公式妄呕,這里就不一一列舉了陶舞,可以參考視頻中的講解。

參考閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绪励,一起剝皮案震驚了整個(gè)濱河市肿孵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疏魏,老刑警劉巖停做,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異大莫,居然都是意外死亡蛉腌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眉抬,“玉大人贯吓,你說我怎么就攤上這事∈癖洌” “怎么了悄谐?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)库北。 經(jīng)常有香客問我爬舰,道長(zhǎng),這世上最難降的妖魔是什么寒瓦? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任情屹,我火速辦了婚禮,結(jié)果婚禮上杂腰,老公的妹妹穿的比我還像新娘垃你。我一直安慰自己,他們只是感情好喂很,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布惜颇。 她就那樣靜靜地躺著,像睡著了一般少辣。 火紅的嫁衣襯著肌膚如雪凌摄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天漓帅,我揣著相機(jī)與錄音锨亏,去河邊找鬼。 笑死忙干,一個(gè)胖子當(dāng)著我的面吹牛器予,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捐迫,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼乾翔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了弓乙?” 一聲冷哼從身側(cè)響起末融,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤钧惧,失蹤者是張志新(化名)和其女友劉穎暇韧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浓瞪,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡懈玻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乾颁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涂乌。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艺栈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出湾盒,到底是詐尸還是另有隱情湿右,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布罚勾,位于F島的核電站毅人,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏尖殃。R本人自食惡果不足惜丈莺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望送丰。 院中可真熱鬧缔俄,春花似錦、人聲如沸器躏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邀桑。三九已至瞎疼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壁畸,已是汗流浹背贼急。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捏萍,地道東北人太抓。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像令杈,于是被迫代替她去往敵國(guó)和親走敌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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