吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
作者 | Peter
編輯 |?AI有道
系列文章:
吳恩達《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系數表示
至此,第六周的課程筆記完畢!
推薦閱讀
(點擊標題可跳轉閱讀)
干貨 | 公眾號歷史文章精選
我的深度學習入門路線
我的機器學習入門路線圖
重磅!
AI有道年度技術文章電子版PDF來啦!
掃描下方二維碼,添加?AI有道小助手微信,可申請入群,并獲得2020完整技術文章合集PDF(一定要備注:入群?+ 地點 + 學校/公司。例如:入群+上海+復旦。?
長按掃碼,申請入群
(添加人數較多,請耐心等待)
感謝你的分享,點贊,在看三連↓
總結
以上是生活随笔為你收集整理的吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用VC++实现console程序显示彩色
- 下一篇: 吴恩达《Machine Learning