一、正則化介紹
問題:為什么要正則化?
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方法不必要,也不充分
九、對抗訓練
人類不易察覺對抗樣本與原始樣本的差異,但網絡可以
小擾動導致數據點流行變化
再次附上: