keras搬磚系列 正則化

2021-08-14 20:45:32 字數 2655 閱讀 9688

1,正則化簡介

以邏輯回歸來對正則化進行介紹

邏輯回歸原來的代價函式為:

minw,b

j(w,

b)=minw,

b1m∑

mi=1

l(y^

(i),

y(i)

) 其中:w∈r

nx,b

∈r加入正則化為: j(

w,b)

=1m∑

mi=1

l(y^

(i),

y(i)

)+λ2

m||w

||22

其中: ||

w||2

=∑nx

j=1=

wtw

上述式子為l2正則化

正則化是一種非常實用的減少方差的方法,正則化時會出現偏差方差權衡問題,偏差可能會進行增加。如果網路足夠大的時候,增幅通常不會太高。人們通常會用交叉驗證集來選擇正則化引數λ

通常來說:損失函式是單個樣本的誤差,成本函式是所有訓練樣本的誤差。

2,l1正則化使得模型變得稀疏,是否有利於模型壓縮

實際上l1正則化使得模型變得稀疏,但是沒有太多儲存記憶體,因為引數個數沒有變,所以l1正則化目標不是為了模型壓縮

3,為什麼l2正則化被稱作權重衰減

來看成本函式,包含了w[1],b[1]到w[l],b[l]的所有函式,l是神經網路的所含有的層數,定義如下: j(

w[1]

,b[1

],..

.,w[

l],b

[l])

=1m∑

mi=1

l(y^

(i),

y(i)

)+λ2

m∑ll

=1||

w[l]

||2

其中: ||

w[l]

||2=

∑n[l

−1]i

=1∑n

[l]j

=1(w

[l]i

j)2

n[l]表示第l層單元的數量,這個式子求得是w[l]矩陣中所有元素的平方和。

在加上正則化前,w[l]用反向傳播演算法更新引數的公式為: w[

l]:=w

[l]−

αdw[

l]=w

[l]−

α∂j∂

w[l]

但是加上正則化後: w[

l]:=

w[l]

−αdw

[l]=

w[l]

−α(∂

j∂w[

l]+λ

mw[l

])=(

1−αλ

m)w[

l]−α

dw[l

] 因為

1−αλ

m 小於1,所以l2正則化相當於讓權重矩陣變小,即權重衰減。

4,l1正則化石假設引數滿足拉普拉斯分布,l2正則化是滿足高斯分布

我們對引數w引入協方差為α,均值為0的高斯先驗。則根據極大後驗概率,求得成本函式為: l(

w)=p

(y→|

x;w)

p(w)

=∏i=

1mp(

y(i)

|x(i

);θ)

p(w)

=∏i=

1m12

π−−√

δexp

(−(y

(i)−

wtx(

i))2

2δ2)

∏j=1

n12π

−−√α

exp(

−(w(

j))2

2α)=

∏i=1

m12π

−−√δ

exp(

−(y(

i)−w

tx(i

))22

δ2)1

2π−−

√αex

p(−w

tw2α

) 取對數: l(

w)=logl(

w)=m

log12π

−−√δ

+nlog12π

−−√α

−1δ2

⋅12∑

i=1m

(y(i

)−wt

x(i)

)2−1

α⋅12

wtw⇒

wmap

guas

sian

=arg

minw(1

δ2⋅1

2∑i=

1m(y

(i)−

wtx(

i))2

+1α⋅

12wt

w)等價於: jr

(w)=

1n||

y−wt

x||2

+λ||

w||2

顯然這就是l2正則化形式,l1正則化同理可以推導。

5,正則化如何防止過擬合

根據圖可得:當λ增大的時候,w[l]變小,z[l]也會變小。這時z就會落入啟用函式的線性區,這時候整個網路就會接近乙個線性模型。分類就會比較簡單,不會容易出現過擬合。

全文來自:

(

keras搬磚系列 正則項

正則項在優化的過程中層的引數或者層的啟用值新增懲罰項,這些懲罰項將與損失函式一起作為網路的最終優化目標。懲罰項是對層進行懲罰,目前懲罰項的介面與層有關。主要由 kernel regularizer 施加在權重上的正則項,為keras.regularizer.regularizer物件 bias re...

keras搬磚系列 模型視覺化

當我們在程式設計的時候最怕的不是空氣突然安靜而是不知道我們在寫啥,這篇文章好早就想寫了,可耐拖延症。恐怖如斯 keras的視覺化不像tensorboard一樣能夠準確預估。大概能擼出是啥模型 需要安裝的 pip install pydot pip install pydot ng pip insta...

keras搬磚系列 調參經驗

1,觀察 loss勝於觀察準確率,loss設計要比較合理,對比訓練集和驗證集的 loss 2,relu可以很好的防止梯度瀰散的問題,當然最後一層啟用函式盡量別用 relu,如果分類則用 softmax 3,batchnorm 可以大大加快訓練速度和模型的效能 4,dropout防止過擬合,可以直接設...