吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
作者 | Peter
編輯 |?AI有道
系列文章:
吳恩達(dá)《Machine Learning》精煉筆記 1:監(jiān)督學(xué)習(xí)與非監(jiān)督學(xué)習(xí)
吳恩達(dá)《Machine Learning》精煉筆記 2:梯度下降與正規(guī)方程
吳恩達(dá)《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達(dá)《Machine Learning》精煉筆記 4:神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
吳恩達(dá)《Machine Learning》精煉筆記 5:神經(jīng)網(wǎng)絡(luò)
今天帶來第六周課程的筆記:關(guān)于機(jī)器學(xué)習(xí)的建議。內(nèi)容包含:
應(yīng)用機(jī)器學(xué)習(xí)的建議
評(píng)估假設(shè)
模型選擇和交叉驗(yàn)證
方差和偏差診斷
正則化與過擬合問題
應(yīng)用機(jī)器學(xué)習(xí)的建議
當(dāng)我們運(yùn)用訓(xùn)練好了的模型來預(yù)測(cè)未知數(shù)據(jù)的時(shí)候發(fā)現(xiàn)有較大的誤差,我們下一步可以做什么?
獲得更多的訓(xùn)練樣本
嘗試減少特征的數(shù)量
嘗試獲得更多的特征
嘗試增加多項(xiàng)式特征
嘗試減少正則化程度λ
嘗試增加正則化程度λ
評(píng)估假設(shè)Evaluating a Hypothesis
當(dāng)學(xué)習(xí)的算法時(shí)候,考慮的是如何選擇參數(shù)來使得訓(xùn)練誤差最小化。在模型建立的過程中很容易遇到過擬合的問題,那么如何評(píng)估模型是否過擬合呢?
為了檢驗(yàn)算法是否過擬合,將數(shù)據(jù)集分成訓(xùn)練集和測(cè)試集,通常是7:3的比例。關(guān)鍵點(diǎn)是訓(xùn)練集和測(cè)試集均要含有各種類型的數(shù)據(jù),通常我們要對(duì)數(shù)據(jù)進(jìn)行“洗牌”,然后再分成訓(xùn)練集和測(cè)試集。
當(dāng)我們?cè)谟?xùn)練集上得到我們的學(xué)習(xí)模型之后,就需要使用測(cè)試集合來檢驗(yàn)該模型,有兩種不同的方法:
線性回歸模型:利用測(cè)試數(shù)據(jù)計(jì)算代價(jià)函數(shù)J
邏輯回歸模型:
先利用測(cè)試數(shù)據(jù)計(jì)算代價(jià)函數(shù)Jtest(θ)
在針對(duì)每個(gè)測(cè)試集樣本計(jì)算誤分類的比率,再求平均值
模型選擇和交叉驗(yàn)證
交叉驗(yàn)證
什么是交叉驗(yàn)證?
交叉驗(yàn)證集合指的是:使用60%的數(shù)據(jù)作為訓(xùn)練集,使用20%的數(shù)據(jù)作為交叉驗(yàn)證集,使用20%的數(shù)據(jù)作為測(cè)試集
模型選擇
使用訓(xùn)練集訓(xùn)練出10個(gè)模型
用10個(gè)模型分別對(duì)交叉驗(yàn)證集計(jì)算得出交(代價(jià)函數(shù)的值)
選取代價(jià)函數(shù)值最小的模型
用上面步驟中選出的模型,對(duì)測(cè)試集計(jì)算得出推廣誤差(代價(jià)函數(shù)的值)
訓(xùn)練誤差表示為:
交叉驗(yàn)證誤差(通過交叉驗(yàn)證數(shù)據(jù)集得到的)表示為:
測(cè)試誤差
診斷方差和偏差Diagnosing Bias vs. Variance
如果一個(gè)算法的運(yùn)行結(jié)果不是很理想,只有兩種情況:要么偏差過大,要么方差過大。換句話就是說,要么出現(xiàn)欠擬合,要么出現(xiàn)過擬合。
通過訓(xùn)練集和交叉驗(yàn)證集的代價(jià)函數(shù)誤差和多項(xiàng)式的次數(shù)繪制在同張圖中:
1. 高偏差階段
交叉驗(yàn)證集和訓(xùn)練集的代價(jià)函數(shù)誤差都是很大,近似相等;
2. 高方差階段
交叉驗(yàn)證集的誤差遠(yuǎn)大于訓(xùn)練集的誤差,訓(xùn)練集的誤差很低
正則化和偏差/方差Regularization and Bias_Variance
正則化基礎(chǔ)
正則化技術(shù)主要是為了解決過擬合的問題。過擬合指的是:對(duì)樣本數(shù)據(jù)具有很好的判斷能力,但是對(duì)新的數(shù)據(jù)預(yù)測(cè)能力很差。
第一個(gè)模型是一個(gè)線性模型,欠擬合,不能很好地適應(yīng)我們的訓(xùn)練集
第三個(gè)模型是一個(gè)四次方的模型,過于強(qiáng)調(diào)擬合原始數(shù)據(jù),而丟失了算法的本質(zhì):預(yù)測(cè)新數(shù)據(jù)
中間的模型似乎最合適
栗子
假設(shè)我們需要對(duì)下圖中的多項(xiàng)式進(jìn)行擬合,需要正則化項(xiàng)
當(dāng)λ很大的時(shí)候,出現(xiàn)高偏差,假設(shè)hθ(x)是一條直線
當(dāng)λ很小約為0的時(shí)候,出現(xiàn)高方差
如果是多項(xiàng)式擬合,x的次數(shù)越高,擬合的效果越好,但是相應(yīng)的預(yù)測(cè)能力就可能變差。對(duì)于過擬合的處理:
丟棄一些不能正確預(yù)測(cè)的特征。可以是手工選擇保留哪些特征,或者使用一些模型選擇的算法,例如PCA
正則化。保留所有的特征,但是減少參數(shù)的大小(magnitude)
加入正則化參數(shù)
在模型hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4中,主要是高次項(xiàng)產(chǎn)生的過擬合問題:
加入正則化參數(shù)后能夠防止過擬合問題,其中λ是正則化參數(shù)Regularization Parameter :
Attention:一般地,不對(duì)θ0進(jìn)行懲罰;加上正則化參數(shù)實(shí)際上是對(duì)參數(shù)θ進(jìn)行懲罰。經(jīng)過正則化處理后的模型和原模型的對(duì)比:
如果λ過大,所有的參數(shù)最小化,模型變成了hθ(x)=θ0,造成了過擬合
參數(shù)λ的選擇
使用訓(xùn)練集訓(xùn)練出多個(gè)不同程度的正則化模型
用多個(gè)模型分別對(duì)交叉驗(yàn)證集計(jì)算的出交叉驗(yàn)證誤差
選擇得出交叉驗(yàn)證誤差最小的模型
運(yùn)用步驟3中選出模型對(duì)測(cè)試集計(jì)算得出推廣誤差
學(xué)習(xí)曲線 Learning Curves
使用學(xué)習(xí)曲線來判斷某一個(gè)學(xué)習(xí)算法是否處于偏差、方差問題。
學(xué)習(xí)曲線是將訓(xùn)練集誤差和交叉驗(yàn)證集誤差作為訓(xùn)練集樣本數(shù)量mm的函數(shù)繪制的圖表
訓(xùn)練樣本m和代價(jià)函數(shù)J的關(guān)系
從下圖1中看出結(jié)果
樣本越少,訓(xùn)練集誤差很小,交叉驗(yàn)證集誤差很大
當(dāng)樣本逐漸增加的時(shí)候,二者的差別逐漸減小
說明:在高偏差、欠擬合的情況下,增加樣本數(shù)量沒效果
在高方差的情況下,增加數(shù)量可以提高算法效果
總結(jié)
獲得更多的訓(xùn)練樣本——解決高方差
嘗試減少特征的數(shù)量——解決高方差
嘗試獲得更多的特征——解決高偏差
嘗試增加多項(xiàng)式特征——解決高偏差
嘗試減少正則化程度λ——解決高偏差
嘗試增加正則化程度λ——解決高方差
神經(jīng)網(wǎng)絡(luò)的方差和偏差
較小的神經(jīng)網(wǎng)絡(luò),參數(shù)少,容易出現(xiàn)高偏差和欠擬合;
較大的神經(jīng)網(wǎng)絡(luò),參數(shù)多,容易出現(xiàn)高方差和過擬合
通常選擇較大的神經(jīng)網(wǎng)絡(luò)并采用正則化處理會(huì)比采用較小的神經(jīng)網(wǎng)絡(luò)效果要好
查準(zhǔn)率和查全率
查準(zhǔn)率precision:實(shí)際和預(yù)測(cè)同時(shí)為正例 / 預(yù)測(cè)值全部為正例
查全率recall:實(shí)際和預(yù)測(cè)同時(shí)為正例 / 實(shí)際值全部為正例
查全率和查準(zhǔn)率是一對(duì)矛盾的量,一個(gè)高的話,另一個(gè)必定低,關(guān)系圖如下:
查全率和查準(zhǔn)率之間的平衡點(diǎn),一般是使用F1系數(shù)表示
至此,第六周的課程筆記完畢!
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
干貨 | 公眾號(hào)歷史文章精選
我的深度學(xué)習(xí)入門路線
我的機(jī)器學(xué)習(xí)入門路線圖
重磅!
AI有道年度技術(shù)文章電子版PDF來啦!
掃描下方二維碼,添加?AI有道小助手微信,可申請(qǐng)入群,并獲得2020完整技術(shù)文章合集PDF(一定要備注:入群?+ 地點(diǎn) + 學(xué)校/公司。例如:入群+上海+復(fù)旦。?
長(zhǎng)按掃碼,申請(qǐng)入群
(添加人數(shù)較多,請(qǐng)耐心等待)
感謝你的分享,點(diǎn)贊,在看三連↓
總結(jié)
以上是生活随笔為你收集整理的吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用VC++实现console程序显示彩色
- 下一篇: 吴恩达《Machine Learning