吳恩達《Machine Learning》精煉筆記 6:關於機器學習的建議

紅色石頭發表於2021-01-16

系列文章:

吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習

吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程

吳恩達《Machine Learning》精煉筆記 3:迴歸問題和正則化

吳恩達《Machine Learning》精煉筆記 4:神經網路基礎

吳恩達《Machine Learning》精煉筆記 5:神經網路

今天帶來第六週課程的筆記:關於機器學習的建議。內容包含:

  • 應用機器學習的建議
  • 評估假設
  • 模型選擇和交叉驗證
  • 方差和偏差診斷
  • 正則化與過擬合問題

應用機器學習的建議

當我們運用訓練好了的模型來預測未知資料的時候發現有較大的誤差,我們下一步可以做什麼?

  • 獲得更多的訓練樣本
  • 嘗試減少特徵的數量
  • 嘗試獲得更多的特徵
  • 嘗試增加多項式特徵
  • 嘗試減少正則化程度λ
  • 嘗試增加正則化程度λ

評估假設Evaluating a Hypothesis

當學習的演算法時候,考慮的是如何選擇引數來使得訓練誤差最小化。在模型建立的過程中很容易遇到過擬合的問題,那麼如何評估模型是否過擬合呢?

為了檢驗演算法是否過擬合,將資料集分成訓練集和測試集,通常是7:3的比例。關鍵點是訓練集和測試集均要含有各種型別的資料,通常我們要對資料進行“洗牌”,然後再分成訓練集和測試集。

當我們在訓練集上得到我們的學習模型之後,就需要使用測試集合來檢驗該模型,有兩種不同的方法:

1.線性迴歸模型:利用測試資料計算代價函式J
2.邏輯迴歸模型:

  • 先利用測試資料計算代價函式Jtest(θ)
  • 在針對每個測試集樣本計算誤分類的比率,再求平均值

模型選擇和交叉驗證

交叉驗證

什麼是交叉驗證?

交叉驗證集合指的是:使用60%的資料作為訓練集,使用20%的資料作為交叉驗證集,使用20%的資料作為測試集

模型選擇

  • 使用訓練集訓練出10個模型
  • 用10個模型分別對交叉驗證集計算得出交(代價函式的值)
  • 選取代價函式值最小的模型
  • 用上面步驟中選出的模型,對測試集計算得出推廣誤差(代價函式的值)
  • 訓練誤差表示為:

交叉驗證誤差(通過交叉驗證資料集得到的)表示為:

測試誤差

診斷方差和偏差Diagnosing Bias vs. Variance

如果一個演算法的執行結果不是很理想,只有兩種情況:要麼偏差過大,要麼方差過大。換句話就是說,要麼出現欠擬合,要麼出現過擬合。

通過訓練集和交叉驗證集的代價函式誤差和多項式的次數繪製在同張圖中:

  1. 高偏差階段

交叉驗證集和訓練集的代價函式誤差都是很大,近似相等;

  1. 高方差階段

交叉驗證集的誤差遠大於訓練集的誤差,訓練集的誤差很低

正則化和偏差/方差Regularization and Bias_Variance

正則化基礎

正則化技術主要是為了解決過擬合的問題。過擬合指的是:對樣本資料具有很好的判斷能力,但是對新的資料預測能力很差。

  • 第一個模型是一個線性模型,欠擬合,不能很好地適應我們的訓練集
  • 第三個模型是一個四次方的模型,過於強調擬合原始資料,而丟失了演算法的本質:預測新資料
  • 中間的模型似乎最合適

栗子

假設我們需要對下圖中的多項式進行擬合,需要正則化項

  • 當λ很大的時候,出現高偏差,假設hθ(x)是一條直線
  • 當λ很小約為0的時候,出現高方差

如果是多項式擬合,x的次數越高,擬合的效果越好,但是相應的預測能力就可能變差。對於過擬合的處理:

1.丟棄一些不能正確預測的特徵。可以是手工選擇保留哪些特徵,或者使用一些模型選擇的演算法,例如PCA
2.正則化。保留所有的特徵,但是減少引數的大小(magnitude

加入正則化引數

在模型hθ(x)=θ0+θ1×1+θ2×2+θ3×3+θ4×4中,主要是高次項產生的過擬合問題:

加入正則化引數後能夠防止過擬合問題,其中λ是正則化引數Regularization Parameter :

Attention:一般地,不對θ0進行懲罰;加上正則化引數實際上是對引數θ進行懲罰。經過正則化處理後的模型和原模型的對比:

如果λ過大,所有的引數最小化,模型變成了hθ(x)=θ0,造成了過擬合

引數λ的選擇

1.使用訓練集訓練出多個不同程度的正則化模型
2.用多個模型分別對交叉驗證集計算的出交叉驗證誤差
3.選擇得出交叉驗證誤差最小的模型
4.運用步驟3中選出模型對測試集計算得出推廣誤差

學習曲線 Learning Curves

使用學習曲線來判斷某一個學習演算法是否處於偏差、方差問題。
學習曲線是將訓練集誤差和交叉驗證集誤差作為訓練集樣本數量mm的函式繪製的圖表

訓練樣本m和代價函式J的關係

從下圖1中看出結果

  • 樣本越少,訓練集誤差很小,交叉驗證集誤差很大
  • 當樣本逐漸增加的時候,二者的差別逐漸減小

說明:在高偏差、欠擬合的情況下,增加樣本數量沒效果

在高方差的情況下,增加數量可以提高演算法效果

總結

1.獲得更多的訓練樣本——解決高方差
2.嘗試減少特徵的數量——解決高方差
3.嘗試獲得更多的特徵——解決高偏差
4.嘗試增加多項式特徵——解決高偏差
5.嘗試減少正則化程度λ——解決高偏差
6.嘗試增加正則化程度λ——解決高方差

神經網路的方差和偏差

較小的神經網路,引數少,容易出現高偏差和欠擬合;

較大的神經網路,引數多,容易出現高方差和過擬合

通常選擇較大的神經網路並採用正則化處理會比採用較小的神經網路效果要好

查準率和查全率

查準率precision:實際和預測同時為正例 / 預測值全部為正例

查全率recall:實際和預測同時為正例 / 實際值全部為正例

查全率和查準率是一對矛盾的量,一個高的話,另一個必定低,關係圖如下:

查全率和查準率之間的平衡點,一般是使用F1係數表示

至此,第六週的課程筆記完畢!


本文首發於公眾號:AI有道(ID: redstonewill),歡迎關注!

相關文章