吳恩達機器學習筆記(8)——模型評估與機器學習診斷法

一、如何改進一個機器學習算法

假設你已經訓練出一個機器學習算法,但是效果不太好,那麼有以下幾種改進方法:
1、獲得更多的訓練數據
2、選用更少的特徵
3、增加特徵量
4、增加高次項
5、增大或減小正則化參數lambda的值
很多人只是隨機選擇上述方法的一種,即浪費時間又沒有效果。所以接下來會介紹模型的評估及機器學習的診斷法。




二、模型評估(Evaluating a Hypothesis)

1、評估假設:
一個訓練誤差最小的假設有時並不是一個好的假設,而且當特徵過多時,我們很難畫出假設函數來觀察。
有一種標準方法,將訓練數據分成兩部分,第一部分是訓練集,第二部分是測試集,一般是7:3左右。

2、具體步驟:
那麼我們訓練模型的流程可以有如下兩個部分:
(1)使用訓練集來訓練模型參數θ,(最小化代價函數​Jtrain(Θ)​)
(2)使用測試集來計算誤差​Jtest(Θ)​
對於線性迴歸來說,誤差:
在這裏插入圖片描述
對於邏輯迴歸來說,誤差:
在這裏插入圖片描述




三、模型選擇和訓練、驗證、測試集(Model selection and train/validation/test sets)

1、不使用驗證集的模型選擇:
在這裏插入圖片描述
一般的,是選擇J最小的那個模型,但是這樣只能使得模型對於測試集數據的誤差較小,而對於其他數據的泛化效果並不好。因而這種方法並不能很好的驗證誤差。

**
2、使用驗證集(Cross Validation Set)**
爲了解決泛用性問題,我們引入了第三個數據集,交叉驗證集。將其作爲訓練集和驗證集之間的中間層來訓練多項式次數d,然後用測試集進行測試,我們就能得到一個沒有針對測試集“特殊優化”過的誤差。比例爲:訓練集60%,交叉驗證集20%,測試集20%。
在這裏插入圖片描述
三種數據集的誤差如下:
在這裏插入圖片描述




四、診斷偏差與方差(Diagnosing Bias vs. Variance)

在這一節裏,我們要尋找多項式次數d與欠擬合、過擬合之間的關係。
首先,我們需要確認,偏差與方差是否是影響我們取得好結果的問題因素:
高偏差意味着欠擬合,是形容數據分散程度的,對象是單個模型
高方差意味着過擬合,形容數據跟我們期望的中心差得有多遠,對象是多個模型
我們需要找到一個好方法來平衡他們。

那麼我們根據下圖可以量化地判斷過擬合、欠擬合,以及找出參數d的最優解。
在這裏插入圖片描述




五、正則化和偏差、方差(Regularization and Bias/Variance)

這一節,我們要尋找正則化參數λ與偏差、方差的關係。
較大的λ:高偏差(欠擬合)
適中的λ:沒有大問題
較小的λ:高方差(過擬合)
一個大的λ值懲罰了所有θ參數,這極大地簡化了函數曲線,所以會導致欠擬合。

那麼我們根據下圖可以量化地判斷過擬合、欠擬合,以及找出lambda的最優解
在這裏插入圖片描述




六、學習曲線(Learning Curves)

使用學習曲線可以有效的判斷一個學習算法是否有偏差方差或者二者都有。

1、學習曲線的繪製:
在這裏插入圖片描述
繪製出訓練集和交叉驗證集的平均誤差平方和隨着樣本數量m變化而變化的曲線。

**
2、高偏差情況下的學習曲線**
在這裏插入圖片描述
結論:如果一個學習算法有高偏差,增加訓練樣本對改善算法表現無益。

**
3、高方差情況下的學習曲線**
在這裏插入圖片描述
結論:如果一個學習算法有高方差,增加訓練樣本對改善算法有幫助。




七、總結(revisited)

如何調試學習算法
1、獲得更多的訓練數據:修正高方差情況
2、選用更少的特徵:修正高方差
3、增加特徵量:修正高偏差
4、增加高次項:修正高偏差
5、減小正則化參數lambda的值:修正高偏差
6、增大正則化參數lambda的值:修正高方差




八、神經網絡的診斷

在這裏插入圖片描述
一般的,選擇左側較簡單的神經網絡,往往會出現欠擬合問題,計算量小
選擇右側較大的神經網絡結構,有時會出現過擬合問題,計算量大

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章