天天看點

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

過拟合幾乎可以說是每個深度學習網絡的噩夢,當模型深度較大時,若不加以處理,幾乎都會碰上。出現過拟合的特點是:看起來效果很好(在訓練集上),而實際上已經廢了(在測試集或驗證集上)。是以如何在訓練時避免過拟合,是每一個煉丹師的必備技能。而避免過拟合主要有兩類方法:1)擴充資料,2)修改網絡。資料擴充内容比較簡單,在文末總結了資料擴充的方案,詳細的可以再自己搜一下看看。本文主要總結一些修改網絡的方法。

1.正則化

正則化的目的是通過縮小權重W(忽略偏置B的影響)得到簡化模型的目的,可能大家會問了,模型權重越小,為什麼能簡化模型呢,計算量不是一樣的嗎?這裡的簡化不是指結構或者計算量上的簡化,應該是模型拟合能力的簡化,可以說是模型在可以解決問題的基礎上,變得更蠢了(其實就是奧卡姆剃刀原則:“如無必要,勿增實體”)。那麼,為什麼小的權重,可以讓模型變“蠢”呢,如下圖【1】:

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

當權重較小時,激活函數主要工作線上性區,使得一個模型更加趨于一個線性模型(簡單)。此外,異常點往往出現在偏離正确函數較遠的地方,當出現過拟合時,為了适應各個異常點,必須要較大的權重造成大的跳動才行,小的權重拟合的函數波動較小,可以避免向異常點收斂。

L1正則化

設損失函數為L,增加L1正則項後,使用梯度下降,權重W的更新公式如下,當W>0時,帶有L1正則項的權重将趨于0,而當W<0時,帶有L1的權重将趨于-0

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

L2正則化

同理,帶L2正則項的W在無正則項的基礎上下降了a*n(阿法乘以一塔)倍的W(權值衰減)

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

總的來說,L1正則化使W趨于0,L2正則化使W按W的一定比例減小。

2.Droupout

很簡單但十分有效的操作,在訓練時按一定比例随機對隐含層節點的輸出置0,相當于減少隐含層節點數。且每次訓練時置0的節點都是不一樣的(随機),相當于每次訓練的都是不同的網絡,大部分情況下網絡效果很好,也會出現部分效果較差的情況。但是測試時使用的是包含全節點的網絡,相當于對訓練時多個不同的網絡進行了組合,有點類似內建學習的方式,差別在于每個子網絡的參數是共享的(相關性較強,不獨立,但是共享的參數可以使每個子模型都獲得較好的效果)。Droupout的模型訓練時可能拟合速度會相對慢些,最終的訓練誤差也達不到沒有droupout時那麼小,但是在泛化性能上會更好。

3.Bagging

典型的內建學習方式,可以有效減小模型預測的方差(即模型的過拟合程度),bagging的工作原理如下圖所示【3】:

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

對原始資料集進行L次有放回的随機采樣,獲得L各子訓練集。分别對L個子訓練集進行訓練,獲得L個弱分類器,L個弱分類器投票獲得一個強分類器。為什麼bagging方式能避免過拟合呢【4】?

怎麼避免過拟合(正則化,droupout,bagging等原理及特點介紹)1.正則化2.Droupout3.Bagging參考文獻

4.資料擴充

隻要你的資料相對于你的網絡足夠充分(包括資料量和資料分布的全面性),理論上認為不會出現過拟合問題。但是實際問題中,大量資料的成本很高,甚至難以獲得。是以就要考慮人為的資料擴充方式了,總結一下大概有以下幾種:

1)翻轉;2)旋轉;3)縮放:放大後裁剪或縮小後填充;

4)平移(背景為空);5)添加噪聲(過拟合主要出現在拟合高頻特征)

參考文獻

【1】https://blog.csdn.net/jingbo18/article/details/80609006

【2】https://blog.csdn.net/crazy_scott/article/details/80343324

【3】https://blog.csdn.net/u014114990/article/details/50948079

【4】https://www.cnblogs.com/earendil/p/8872001.html

繼續閱讀