深度學習 二 正則 BN 梯度消失

2021-08-21 04:20:50 字數 3099 閱讀 2540

深度學習(二) 正則、bn、梯度消失

2.1 正則化

2.2 batch normalization

covariate shift

這個現象指的是訓練集資料分布與**集資料分布不一致。這個問題的解決方法是重新賦予訓練集資料新的權重。

對於樣本xi

x

i,它在訓練集中的分布是q(

xi) q(x

i)

,在 **集中的真實分布是p(

xi) p(x

i)

,它的新權重就是p(

xi)q

(xi)

p (x

i)q(

xi

)分布如何確認?

從訓練集與驗證集取樣資料,分別標註為1,-1,

訓練lr分類器進行分類,如果測試集上的表現好,則訓練集資料分布不一致 p(

z=1|

xi)=

p(xi

)p(x

i)+q

(xi)

=11+

e−f(

xi)(2.2.1)

(2.2.1)p(

z=1|

xi)=

p(xi

)p(x

i)+q

(xi)

=11+

e−f(

xi

)分類器訓練好後reweight的權值即為: p(

z=1|

xi)p

(z=−

1|xi

)=ef

(xi)

(2.2.2)

(2.2.2)p(

z=1|

xi)p

(z=−

1|xi

)=ef

(xi)

如何發現covaraite shift現象?

mcc(matthews correlation coefficient),訓練集**集相關係數,mc

c∈[−

1,1]

m cc

∈[−1

,1

], 1強正相關,0無相關性,-1強負相關, 如果mcc > 0.2,發生了covariate shift mc

c=tp

∗tn−

fp∗f

n(tp

+fp)

(tp+

tn)(

tn+f

p)(t

n+fn

)−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−√(2.2.3)

(2.2.3)mc

c=tp

∗tn−

fp∗f

n(tp

+fp)

(tp+

tn)(

tn+f

p)(t

n+fn

)internal covariate shift

訓練集測試集輸入分布的變化會給模型帶來問題,一般而言資料分布差距不會太大,而在很深的網路這個問題就很嚴

重。神經網路的隱藏層基於輸入分布進行學習引數,之前層權值的變化,會導致之後的輸入分布變化,隱藏層的輸入分布

總是在變,難以收斂。因為前面的層的結果會傳遞到後面的層,而且層次越多,前面的細微變化就會帶來後面的巨大變化

直覺上

輸入0均值,1方差能夠加速學習,直覺上bn將隱藏層的輸出0均值,1方差,解決internal covariate shift,加速學習

,使得網路後面的層次對於之前的層權值的變化更為魯棒

實質

bn實質是解決反向傳播的梯度消失的問題,防治梯度消失

正則化

bn他在mini-batch上取平均,加入噪音,起一定的正則作用

公式: μb

←1m∑

i=1m

xiσ2

b←1m

∑i=1

m(xi

−μn)

2x^i

←xi−

μbσ2

n+ϵ−

−−−−

√yi←

γx^i

+β(2.2.4)

μ b←

1m∑i

=1mx

iσb2

←1m∑

i=1m

(xi−

μn)2

x^i←

xi−μ

bσn2

(2.2.4)yi

←γx^

i+

βbatchnorm就是通過對每一層的輸出規範為均值和方差一致的方法,解決消失和**的問題,或者可以理解為bn將輸

出從飽和區拉倒了非飽和區。

2.3 梯度消失於**

2.3.1 梯度消失

產生原因

許多啟用函式將輸出值擠壓在很小的區間內,在啟用函式兩端較大範圍的定義域內梯度為0,導致權重更新的緩慢訓練難度增加,造成學習停止。前面層上的梯度是來自後面的層上項的乘積,當層數過多時,隨著乘積的累積,將越來越小。

解決辦法

pre-training + fine-tuning 每次訓練一層,訓練完成bp所有層

relu、leakyrelu、elu等啟用函式緩解梯度消失

bn 通過對每一層的輸出規範為均值和方差一致的方法,將輸出從飽和區拉倒了非飽和區

殘差機制 短路機制可以無損地傳播梯度,而另外一項殘差梯度則需要經過帶有weights的層,梯度不是直接傳遞過來的。殘差梯度不會那麼巧全為-1,而且就算其比較小,有1的存在也不會導致梯度消失。所以殘差學習會更容易。

rnn lstm 將乘性轉為加性

2.3.2 梯度**

梯度剪下防止**,設定閾值,大於閾值剪下;正則化限制梯度**

神經網路與深度學習筆記 梯度消失問題

神經網路與深度學習筆記系列一共有五個專題,分別是 第一章使用神經網路識別手寫數字 梯度下降演算法是什麼。主要介紹了神經網路的基礎例如感知器啟用函式等概念,最主要介紹了梯度下降演算法。第二章反向傳播演算法如何工作 反向傳播演算法原理。主要介紹了反向傳播演算法的工作原理。第三章改變神經網路的學習方法 代...

神經網路與深度學習(5) 梯度消失問題

本文總結自 neural networks and deep learning 第5章的內容。隨著隱藏層數目的增加,分類準確率反而下降了。為什麼?先看一組試驗資料,當神經網路在訓練過程中,隨epoch增加時各隱藏層的學習率變化。兩個隱藏層 784,30,30,10 三個隱藏層 784,30,30,3...

深度學習基礎 梯度下降

梯度檢驗 具體的梯度下降的理論和公式推導,部分部落格已經解釋的很詳盡了,本文更多的在於梯度下降的拓展問題。現有結果表明,在處理複雜任務上,深度網路比淺層的網路有更好的效果。但是,目前優化神經網路的方法都是基於反向傳播的思想,即根據損失函式計算的誤差通過梯度反向傳播的方式,指導深度網路權值的更新優化。...