學習筆記:深度學習中的正則化

視學演算法發表於2020-04-06
點選上方“視學演算法”,星標公眾號
重磅乾貨,第一時間送達
作者:草yang年華

一、正則化介紹

問題:為什麼要正則化?

  NFL(沒有免費的午餐)定理:

    沒有一種ML演算法總是比別的好

    好演算法和壞演算法的期望值相同,甚至最優演算法跟隨機猜測一樣

    前提:所有問題等概率出現且同等重要

    實際並非如此,具體情況具體分析,把當前問題解決好就行了

    不要指望找到放之四海而皆準的萬能演算法!

方差和偏差:

  學習筆記:深度學習中的正則化

過擬合與欠擬合:

  訓練集和測試集

機器學習目標:

  特定任務上表現良好的演算法

  泛化能力強-->驗證集上的誤差小,訓練集上的誤差不大(不必追求完美,否則可能會導致過擬合)即可。

如何提升泛化能力:

  (1)資料

    資料和特徵是上限,而模型和演算法只是在逼近這個上限而已

    預處理:離散化、異常值、缺失值等

    特徵選擇

    特徵提取:pca

    構造新的資料:平移不變性

  (2)模型

    資料中加入噪音

    正則化項:減少泛化誤差(非訓練誤差)

    整合方法

 幾種訓練情形:

  (1)不管真實資料的生成過程---欠擬合,偏差大

  (2)匹配真實資料的生成過程---剛剛好

  (3)不止真實資料的生成過程,還包含其他生成過程---過擬合,方差大

正則的目標:

  從(3)--->(2),偏差換方差,提升泛化能力

注:

  永遠不知道訓練出來的模型是否包含資料生成過程!

  深度學習應用領域極為複雜,影像、語音、文字等,生成過程難以琢磨

  事實上,最好的模型總是適當正則化的大型模型

正則化是不要的!

  XTX不一定可逆(奇異),導致無法求逆(PCA)

  解決:加正則,XTX--->XTX+αI(一定可逆),說明:α--阿爾法,I--大寫的i,即單位陣。

  大多數正則化能保證欠定(不可逆)問題的迭代方法收斂

  注:偽逆學習筆記:深度學習中的正則化

二、深度網路正則化

深度網路中的正則化策略有哪些?——傳統ML方法的擴充套件

方法:

  增加硬約束(引數範數懲罰):限制引數,如L1,L2

  增加軟約束(約束範數懲罰):懲罰目標函式

  整合方法

  其他

約束和懲罰的目的

  植入先驗知識

  偏好簡單模型

三、引數範數懲罰

從線性模型說起:

  形式:y=Wx+b

  W:兩變數間的相互作用——重點關注

  b:單變數——容易欠擬合,次要

  仿射變換=線性變換+平移變換

引數範數懲罰:

  通常只懲罰權重W,不管b——b是單變數,且容易過擬合

  θ=(W;b)≈(W)

  學習筆記:深度學習中的正則化

  α是懲罰力度,Ω是正則項。

最常見,L2引數範數懲罰:

  權重衰減(weight decay)

  嶺迴歸,Tikhonov正則

形式:

  學習筆記:深度學習中的正則化

效果:

  學習筆記:深度學習中的正則化

  正則項Ω擠佔原始目標J的空間,逼迫J

  權重接近於原點(或任意點)

  詳細推導過程見P142-P143

學習筆記:深度學習中的正則化

 

L2正則能讓演算法“感知”到較高方差的輸入x

線性縮放每個wi

學習筆記:深度學習中的正則化

L1引數範數懲罰:LASSO

形式:

學習筆記:深度學習中的正則化

 

效果:

  L1與L2大不一樣:線性縮放wi-->增加wi同號的常數

  某些wi=0,產生稀疏解,常用於特徵選擇

除了L1,稀疏解的其他方法?

  Student-t先驗匯出的懲罰

  KL散度懲罰

注:不同於L1懲罰引數,懲罰啟用單元

學習筆記:深度學習中的正則化

 

約束範數懲罰:

  本質:約束問題--> 無約束問題

形式:

  引數範數懲罰:

  學習筆記:深度學習中的正則化

  約束範數懲罰:

  學習筆記:深度學習中的正則化

  學習筆記:深度學習中的正則化

  

  學習筆記:深度學習中的正則化

五、資料增強

提升泛化能力的最好辦法:

  資料增強:創造假資料

方法:

  (1)資料造假:平移、旋轉、縮放——不能改變類別

    影像,語音

  (2)注入噪聲

    輸入層≈權重引數懲罰

    隱含層:去噪編碼器、dropout

    權重:RNN

    輸出層:標籤平滑(反例)

      softmax永遠無法真正預測0或1,需要做平滑,防止走極端

噪聲魯棒性:

  注入噪聲遠比簡單收縮引數強大,特別是加入隱含層

學習筆記:深度學習中的正則化

六、早停止

問題

  隨著時間推移,訓練集誤差逐漸減少,而驗證集誤差再次上升

  能不能在轉折點處提前終止呢?

早停止

  當驗證集誤差在指定步數內沒有改進,就停止

  有效,簡單,高效的超參選擇演算法

  訓練步數是唯一跑一次就能嘗試很多值的超參

第二輪訓練策略(驗證集)

  (1)再次初始化模型,使用所有資料再次訓練

    使用第一輪步數

  (2)保持第一輪引數,使用全部資料繼續訓練

    避免重新訓練高成本,但表現沒那麼好,不保證終止

早停止為何有正則化效果?

  表象:驗證集誤差曲線呈U型

  本質:將引數空間限制在初始引數θ0的小鄰域內(εt)

    εt等效於權重衰減係數的倒數

    相當於L2正則,但更具優勢

    自動確定正則化的正確量

學習筆記:深度學習中的正則化

七、引數繫結和引數共享

引數範數懲罰:

  對偏離0(或固定區域)的引數進行懲罰,使用引數彼此接近

  一種方式,還有嗎?

引數共享:

  強迫某些引數相等

  優勢:只有引數子集需要儲存,節省記憶體。如CNN

 八、整合方法

整合方法:

  集合幾個模型降低泛化誤差的技術

  模型平均:強大可靠

  kaggle比賽中前三甲基本都是整合方法

Bagging:

  有放回抽樣,覆蓋2/3

  多個網路的整合

  偏差換方差

Boosting:

  單個網路的整合

  方差換偏差

學習筆記:深度學習中的正則化

Dropout:

  整合大量深層網路的bagging方法

  多個弱模型組成一個強模型

  施加到隱含層的掩掩碼噪聲

  一般5-10個網路,太多會很難處理

示例:

  2個輸入,1個輸出,2個隱含層

  一共24=64種情形

  問題:大部分沒有輸入,輸入到輸出的路徑

  網路越寬,這種問題概率越來越小

注:

  不同於bagging,模型獨立

  dropout所有模型共享引數

  推斷:對所有成員累計投票做預測

效果:

  Dropout比其他標準正則化方法更有效

    權重衰減、過濾器範數約束、稀疏啟用

  可以跟其他形式正則一起使用

優點:

  計算量小

  不限制模型和訓練過程

注:

  隨機性對dropout方法不必要,也不充分

九、對抗訓練

人類不易察覺對抗樣本與原始樣本的差異,但網路可以

小擾動導致資料點流行變化

 學習筆記:深度學習中的正則化

 

 

再次附上:

學習筆記:深度學習中的正則化

 

- END -
如果看到這裡,說明你喜歡這篇文章,請轉發、點贊掃描下方二維碼或者微信搜尋「perfect_iscas」,新增好友後即可獲得10套程式設計師全棧課程+1000套PPT和簡歷模板向我私聊「進群」二字即可進入高質量交流群。
掃描二維碼進群↓
學習筆記:深度學習中的正則化
學習筆記:深度學習中的正則化

學習筆記:深度學習中的正則化

在看 學習筆記:深度學習中的正則化

相關文章