吳恩達Deep Learning學習筆記——第二課 改善深層神經(jīng)網(wǎng)絡

目錄鏈接:吳恩達Deep Learning學習筆記目錄

?1.deep learning 實用層面
?2.優(yōu)化算法
?3.超參數(shù)調(diào)整
?4.多分類問題

1. deep learning實用層面

? 1.1 Bias and Variance

??為了加速模型的構(gòu)建狡耻,提高模型性能易遣,在訓練模型時,一般將數(shù)據(jù)data劃分為訓練集驗證集、和測試集谬晕,訓練集用于訓練模型內(nèi)的參數(shù),如W,b括尸;但還有許多超參數(shù)(learning rate、網(wǎng)絡結(jié)構(gòu)參數(shù)病毡,激活函數(shù)選擇濒翻,正則化參數(shù)等)是人為設定的,需要通過驗證集來對這些超參數(shù)進行優(yōu)化啦膜,測試集用于評估模型的泛化能力有送。
??對于training、validation僧家、test的劃分比例雀摘,在小量數(shù)據(jù)集上(如10000),可能是6:2:2的比例八拱,但在大規(guī)模的數(shù)據(jù)集下(如1 million)阵赠,如果按照這個比例來劃分,validation肌稻、test的數(shù)量太大清蚀,對于訓練數(shù)據(jù)資源來說是一種浪費,可能我們的劃分比例會是95:4:1爹谭,劃分數(shù)據(jù)集時枷邪,各數(shù)據(jù)集應該是同分布的。
??什么是偏差(Bias)和方差(Variance)呢诺凡?假設數(shù)據(jù)集如下圖所示东揣,a)通過邏輯回歸擬合得到一條直線將兩類數(shù)據(jù)分開,將有許多數(shù)據(jù)被分類錯誤腹泌,這時候稱為欠擬合(outfitting)嘶卧,對應高偏差,如果夸張一些真屯,模型預測出的結(jié)果可能和瞎猜差不多(50%概率)脸候,模型并沒有進行充分的訓練,所學習到的信息有限绑蔫;b)則是一種較為合適的分類結(jié)果(假設數(shù)據(jù)分類即是如此)运沦,僅有少量的誤差;c)當擬合曲線極其曲折時配深,雖然它將所有訓練數(shù)據(jù)都分類正確携添,(假設數(shù)據(jù)真實分布按照b劃分),但用新的數(shù)據(jù)去進行預測的時候篓叶,很可能得到錯誤的結(jié)果(如圖中綠x)烈掠,此時成為過擬合(overfitting)羞秤,對應高偏差;d)采用曲線函數(shù)或更高次的函數(shù)左敌,可能會出現(xiàn)這種情況瘾蛋,它處于欠擬合狀態(tài),但其又將圖中兩個數(shù)據(jù)擬合正確矫限,將會使得模型的偏差和方差都很高哺哼。


??對于只有兩個特征的數(shù)據(jù)集我們可以用可視化的方法來展現(xiàn)數(shù)據(jù)的擬合情況,但對于高維的數(shù)據(jù)叼风,我們無法可視化取董。此時采用訓練誤差和驗證集誤差來進行判別BiasVariance。如下圖所示无宿,對于貓和狗的兩類圖片茵汰,我們認為人眼去識別時,識別錯誤率為0%(最優(yōu)誤差)孽鸡。①當模型training識別誤差為1%蹂午、validation識別誤差為11%時,模型過擬合梭灿,高方差画侣;②模型training識別誤差為15%、validation識別誤差為16%時堡妒,模型欠擬合配乱,高偏差;③模型training識別誤差為15%皮迟、validation識別誤差為30%時搬泥,模型不僅高偏差,還高方差伏尼;④模型training識別誤差為0.5%忿檩、validation識別誤差為1%時,模型低偏差爆阶、低方差燥透,擬合適度。所以辨图,在此班套,是基于最優(yōu)誤差較小、training和validation同分布的情況下故河,采用trainin誤差與最優(yōu)誤差之間的差別用于判斷是否高偏差吱韭,而validation誤差與最優(yōu)誤差間的差別用于判斷是否高方差。
??但是當我們無法獲取最優(yōu)誤差或者獲得的最優(yōu)誤差較高時鱼的,如圖片模糊理盆,人眼也無法識別(無法對數(shù)據(jù)進行標注痘煤?),如何判斷數(shù)據(jù)擬合情況猿规?

? 1.2 Basic recipe for machine learing

如何優(yōu)化模型衷快?
? ? ①通過一個baseline訓練結(jié)束后,獲取到training error坎拐,如果偏差過高甚至無法擬合training烦磁,解決的方法一般為增加NN的規(guī)模(有作用养匈,一般而言哼勇,只要模型足夠復雜,通撑缓酰可以很好的擬合training)积担、花費更多的時間來訓練模型(不一定有用)、或者選擇其他NN(不一定有用)猬仁;
? ?②當偏差降低到可以接收的范圍帝璧,獲取validation error,當方差過高時湿刽,一般選擇增加訓練數(shù)據(jù)量(比較難的烁,數(shù)據(jù)獲取不易)、采用正則化項(regularization)诈闺、修改模型
? ?③重復①②直到找到一個低偏差渴庆、低方差的模型。
? ?balance bias and variance:在機器學習的早期階段雅镊,基本沒有什么方法襟雷,可以在影響方差時而不影響偏差,影響偏差時而不影響方差仁烹,而在deep learning中耸弄,人們不太考慮偏差、方差平衡問題卓缰,因為增加數(shù)據(jù)規(guī)模计呈、增加模型復雜度,在適當?shù)恼齽t下通痴骰#可以構(gòu)建一個較好的模型捌显,增加數(shù)據(jù)規(guī)模,可以在減小方差的同時鳍鸵,對偏差影響較小苇瓣。

? 1.3 Regularization

??Logistics Regression:
??L2正則:

??L1正則:

? ?如果采用L1正則,W最終將會是稀疏的偿乖。λ為正則化參數(shù)击罪,通常設置為較小的數(shù)值哲嘲,以避免過擬合。
??Neural network:
n[l]表示第l層隱藏層的單元數(shù)媳禁,這個范數(shù)矩陣為Frobenius范數(shù),權(quán)重參數(shù)更新眠副,等式右邊第一項中dw代表后向傳播中計算得到的W的導數(shù):
F范數(shù)是矩陣中各個元素絕對值平方的總和,范數(shù)作用參見關(guān)于范的知識整理竣稽。

? 1.4 Why regularization reduces overfitting

? ① 當λ設置到足夠大時囱怕,W將會被”壓縮“到足夠小,使得某些權(quán)值w約等于0毫别,使得某些單元的影響減小娃弓,理解為簡化了網(wǎng)絡結(jié)構(gòu)(實際上隱藏單元還在),從而減小方差岛宦;
? ②當λ設置太小時台丛,正則項將不起作用,所以λ需要設置一個合適的值砾肺。



? 此外挽霉,另一種理解方式是,當λ設置到足夠大時变汪,W很小侠坎,對于激活函數(shù)而言,Z將被限制到0附近裙盾,在這個區(qū)域內(nèi)实胸,激活函數(shù)近似于線性,激活函數(shù)就失去了其本該有的性質(zhì)闷煤,神經(jīng)網(wǎng)絡退變接近logistics回歸童芹,從而欠擬合。

? 1.5 Dropout regularization

? ?Dropout策略會在每一隱藏層設置單元被保留和丟棄的概率鲤拿,然后消除到這些節(jié)點的連線假褪,最后得到一個簡化后的神經(jīng)網(wǎng)絡,對于每個樣本近顷,都采用同一個簡化后神經(jīng)網(wǎng)絡來訓練生音。


? ?Dropout方法:Incerted dropout(反向隨機失活)
? ?假設要消除layer=3的隱藏層20%的神經(jīng)元,設置keep_prob=0.8窒升,即保留80%神經(jīng)元缀遍,通過np.random.rand()函數(shù)生成一個[0,1)的隨機均勻分布,通過下述第一行代碼將會得到一個shape與a3.shape相同向量饱须,向量值均為True或False域醇,True的占比為80%,通過第二行代碼即將第三層的輸出值消除20%,第三行代碼用于補償被拋棄的20%譬挚,維持a3的期望值锅铅,當a3輸入到下一層時,相當于layer=3層被消除20%神經(jīng)元减宣。在測試數(shù)據(jù)時不進行dropout(否則會導致預測結(jié)果變得隨機盐须,或需要多次預測,增加了計算量)漆腌,所有神經(jīng)元都會被啟用贼邓。

d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep_prob
a3 = np.multiply(a3, d3)
a3 /= keep_prob

? ?dropout能夠提升模型性能的原因是:
? ?①在訓練過程中,每次被隨機消除的神經(jīng)元闷尿,其權(quán)重不進行更新但保存塑径,可以理解為通過訓練不同的子網(wǎng)絡來對結(jié)果進行投票(隨機森林?)悠砚,提升網(wǎng)絡的泛化能力晓勇;
? ?②由于每次訓練被消除的神經(jīng)元是隨機的,最后的輸出結(jié)果將對各個神經(jīng)元依賴程度減小灌旧,將權(quán)重分配到各神經(jīng)元較為”均勻“(雞蛋不要放在一個籃子里),起到類似于L2正則的效果绰筛。
? ?其缺點是枢泰,①增加了超參數(shù)的搜索量(每一層的keep_prob都不同),②明確定義的代價函數(shù)每次迭代都是下降的铝噩,添加dropout后代價函數(shù)不能再被明確定義衡蚂,因為每次訓練的網(wǎng)絡都是隨機的,每次代價函數(shù)都不一樣骏庸,代價函數(shù)很難被計算出來毛甲。所以,計算代價函數(shù)時需要關(guān)閉dropout具被,然后再打開dropout玻募,以確保代價函數(shù)單調(diào)遞減。

? 1.6 Other regularization methods

? ?①數(shù)據(jù)增強(data argumentation):對于圖片一姿,可以進行水平翻轉(zhuǎn)七咧,隨機翻轉(zhuǎn)后裁剪;對于字符識別叮叹,可以通過隨機扭曲睦优、翻轉(zhuǎn)又活、變形等;
? ?②early_stopping:繪制迭代次數(shù)與(training error、validation error)間關(guān)系圖踢俄,對于validation error一開始是下降的文兑,到某次迭代后開始上升,early_stopping就是在這個epoch停止迭代訓練(如early_stopping=100,如發(fā)現(xiàn)本次loss相比上一次未降低拇泣,則再迭代100次后停止)。一般而言矮锈,代價函數(shù)霉翔、w、b參數(shù)是通過訓練(SGD苞笨、Adam等)來優(yōu)化债朵,而過擬合問題又是通過超參數(shù)搜索(正則化、數(shù)據(jù)增強等)來解決瀑凝,再進行正交序芦,而early_stopping在同時優(yōu)化loss和降低方差兩個問題,所以其缺點是粤咪,可能會導致停止優(yōu)化loss后谚中,loss的值沒有達到期望范圍內(nèi),而同時又不希望過擬合寥枝。

? 1.7 Normalizing

??當特征尺度相差過大時宪塔,量級較大的特征在訓練過程中可能對于參數(shù)的影響較大,從而影響預測結(jié)果囊拜,標準化可以消除尺度上的差異某筐,使各特征對于參數(shù)的影響相近;Normalizeing還可以避免數(shù)值問題冠跷,加速網(wǎng)絡收斂南誊,分析參見神經(jīng)網(wǎng)絡為什么要歸一化
??z-score 標準化:x = (x-μ) / σ蜜托,第一步均值化抄囚,第二步方差歸一化,測試集歸一化時所使用得μ和σ應與訓練集相同橄务,而不是在兩個集合上分別計算μ和σ幔托。

? 1.8 Vanishing/exploding gradients

??如下圖,為一個深層神經(jīng)網(wǎng)絡仪糖,假設激活函數(shù)為g(z)=z柑司,假設每一層W>1,此時預測結(jié)果呈指數(shù)級增長锅劝,而W<1時攒驰,預測結(jié)果呈指數(shù)級遞減,同理W的梯度也呈現(xiàn)相同的趨勢故爵,導致梯度變得極大或極小玻粪,這被稱為梯度消失(彌散)和梯度爆炸隅津,導致網(wǎng)絡難以收斂。參見梯度消失和梯度爆炸原因及其解決方案劲室。

? 1.9 Weight initialization

??既然神經(jīng)網(wǎng)絡容易出現(xiàn)梯度消失和梯度爆炸問題伦仍,那么權(quán)重W的初始化顯得較為重要,否則可能導致無法收斂很洋。為避免這個兩個問題充蓝,Xavier Glorot在論文中指出兩個經(jīng)驗性的準則:①每一層神經(jīng)元的激活值的均值要保持為0;②每一層激活值得方差保持不變(反向傳播喉磁,梯度值方差保持不變)谓苟,則(激活函數(shù)為tanh)權(quán)值Wl要滿足:


??在實現(xiàn)W初始化時僅僅需要:np.random.randn(shape)*np.sqrt(1/n[l-1])randn()函數(shù)生成的隨機數(shù)服從μ=0协怒,σ2=1的正態(tài)分布涝焙,乘以√(1/n[l-1])后即服從上述公式分布。推導及其他初始化方法見權(quán)值初始化 - Xavier和MSRA方法孕暇。

? 1.10 Gradients checking

??(1)梯度的數(shù)值逼近

??(2)梯度檢驗

??先將所有W和b轉(zhuǎn)化為一個大的向量θ=[w1,w2,...,b1,b2,....],再做梯度近似計算:
??注意:①不要用來訓練時計算梯度仑撞,調(diào)試的時候,僅用于檢驗反向傳播梯度計算是否正確妖滔,因為計算量太大隧哮;②如果代價函數(shù)有正則項,梯度檢驗也應包括正則項铛楣;③不要同時與dropout使用近迁;④一種極端情況,w簸州、b初始化在0附近,此時后向傳播計算正確歧譬,但w岸浑、b變大后,后向傳播計算可能開始變得不準確瑰步,此時矢洲,需要在w初始化過程中執(zhí)行梯度檢驗,在反復訓練網(wǎng)絡后再進行梯度檢驗缩焦。

2. 優(yōu)化算法

?2.1 Mini-batch 梯度下降法

??機器學習是一個極其依賴經(jīng)驗的過程读虏,需要多次的迭代,訓練多個模型才能找到合適的那一個袁滥。Deep leraning雖然可以用大量級數(shù)據(jù)來訓練盖桥,但其訓練速度很慢,優(yōu)化后的快速算法能夠大大提高效率题翻。

??向量化能夠有效的同時對所有m的樣本進行計算揩徊,假設m=500 million,那么在執(zhí)行梯度下降法時,需要處理整個數(shù)據(jù)集后才能進行一步梯度下降塑荒,然后重復熄赡,這將是一個緩慢的過程。在梯度下降前先處理一部分數(shù)據(jù)齿税,能夠加速模型的訓練彼硫。
???如上圖,假設有5,000,000個樣本凌箕,每個mini-batch 1000個樣本(batch size)拧篮,則有5000個mini-batch(即5000個樣本子集),然后執(zhí)行以下算法(偽):
for  t in range(5000):
      forword propagate on X{t} #X{t}指第t個mini-batch陌知,此時同時處理1000個樣本
      compute cost J{t}
      backword propagate
      update gradients

??執(zhí)行上面代碼一次他托,被稱為1 epoch,意味著只遍歷了一次訓練集(即只訓練了一次)仆葡。如果將Batch法(即全部樣本作為一批)和mini-batch法的loss繪制圖如下赏参,會發(fā)現(xiàn)Batch的loss曲線單調(diào)下降,但mini-batch的loss曲線有噪音沿盅,這是由于每個mini-batch中數(shù)據(jù)不同把篓,所以計算出的loss會有波動。

??①當batch_size = m 時腰涧,即為Batch gradient韧掩,梯度下降時較為平滑,其缺點是每個epoch的時間過長窖铡;

??②當batch_size = 1 時疗锐,即為SGD,梯度下降時較為曲折费彼,其缺點是失去了向量化帶來計算加速滑臊。

?2.2 指數(shù)加權(quán)移動平均(EWMA)

??(1)指數(shù)加權(quán)移動平均(EWMA)

??β=0.9時為紅線,β=0.98時為綠線箍铲,β=0.5時為黃線:
??①Vt為t時刻的EWMA值雇卷,θt為t時刻的溫度值,β是(0颠猴,1)之間的權(quán)重參數(shù)关划;
??②當V0=0時,將公式展開后得到
可以看出隨時刻往前移動翘瓮,該時刻的溫度值所占的權(quán)重呈指數(shù)級衰減贮折,也就是說越往前,前面溫度對于當前值的預測影響越小春畔,這個式子可以看作是t前各時刻溫度與對應指數(shù)衰減函數(shù)(1-β)βt-1相乘得到脱货;
??③為什么說EWMA是平均了當前時刻前N=1/(1-β)天岛都?這是因為
明顯,0.35 * (1-β)的權(quán)重我們覺得它已經(jīng)足夠小振峻,其再往前的數(shù)據(jù)我們不再考慮臼疫,將其忽略;
??④既然EWMA近似于近10天數(shù)據(jù)扣孟,為何不直接計算近10天的均值呢烫堤?首先,直接計算近10天均值凤价,則近10天的數(shù)據(jù)對當前的影響相同鸽斟,EWMA則是距離當前時刻越近,則影響越大利诺;其次富蓄,EWMA在實現(xiàn)過程中只每次迭代只需要存儲Vt,而直接計算近10天均值要存儲近10次迭代的梯度值
??(2)EWMA的偏差修正

??實際上慢逾,圖中綠色的線是經(jīng)過偏差修正過后的EWMA立倍,未修正的EWMA為紫色曲線,可以看出在時刻前期侣滩,未修正的EWMA值偏低口注,而在時刻后期一致,這是如何造成的呢君珠?
??當V0=0時寝志,θ1=40,通過加權(quán)公式得到V1=0.98 * 0+0.02 * 40=8策添,可以看出其遠比40小材部,這是由于V0=0造成的,類似冷啟動問題唯竹,所以此時需要將其進行偏差修正:
?? 經(jīng)過修正后V1=(0.98 * 0+0.02 * 40)/ 0.02 =40败富,而當t很大時,βt趨近于0摩窃,公式變?yōu)樵瓉淼墓剑云钚拚蟮墓街饕拚饲捌诘腅WMA值芬骄。參見指數(shù)加權(quán)移動平均猾愿、優(yōu)化算法之指數(shù)移動加權(quán)平均

?2.3 Momentum梯度下降法

??如下圖所示账阻,采用梯度下降法時蒂秘,梯度下降并不是平滑下降的,而是來回擺動淘太,當learning_rate過大時姻僧,這個擺動的幅度會更大规丽,但learning_rate過下則會導致梯度下降變得很慢,所以我們希望此時在縱軸上學習變慢撇贺,減小擺動赌莺,但在橫軸上獲得加速,得到類似低learning_rate下降軌跡松嘶,但其下降的速度大于低learning_rate時的梯度下降艘狭,采用Momentum能夠獲得期望的效果:
for t in range(num_mini_batch):
        compute dW,db # all samples in mini_batch
        Vdw = β Vdw + (1 - β) dW
        Vdb = β Vdb + (1 -β) db

        W = W - α Vdw
        b = b - α Vdb
""" 
注:此時以t做為時刻,即計算t時刻的梯度的EWMA值翠订,而不是計算前幾層dw來計算當前層dw的EWMA值巢音。
t:0-t,則dW:dW0,dW1尽超,...官撼,dWt,計算前幾次迭代的梯度的EWMA代替梯度來更新W
"""

??在平均過程中似谁,縱軸上正負數(shù)相互抵消傲绣,所以平均數(shù)接近于0,減小了縱軸上的擺動棘脐;或者說斜筐,如果將梯度分開來看,在下降時蛀缝,下降的方向分解到橫軸和縱軸顷链,在縱軸上是相反方向,但在橫軸上是相同方向屈梁,計算當前迭代次數(shù)時的梯度下降方向時嗤练,將前幾次梯度下降乘上了不用同的權(quán)重參與到當前梯度計算,那么在讶,此時的梯度在橫軸上將獲得前幾次梯度的下降累加煞抬,縱軸方向上的梯度出現(xiàn)了抵消,從而使得當前梯度擺動減小构哺。
??一般而言β取0.9革答,就可以達到不錯的效果,而且在實際應用中不對公式進行偏差修正曙强,因為10次迭代后残拐,EWMA已經(jīng)過了初始階段,不再是一個具有偏差的值碟嘴,而迭代次數(shù)往往大于10溪食。有的文章里,將(1 - β)去掉娜扇,得到 Vdw = βVdw + dW错沃,這樣的結(jié)果就是相當于Vdw縮小了(1 - β)倍栅组,其缺點是,如果你調(diào)整了β枢析,那么α也要被調(diào)整玉掸。

?2.4 RMSprop (root mean square prop)

??RMSprop能夠起到同Momentum一樣的作用,減小擺動幅度登疗。
for t in range(num_mini_batch):
        compute dW,db # all samples in mini_batch
        Sdw = β Sdw + (1 - β) (dW)^2
        Sdb = β Sdb + (1 -β) (db)^2

        W = W - α dw/(ε+√Sdw)
        b = b - α db/(ε+√Sdb)
"""√:表示開方"""

??RMSprop(綠線)與Momentum(紅線)的區(qū)別是排截,在計算EWMA值時將dW放大,計算EWMA值得結(jié)果就是辐益,相對而言断傲,在某個維度方向上的梯度dW較大時,說明此時擺動幅度較大智政,梯度更新時除以一個較大的值可以減緩這一維度梯度下降的幅度认罩;而當某個維度梯度dW較小時,能基本保持其下降幅度续捂,以此來消除擺動垦垂。此外,梯度更新時分母上增加ε是為了避免數(shù)值問題(Sdw出現(xiàn)0時)牙瓢。

?2.5 Adam optimization

??Adam結(jié)合了Momentum和RMSprop

一般而言劫拗,β1默認0.9,β20.999矾克,ε默認10-8,可以得到不錯的效果页慷。

?2.6 Learning rate decay

??一種加快訓練的方法就是,在梯度下降初始時胁附,learning_rate大一些酒繁,初始時梯度下降很快,在接近最優(yōu)解時learning_rate小一些控妻,避免越過最優(yōu)解州袒,更新后的值僅僅在最優(yōu)解附近小范圍內(nèi)擺動;如果保持learning_rate不變弓候,更新后的值一直在最優(yōu)解附近較大的范圍內(nèi)擺動郎哭。

learning_rate衰減:
learning_rate其他衰減方式:

?2.7 The problem of local optima

??在Deep learning早期,人們往往擔心菇存,優(yōu)化算法會陷在極差的局部最優(yōu)解彰居,但隨著研究的深入,人們對局部最優(yōu)解有了新的認識撰筷。


在高維空間中(假設20000維),如果直接陷入到一個局部最優(yōu)中去畦徘,這個局部所有維度都是凸的毕籽,這個概率很小抬闯,實際上,我們時常遇到的梯度為0的點是鞍點关筒,即該處每個維度的函數(shù)可能凸溶握、可能凹,這個概率遠比局部最優(yōu)大蒸播。而在梯度為0或接近0的區(qū)域睡榆,會導致學習速度變慢。
所以袍榆,①不太可能陷入局部最優(yōu)胀屿;②平緩段,學習速度很慢包雀,而Momentum或是RMSprop宿崭,Adam這樣的算法能夠加速這一過程。

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

?3.1 Hyperparameters

(1)超參數(shù)搜索策略
??超參數(shù)調(diào)整是Deep learning的難點之一才写,你需要調(diào)整大量的超參數(shù)葡兑,如learning_rate、Momentum的β赞草,Adam的β1 β2 ε讹堤、網(wǎng)絡層數(shù)、單元數(shù)厨疙、learning_rate衰減參數(shù)洲守、batch size等等。但其中一些參數(shù)相對而言會更為重要轰异,比如learning_rate岖沛,其次batch size、β搭独、單元數(shù)婴削,再次網(wǎng)絡層數(shù)、learning_rate衰減參數(shù)牙肝。
??較早的參數(shù)調(diào)整中唉俗,使用的搜索方法是網(wǎng)格搜索,當參數(shù)量很少的時配椭,這個方法很實用虫溜。但在Deep learning中法竞,一般在參數(shù)范圍內(nèi)取隨機點香缺,這樣做的原因是,你很難確定哪一些超參數(shù)會比其他參數(shù)更重要盹憎。如下圖敦姻,總的搜索點都是25個瘾境,如果采用傳統(tǒng)的網(wǎng)格搜索歧杏,那么一個參數(shù)只搜索了5次獨立的值,而在隨機網(wǎng)格搜索中迷守,一個每個參數(shù)維度都搜索了25次獨立的值犬绒,而此時計算量并未增加,這樣找到效果最好的值的概率似乎更大一些兑凿。

超參數(shù)取值搜索時的另一個有效的方式是凯力,先在大范圍內(nèi)搜索出較優(yōu)的值,再在較優(yōu)值附近范圍取更為密集的點來進行篩選(由粗到細的策略)礼华。

(2)超參數(shù)搜索取值范圍及其標尺
??隨機網(wǎng)格搜索能夠提升超參數(shù)搜索效率咐鹤,但并不是在有效值范圍內(nèi)取值,而對于超參數(shù)的搜索卓嫂,其搜索范圍及標尺很重要慷暂。例如,對于網(wǎng)絡層數(shù)和單元數(shù)晨雳,網(wǎng)絡層數(shù)取值范圍較小行瑞,且為整數(shù),可能你可以遍歷所有Layers餐禁,而單元數(shù)則采用隨機取值的方式血久。
??但是這種方法對于某些超參數(shù)不適用,如learning_rate,假設你懷疑其最小值是0.0001帮非,最大值為1氧吐,然后在這個范圍內(nèi)隨機取值,結(jié)果就是0.1-1之間的數(shù)占了90%末盔,0.0001-0.1之間只有10%的搜索量筑舅,這樣是不合理的。如果采用對數(shù)標尺陨舱,數(shù)據(jù)跨度為0.0001翠拣,0.001,0.01游盲,0.1误墓,1,再進行隨機取值益缎,那么隨機值就會均勻的分布在各個標尺區(qū)間谜慌,這樣的數(shù)據(jù)搜索更為合理,數(shù)據(jù)分布更為均勻莺奔。
??另一個例子是給β取值欣范,β再越接近0.999時,對細微的變化變得很敏感,所以在接近0.999的區(qū)間內(nèi)熙卡,需要更為密集的取值杖刷。

?3.2 Batch Normalization

(1)歸一化激活函數(shù)輸入值Z
??Batch Normalization能夠使得超參數(shù)搜索變得更加容易,使神經(jīng)網(wǎng)絡對超參數(shù)得選擇更加穩(wěn)定驳癌,超參數(shù)得范圍更大,效果更好役听,也會使得深層網(wǎng)絡得訓練更容易颓鲜。
??對于單層網(wǎng)絡,進行歸一化X = (X - μ) / σ后典予,使得各個維度的數(shù)據(jù)量級相近甜滨,也就是是”扁平“的數(shù)據(jù)變得”圓潤“,這樣得好處是梯度下降算法表現(xiàn)更好瘤袖,收斂速度更快衣摩。那么問題來了,對于深層網(wǎng)絡捂敌,僅僅將輸入數(shù)據(jù)X進行歸一化艾扮,那么,經(jīng)過多層傳導后輸出得A是否還是”圓潤“得呢占婉?大概率會不再”圓潤“泡嘴,那么對每一層輸出A都進行歸一化以加速訓練呢?實際上逆济,在應用中通常是對Z進行歸一化酌予,再輸入給激活函數(shù)(為啥是Z不是A,A不服氣)奖慌。

??Z歸一化后抛虫,Z的每一個分量均值都為0,方差都為1简僧;為了更好的利用激活函數(shù)的非線性建椰,我們并不想所有z的分布都是均值0方差1,也許不同的分布會有意想不到的效果涎劈,所以要對歸一化后的Z進行重構(gòu)广凸,重構(gòu)里的參數(shù)是要學習的參數(shù)γ(設置方差)和β(設置均值),在梯度下降中蛛枚,如同更新權(quán)重一樣更新谅海。其他分析參見批歸一化(Batch Normalization)詳細解釋筆記

(2)神經(jīng)網(wǎng)絡中擬合Batch Norm
??hidden layer中Z的歸一化參數(shù)學習蹦浦,類似權(quán)重W扭吁,b的學習:

(3)為什么Batch Norm有效
??①輸入X歸一化后變得”圓潤“,加速學習,而hidden layers中Z的Batch Norm也起到了類似的作用侥袜;
??②Batch Norm可以使權(quán)重比你的網(wǎng)絡更滯后或更深層蝌诡,為什么?
????測試集數(shù)據(jù)分布改變枫吧,無法準確預測浦旱,參見covariate shift現(xiàn)象的解釋
????每一層的Z由于其前面layers的參數(shù)更新,每次輸出的Z的分布是變化的九杂,在經(jīng)過歸一化后颁湖,至少其均值和方差保持穩(wěn)定為訓練好后的γ、β例隆,限制了前面layers的參數(shù)更新甥捺,減少了輸入值分布改變帶來的問題。
????即使前面的層保持學習镀层,由于Bath Norm使得輸入的值變得更穩(wěn)定(變化較辛獭),迫使了后面的層在前面層參數(shù)改變后依然能適應唱逢,或者說減弱了后層參數(shù)對前層參數(shù)的依賴吴侦,使得每一層都需要自己學習,與其他層相對獨立惶我。
??③正則化作用妈倔。在對Z進行Batch Norm時,因為只是在mini-bacth上計算均值和方差绸贡,而不是整個數(shù)據(jù)集盯蝴,所以相當于添加了一些噪音給了每一層的激活函數(shù),迫使后面的單元不過分依賴任何一個hidden unit(類似dropout听怕?)起到了輕微的正則化效果捧挺。
(3)測試集中Batch Norm
??由于在進行Batch Norm時,計算均值和方差只是在mini-batch中計算的尿瞭,在訓練集中闽烙,訓練時,單獨計算每個mini-batch是沒有問題的声搁,因為最終參數(shù)會進行更新黑竞,參數(shù)是基于各個mini-batch的歸一化數(shù)據(jù)學習到的,綜合考慮了各個mini-batch(并不是整個數(shù)據(jù)集的mini-batch)疏旨。所以在預測測試集時很魂,我們既不能單獨計算每個mini-batch的均值和方差,如此每個mini-batch將會是”獨立分布的“數(shù)據(jù)集用于預測檐涝;為了保持Batch Norm時的數(shù)據(jù)量與訓練集相同遏匆,也不能計算整個測試集的均值和方差法挨。為了將各個mini-batch的均值和方差聯(lián)系起來,采用EWMA來對各個mini-batch的均值和方差進行追蹤幅聘。

4. 多分類問題

?4.1 Softmax regression

??emm...閱圖理解凡纳。

????softmax層的梯度:

??第二部分的課程筆記到此結(jié)束,筆記中有的是自己的理解也不知道對不對帝蒿,有的還不是很清楚荐糜,之后慢慢修改...
??大佬的優(yōu)化方法解析深度學習中優(yōu)化方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葛超,一起剝皮案震驚了整個濱河市狞尔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巩掺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件页畦,死亡現(xiàn)場離奇詭異胖替,居然都是意外死亡,警方通過查閱死者的電腦和手機豫缨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門独令,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人好芭,你說我怎么就攤上這事燃箭。” “怎么了舍败?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵招狸,是天一觀的道長。 經(jīng)常有香客問我邻薯,道長裙戏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任厕诡,我火速辦了婚禮累榜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灵嫌。我一直安慰自己壹罚,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布寿羞。 她就那樣靜靜地躺著猖凛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稠曼。 梳的紋絲不亂的頭發(fā)上形病,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天客年,我揣著相機與錄音,去河邊找鬼漠吻。 笑死量瓜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的途乃。 我是一名探鬼主播绍傲,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耍共!你這毒婦竟也來了烫饼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤试读,失蹤者是張志新(化名)和其女友劉穎杠纵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钩骇,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡比藻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倘屹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片银亲。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纽匙,靈堂內(nèi)的尸體忽然破棺而出务蝠,到底是詐尸還是另有隱情,我是刑警寧澤烛缔,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布馏段,位于F島的核電站,受9級特大地震影響力穗,放射性物質(zhì)發(fā)生泄漏毅弧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一当窗、第九天 我趴在偏房一處隱蔽的房頂上張望够坐。 院中可真熱鬧,春花似錦崖面、人聲如沸元咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庶香。三九已至,卻和暖如春简识,著一層夾襖步出監(jiān)牢的瞬間赶掖,已是汗流浹背感猛。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奢赂,地道東北人陪白。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像膳灶,于是被迫代替她去往敵國和親咱士。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

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