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