系列文章: 吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習 吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程 吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化 吳恩達《Machine Learning》精煉筆記 4:神經網絡基礎 吳恩達《Machine Learning》精煉筆記 5:神經網絡 今天帶來第六周課程的筆記:關于機器學習的建議。内容包含:
- 應用機器學習的建議
- 評估假設
- 模型選擇和交叉驗證
- 方差和偏差診斷
- 正則化與過拟合問題
當我們運用訓練好了的模型來預測未知資料的時候發現有較大的誤差,我們下一步可以做什麼?
- 獲得更多的訓練樣本
- 嘗試減少特征的數量
- 嘗試獲得更多的特征
- 嘗試增加多項式特征
- 嘗試減少正則化程度λ
- 嘗試增加正則化程度λ
評估假設Evaluating a Hypothesis
當學習的算法時候,考慮的是如何選擇參數來使得訓練誤差最小化。在模型建立的過程中很容易遇到過拟合的問題,那麼如何評估模型是否過拟合呢?
為了檢驗算法是否過拟合,将資料集分成訓練集和測試集,通常是7:3的比例。關鍵點是訓練集和測試集均要含有各種類型的資料,通常我們要對資料進行“洗牌”,然後再分成訓練集和測試集。
當我們在訓練集上得到我們的學習模型之後,就需要使用測試集合來檢驗該模型,有兩種不同的方法:
- 線性回歸模型:利用測試資料計算代價函數J
- 邏輯回歸模型:
-
- 先利用測試資料計算代價函數Jtest(θ)
- 在針對每個測試集樣本計算誤分類的比率,再求平均值
交叉驗證
什麼是交叉驗證?
交叉驗證集合指的是:使用60%的資料作為訓練集,使用20%的資料作為交叉驗證集,使用20%的資料作為測試集
模型選擇
- 使用訓練集訓練出10個模型
- 用10個模型分别對交叉驗證集計算得出交(代價函數的值)
- 選取代價函數值最小的模型
- 用上面步驟中選出的模型,對測試集計算得出推廣誤差(代價函數的值)
- 訓練誤差表示為:
交叉驗證誤差(通過交叉驗證資料集得到的)表示為:
測試誤差
診斷方差和偏差Diagnosing Bias vs. Variance
如果一個算法的運作結果不是很理想,隻有兩種情況:要麼偏差過大,要麼方差過大。換句話就是說,要麼出現欠拟合,要麼出現過拟合。
通過訓練集和交叉驗證集的代價函數誤差和多項式的次數繪制在同張圖中:
1. 高偏差階段
交叉驗證集和訓練集的代價函數誤差都是很大,近似相等;
2. 高方差階段
交叉驗證集的誤差遠大于訓練集的誤差,訓練集的誤差很低
正則化和偏差/方差Regularization and Bias_Variance
正則化基礎
正則化技術主要是為了解決過拟合的問題。過拟合指的是:對樣本資料具有很好的判斷能力,但是對新的資料預測能力很差。
- 第一個模型是一個線性模型,欠拟合,不能很好地适應我們的訓練集
- 第三個模型是一個四次方的模型,過于強調拟合原始資料,而丢失了算法的本質:預測新資料
- 中間的模型似乎最合适
栗子
假設我們需要對下圖中的多項式進行拟合,需要正則化項
- 當λ很大的時候,出現高偏差,假設hθ(x)是一條直線
- 當λ很小約為0的時候,出現高方差
如果是多項式拟合,x的次數越高,拟合的效果越好,但是相應的預測能力就可能變差。對于過拟合的處理:
- 丢棄一些不能正确預測的特征。可以是手工選擇保留哪些特征,或者使用一些模型選擇的算法,例如PCA
- 正則化。保留所有的特征,但是減少參數的大小(magnitude)
加入正則化參數
在模型hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4中,主要是高次項産生的過拟合問題:
加入正則化參數後能夠防止過拟合問題,其中λ是正則化參數Regularization Parameter :
Attention:一般地,不對θ0進行懲罰;加上正則化參數實際上是對參數θ進行懲罰。經過正則化處理後的模型和原模型的對比:
- 如果λ過大,所有的參數最小化,模型變成了hθ(x)=θ0,造成了過拟合
參數λ的選擇
- 使用訓練集訓練出多個不同程度的正則化模型
- 用多個模型分别對交叉驗證集計算的出交叉驗證誤差
- 選擇得出交叉驗證誤差最小的模型
- 運用步驟3中選出模型對測試集計算得出推廣誤差
學習曲線 Learning Curves
使用學習曲線來判斷某一個學習算法是否處于偏差、方差問題。
學習曲線是将訓練集誤差和交叉驗證集誤差作為訓練集樣本數量mm的函數繪制的圖表
訓練樣本m和代價函數J的關系
從下圖1中看出結果
- 樣本越少,訓練集誤差很小,交叉驗證集誤差很大
- 當樣本逐漸增加的時候,二者的差别逐漸減小
說明:在高偏差、欠拟合的情況下,增加樣本數量沒效果
在高方差的情況下,增加數量可以提高算法效果
總結
- 獲得更多的訓練樣本——解決高方差
- 嘗試減少特征的數量——解決高方差
- 嘗試獲得更多的特征——解決高偏差
- 嘗試增加多項式特征——解決高偏差
- 嘗試減少正則化程度λ——解決高偏差
- 嘗試增加正則化程度λ——解決高方差
神經網絡的方差和偏差
較小的神經網絡,參數少,容易出現高偏差和欠拟合;
較大的神經網絡,參數多,容易出現高方差和過拟合
通常選擇較大的神經網絡并采用正則化處理會比采用較小的神經網絡效果要好
查準率和查全率
查準率precision:實際和預測同時為正例 / 預測值全部為正例
查全率recall:實際和預測同時為正例 / 實際值全部為正例
查全率和查準率是一對沖突的量,一個高的話,另一個必定低,關系圖如下:
查全率和查準率之間的平衡點,一般是使用F1系數表示
至此,第六周的課程筆記完畢!