PART 2 - W1 改善DNN:超參數(shù)調(diào)試今野、正則化以及優(yōu)化

2019.10.14

第一章? 深度學(xué)習(xí)的實(shí)用層面

1.1 訓(xùn)練/開發(fā)/測(cè)試

建模時(shí)所用的超參的設(shè)定取決于諸多因素,如:(1)具體的場(chǎng)景饺鹃,如圖像識(shí)別莫秆、自然語言處理间雀;(2)數(shù)據(jù)規(guī)模,包括樣本的規(guī)模和特征的規(guī)模镊屎;等惹挟。因此,在模型開發(fā)過程中缝驳,通常較難一開始就會(huì)設(shè)定出一組合適的訓(xùn)練參數(shù)连锯,而是通過不斷地調(diào)試,找到最合適的參數(shù)用狱。

訓(xùn)練集/驗(yàn)證集/測(cè)試集 的劃分:要保證驗(yàn)證集和測(cè)試集是同一分布运怖。

1.2 偏差/方差

老生常談的幾點(diǎn)

1. 欠擬合導(dǎo)致偏差,過擬合導(dǎo)致方差

2. 觀察訓(xùn)練集和測(cè)試集的誤差夏伊,可以確定模型處于欠擬合還是過擬合的狀態(tài)摇展,從而確定當(dāng)前的誤差主要是方差還是偏差導(dǎo)致的。

1.3 機(jī)器學(xué)習(xí)基礎(chǔ)

1. 調(diào)參首先要確認(rèn)當(dāng)前模型是偏差狀態(tài)還是方差狀態(tài)溺忧;

2. 更復(fù)雜的網(wǎng)絡(luò)降低偏差吗购,更大的數(shù)據(jù)降低方差;

3. 只要正則化合適砸狞,更大的網(wǎng)絡(luò)基本沒有壞處,除了需耗費(fèi)更多的訓(xùn)練時(shí)間镀梭。

1.4 正則化

1.4.1 正則化項(xiàng)的概念

1. 對(duì)于神經(jīng)網(wǎng)絡(luò)刀森,有最常用的兩種正則化方法:

L1正則化:在損失函數(shù)里加入所有w的絕對(duì)值和b的絕對(duì)值之和(的平均值),其中b項(xiàng)有時(shí)候省略

L2正則化:在損失函數(shù)里加入所有w的平方和b的平方之和(的平均值)

2. 正則化項(xiàng)前面的系數(shù):\lambda/2m表示了在整個(gè)損失函數(shù)中正則化項(xiàng)的權(quán)重

1.4.2 正則化項(xiàng)與梯度下降

L2正則:w的梯度會(huì)隨著w本身不斷減斜ㄕ恕(接近與0)而不斷減小研底,因此其向0的逼近是逐漸減速的,會(huì)導(dǎo)致w成為比較小但不為0的數(shù)透罢。結(jié)論:L2正則會(huì)導(dǎo)致最終訓(xùn)練出的參數(shù)都接近0榜晦,但大部分并不為0

L1正則:w的梯度下降方向在大于0時(shí)為-1,小于0時(shí)為1羽圃,因此會(huì)迅速收斂到0乾胶。結(jié)論:L1正則會(huì)導(dǎo)致大部分w都為0,少部分不為0

1.5 為什么正則化可以減少過擬合(減小方差)

1. 正則可以弱化(L2)或去除(L1)部分神經(jīng)元之間的連接朽寞,從而使整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)變得簡(jiǎn)單识窿。

2. 正則化使得w變小,進(jìn)而使得加權(quán)求和的值變小脑融,進(jìn)而使得喂入激活函數(shù)的值在零附近的“近似線性區(qū)域”喻频,從而簡(jiǎn)化了整個(gè)網(wǎng)絡(luò)的映射關(guān)系。

1.6 dropout(隨機(jī)失活)正則化

dropout操作:在訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)時(shí)(在喂入一組數(shù)據(jù)前)肘迎,對(duì)各個(gè)隱藏層的神經(jīng)元隨機(jī)去除一部分甥温。比如假設(shè)隱藏層本來全是4個(gè)神經(jīng)元锻煌,設(shè)置去除比例為0.25,則每層變?yōu)?個(gè)神經(jīng)元姻蚓。然后在被簡(jiǎn)化的網(wǎng)絡(luò)上進(jìn)行FP和BP宋梧,并調(diào)整對(duì)應(yīng)的w和b。

作用:dropout把神經(jīng)網(wǎng)絡(luò)暫時(shí)進(jìn)行了簡(jiǎn)化史简,比如dropout之前乃秀,層與層之間是4*4的參數(shù)矩陣,dropout后變成了3*3圆兵,有利于防止過擬合跺讯。

注:=只是在訓(xùn)練時(shí)進(jìn)行dropout,預(yù)測(cè)時(shí)使用完整的網(wǎng)絡(luò)殉农。

1.7 理解dropout(直觀)

1. dropout使得網(wǎng)絡(luò)不會(huì)只重視少量輸入(最初的輸入特征或上一層的輸出)刀脏,而是相對(duì)平等地對(duì)待所有特征。試想:假設(shè)把某個(gè)輸入的w調(diào)得過大超凳,結(jié)果下一輪時(shí)這個(gè)節(jié)點(diǎn)被drop掉了愈污,使得網(wǎng)絡(luò)的預(yù)測(cè)效果大打折扣。因此轮傍,網(wǎng)絡(luò)會(huì)傾向于把每個(gè)w都調(diào)得不那么大(每個(gè)特征都發(fā)揮作用暂雹,但都不大),而不是少量特征的w很大创夜,而其余的w很泻脊颉(只有少數(shù)特征發(fā)揮決定性作用)。從這個(gè)角度看驰吓,dropout的作用很像L2正則化涧尿。

2. 每層可以設(shè)置不同的keep_prob參數(shù),一般經(jīng)驗(yàn)是:輸入層keep_prob保持為1檬贰,若層神經(jīng)元數(shù)較多則把keep_prob參數(shù)設(shè)置的較小一些姑廉,反之則較大一些。

3. dropout本質(zhì)是正則化翁涤,因此其作用是為了防止過擬合桥言。

4. dropout正則化目前被廣泛應(yīng)用到計(jì)算機(jī)視覺領(lǐng)域,其它領(lǐng)域則鮮有使用迷雪。

1.8 其它正則化方法

1.8.1 擴(kuò)充數(shù)據(jù)集

以圖像識(shí)別為例限书,把原始樣本的圖片進(jìn)行左右反轉(zhuǎn)、傾斜章咧、裁邊等操作倦西,即可構(gòu)造大量樣本。更大的數(shù)據(jù)集可以降低過擬合(正則化方法就是指降低過擬合的方法)赁严。但這類方法在其它領(lǐng)域不怎么好用扰柠。

1.8.2 early stopping

1. 概念:整個(gè)迭代訓(xùn)練過程中粉铐,訓(xùn)練集的誤差持續(xù)下降,測(cè)試集或驗(yàn)證集的誤差則先下降后增大卤档,可以認(rèn)為拐點(diǎn)就是開始過擬合的點(diǎn)蝙泼。early stopping則是使用某種方式持續(xù)關(guān)注這種變化的趨勢(shì),并適時(shí)停止訓(xùn)練劝枣。

2. 優(yōu)缺點(diǎn)(與L2正則化對(duì)比):

優(yōu)點(diǎn):early stopping不涉及具體的罰項(xiàng)汤踏,因此也沒有相應(yīng)的參數(shù)lambda,少一個(gè)需要調(diào)的超參舔腾。相比較來說L2正則則要嘗試大量的lambda來確定最優(yōu)值溪胶,增大了訓(xùn)練成本。

缺點(diǎn):L2正則化每設(shè)定一個(gè)lambda值稳诚,就相當(dāng)于確定了一個(gè)具體的帶罰項(xiàng)的成本函數(shù)哗脖,接下來的訓(xùn)練則是一門心思減小成本函數(shù)。相當(dāng)于防止過擬合和降低成本函數(shù)是分成前后兩步干的扳还。而early stopping則相當(dāng)于把兩步揉到一起干才避,在為了防止過擬合停止訓(xùn)練的時(shí)刻,也等于放棄了繼續(xù)減小成本函數(shù)氨距。

1.9 標(biāo)準(zhǔn)化輸入

(原視頻起名“正則化輸入”桑逝,不是很合理)

神經(jīng)網(wǎng)絡(luò)的輸入特征一定要進(jìn)行標(biāo)準(zhǔn)化處理,即減去均值俏让、除以方差肢娘。

若原始特征是正態(tài)分布,則標(biāo)準(zhǔn)化后為標(biāo)準(zhǔn)正太分布舆驶。

若不進(jìn)行標(biāo)準(zhǔn)化操作,不同的特征可能分布在不同量級(jí)而钞,如年齡和收入沙廉。若以原始特征作為輸入,則對(duì)應(yīng)的合適的w也可能差了量級(jí)臼节,從而導(dǎo)致迭代優(yōu)(梯度下降等)化難以進(jìn)行撬陵。

1.10 梯度消失和梯度爆炸

直觀理解:假設(shè)一個(gè)非常非常深的DNN,假設(shè)中間的層不做非線性變換网缝,則FP可以表示為

\hat{y} = \sigma(W^{L}W^{L-1}...W^{2}W^{1}x) 暫時(shí)忽略b

假設(shè)每層的W都是大于1的巨税,很多相乘之后變大更加的大,則對(duì)每個(gè)參數(shù)而言粉臊,(損失函數(shù)的)梯度都會(huì)特別大草添,這叫梯度爆炸

假設(shè)每層的W都是小于1的,則很多相乘后變得接近于0扼仲,對(duì)每個(gè)參數(shù)而言远寸,梯度都會(huì)變得特別小抄淑,這叫梯度消失。

為什么會(huì)有都大于1或都小于1這種事呢驰后,取決于初始化肆资。假設(shè)初始化的W都非常小,一直處于梯度消失區(qū)灶芝,則訓(xùn)練變得基本沒有進(jìn)展郑原;假設(shè)W都初始化的很大,則上來就梯度爆炸夜涕,對(duì)應(yīng)的可能是損失函數(shù)在震蕩而遲遲不能收斂犯犁。這也是為什么參數(shù)初始化如此重要了。

1.11? 神經(jīng)網(wǎng)絡(luò)的權(quán)重初始化

1. 激活函數(shù)為tanh時(shí)钠乏,令W的方差為 :(Xavier初始化)w[l] = np.random.randn(n[l],n[l-1])*np.sqrt(1/n[l-1])

2. 激活函數(shù)是ReLU栖秕,權(quán)重w的初始化一般令其方差為? :w[l] = np.random.randn(n[l],n[l-1])*np.sqrt(2/n[l-1])

3. 另一種初始化w的方法恨闪,令其方差為 2/(n[l-1]+n[l]):w[l] = np.random.randn(n[l],n[l-1])*np.sqrt(2/(n[l-1]+n[l]))

?合適的初始化是為了避免梯度消失或梯度爆炸譬正,更深的就不咋知道了。

原文鏈接:https://blog.csdn.net/cherry_yu08/article/details/79116862

1.12 梯度的數(shù)值逼近

在求解f(x)\theta 處的導(dǎo)數(shù)時(shí):

數(shù)學(xué)的解法:先求出f(x)的導(dǎo)函數(shù)f'(x)杜漠,再把\theta代入俏拱,求出f'(\theta)

數(shù)值的解法:搞一個(gè)較小的值\varepsilon 暑塑,求出\frac{f(\theta+\varepsilon ) - f(\theta-\varepsilon )}{2\varepsilon},讓\varepsilon 盡量的小就是所謂的數(shù)值逼近锅必。

計(jì)算機(jī)解決數(shù)學(xué)問題事格,本質(zhì)都是用數(shù)值的方法。

1.13 梯度檢驗(yàn)

對(duì)于一個(gè)神經(jīng)網(wǎng)絡(luò)搞隐,梯度檢驗(yàn)的步驟如下

(0)先有一組確定好的參數(shù)值(比如初始化值)

(1)把所有的參數(shù)即所有的w和b整合成一個(gè)巨大的vector驹愚,表達(dá)為\vec{\theta} = [\theta_1,\theta_2,...] ,此時(shí)的損失也可以表示為J(\vec{\theta})

(2)求出偏導(dǎo)構(gòu)成的向量\frac{dJ}{d\vec{\theta}}=[\frac{dJ}{d\theta_1},\frac{dJ}{d\theta_2},...] (怎么事先求出來劣纲。逢捺。。)

(3)循環(huán)執(zhí)行 assert \lim\nolimits_{\varepsilon\to0} \frac{J(\theta_i+\varepsilon ) - J(\theta_i-\varepsilon )}{2\varepsilon}\approx \frac{dJ}{d\theta_i}

1.14 關(guān)于梯度檢驗(yàn)的注意事項(xiàng)

1. 梯度檢驗(yàn)是用來debug的癞季,不是每輪梯度下降都進(jìn)行梯度檢驗(yàn)劫瞳;

2. 如果有正則化項(xiàng),進(jìn)行梯度檢驗(yàn)時(shí)不要遺漏绷柒;

3. 梯度檢驗(yàn)時(shí)不應(yīng)帶dropout

4. 初始化后應(yīng)該進(jìn)行梯度檢驗(yàn)志于,訓(xùn)練一段時(shí)間后或許應(yīng)該重新檢驗(yàn)一下。

(不會(huì)真正用到废睦,畢竟都是調(diào)包俠)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伺绽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憔恳,老刑警劉巖瓤荔,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異钥组,居然都是意外死亡输硝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門程梦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來点把,“玉大人,你說我怎么就攤上這事屿附±商樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵挺份,是天一觀的道長(zhǎng)褒翰。 經(jīng)常有香客問我,道長(zhǎng)匀泊,這世上最難降的妖魔是什么优训? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮各聘,結(jié)果婚禮上揣非,老公的妹妹穿的比我還像新娘。我一直安慰自己躲因,他們只是感情好早敬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著大脉,像睡著了一般搞监。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镰矿,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天腺逛,我揣著相機(jī)與錄音,去河邊找鬼衡怀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛安疗,可吹牛的內(nèi)容都是我干的抛杨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼荐类,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼怖现!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤屈嗤,失蹤者是張志新(化名)和其女友劉穎潘拨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饶号,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铁追,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫船。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琅束。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖算谈,靈堂內(nèi)的尸體忽然破棺而出涩禀,到底是詐尸還是另有隱情,我是刑警寧澤然眼,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布艾船,位于F島的核電站,受9級(jí)特大地震影響高每,放射性物質(zhì)發(fā)生泄漏屿岂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一觉义、第九天 我趴在偏房一處隱蔽的房頂上張望雁社。 院中可真熱鬧,春花似錦晒骇、人聲如沸霉撵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徒坡。三九已至,卻和暖如春瘤缩,著一層夾襖步出監(jiān)牢的瞬間喇完,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工剥啤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锦溪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓府怯,卻偏偏與公主長(zhǎng)得像刻诊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牺丙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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