目錄
過擬合與欠擬合
- 欠擬合指模型不能在訓練集上獲得足夠低的訓練誤差
- 過擬合指模型的訓練誤差與測試誤差(泛化誤差)之間差距過大
- 反應在評價指標上,就是模型在訓練集上表現良好,但是在測試集和新數據集上表現一般呢(泛化能力差)
降低過擬合風險的方法
所有爲了減少測試誤差的策略統稱爲正則化方法,這些方法可能以增大訓練誤差爲代價
- 數據增強
- 圖像:平移、旋轉、縮放
- 利用生成對抗網絡(GAN)生成新數據
- NLP:利用機器翻譯生成新數據
- 降低模型複雜度
- 神經網絡:減少網絡層、神經元個數
- 決策樹:降低樹的深度、剪枝
- 權值約束(添加正則化項)
- L1正則化
- L2正則化
- 集成學習
- 神經網絡:Dropout
- 決策樹:隨機森林、GBDT
- 提前終止
數據集擴增
我們在使用訓練數據訓練模型,通過這個模型對將來的數據進行擬合,而在這之間又一個假設便是,訓練數據與將來的數據是獨立同分布的。即使用當前的訓練數據來對將來的數據進行估計與模擬,而更多的數據往往估計與模擬地更準確
一般的方法:1、重採樣
2、根據當前數據集估計數據分佈參數,使用該分佈產生更多數據等更多詳細參考機器學習中防止過擬合的處理方法
正則化
首先看詳解正則
L1正則化可以產生稀疏權值矩陣,讓特徵的權重等於0,用於特徵選擇
L2正則化可以防止模型過擬合,一定程度上,L1也可以防止過擬合在這篇文章中,在解釋爲什麼L1正則化會產生稀疏權值矩陣時,把w1 w2在二維平面上化成了正菱形,原因是L=|w1|+|w2|或者寫爲f(w1,w2)=|w1|+|w2|。無論是|w1|+|w2|=1,還是|w1|+|w2|=2,對應的圖像都是一個正菱形,從1到2,菱形由小變大。我們要最小化損失函數,也就是要最小化L,那就是菱形越來越小,把最優值往原點方向拉,努力讓w都變小。
降低欠擬合風險的方法
-
加入新的特
-
交叉特徵、多項式特徵
-
深度學習:因式分解機、Deep-Crossing、自編碼器
-
-
增加模型複雜度
-
線性模型:添加高次項
-
神經網絡:增加網絡層數、神經元個數
-
-
減小正則化項的係數
-
添加正則化項是爲了限制模型的學習能力,減小正則化項的係數則可以放寬這個限制
-
模型通常更傾向於更大的權重,更大的權重可以使模型更好的擬合數據
-
反向傳播公式推導
詳細步驟參考一問弄懂神經網絡反向傳播法BP
- 可以用四個公式總結反向傳播的過程
商標(l)表示網絡的層,(L)表示輸出層(最後一層),下標j和k指示神經元的位置,
w_jk表示l層第j個神經元與(l-1)層第k個神經元連線的權重
公式一:C代表總的損失函數
公式二:加和符號上是 ,nl表示第l層神經元的個數
激活函數
激活函數的作用-爲什麼要使用非線性激活函數
- 使用激活函數的目的是爲了向網絡中加入非線性因素;加強網絡的表示能力,解決線性模型不能解決的問題
爲什麼加入非線性因素能夠加強網咯的表示能力?——神經網絡的萬能近似定理
- 神經網絡萬能近似定理認爲主要神經網絡具有至少一個非線性隱藏層,那麼只要給予網絡足夠數量的隱藏單元,他就可以以任意的精度來近似從一個有限維空間到另一個有限緯空間的函數
- 如果不使用非線性激活函數,那麼每一層輸出都是上一層的線性組合;那麼無論網絡有多少層,其整體也將是線性的,最終的效果跟只有一層網絡的效果一樣,導致失去萬能近似的性質
- 但僅部分層是純線性是可以接受的,這有助於減少網絡中的參數
常見的激活函數
整流線性單元 ReLU
- ReLU通常是激活函數較好的默認選擇
ReLU的拓展
- ReLU及其拓展都基於以下公式
當alpha = 0時,即標準的線性整流單元
- 絕對值整流
固定 alpha = -1 ,此時整流函數即絕對值函數 g(z) = |z|
- 滲漏整流線性單元
固定 alpha 爲一個小值,比如0.001
- 參數化整流線性單元
將alpha作爲一個可學習的參數
- maxout單元
maxout單元進一步擴展了ReLU,他是一個可學習的k段函數,參數數量是普通全聯接層的k倍