【CV】吴恩达机器学习课程笔记第10章
生活随笔
收集整理的這篇文章主要介紹了
【CV】吴恩达机器学习课程笔记第10章
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本系列文章如果沒有特殊說明,正文內容均解釋的是文字上方的圖片
機器學習 | Coursera
吳恩達機器學習系列課程_bilibili
目錄
- 10 應用機器學習的建議
- 10-1 決定下一步做什么
- 10-2 評估假設函數
- 10-3 模型選擇和訓練、驗證、測試集
- 10-4 判斷偏差與方差
- 10-5 正則化和偏差、方差
- 10-6 學習曲線
- 10-7 決定接下來做什么
10 應用機器學習的建議
10-1 決定下一步做什么
10-2 評估假設函數
隨機選擇數據集中的70%作為訓練集,30%作為測試集,將數據集分為兩個部分
- 首先根據訓練集計算出參數Θ\ThetaΘ
- 把參數Θ\ThetaΘ代入測試集計算代價函數的值(這里是線性回歸的代價函數,邏輯回歸的代價函數同理):
Jtest(θ)=12mtest∑i=1mtest(hθ(xtest(i))?ytest(i))2J_{test}(θ)=\frac{1}{2m_{test}}\sum_{i=1}^{m_{test}}(h_θ(x^{(i)}_{test})-y^{(i)}_{test})^2Jtest?(θ)=2mtest?1?i=1∑mtest??(hθ?(xtest(i)?)?ytest(i)?)2
邏輯分類中有另一種形式的測試度量,稱作錯誤分類或0/1錯誤分類,計算過程如上圖
10-3 模型選擇和訓練、驗證、測試集
隨機選擇數據集中的60%作為訓練集(Training Set),20%作為交叉驗證集(驗證集,Cross Validation Set,cv),20%作為測試集(Test Set),將數據集分為三個部分
上圖,計算訓練誤差、驗證誤差和測試誤差
用ddd來表示假定函數的多項式的最高次冪
- 先用訓練集求每一個假定函數的代價函數J(Θ)J(\Theta)J(Θ)取到最小值時Θ\ThetaΘ的值,再把這個求得的Θ\ThetaΘ代入交叉驗證集求得Jcv(Θ)J_{cv}(\Theta)Jcv?(Θ),對每一個假定函數進行以上步驟的計算,得到d=1,...,10d=1,...,10d=1,...,10的10個代價函數的值,取最小的那個,這里假定是d=4d=4d=4,再使用d=4d=4d=4時的Θ\ThetaΘ代入測試集得到泛化誤差
10-4 判斷偏差與方差
上圖坐標系yyy軸為誤差,xxx軸為ddd(多項式最高次冪)的大小
以上圖為例,
- 當ddd過小時,出現欠擬合(underfit),偏差(bias)過大,此時的訓練集誤差Jtrain(Θ)J_{train}(\Theta)Jtrain?(Θ)很大,并且Jcv(Θ)≈Jtrain(Θ)J_{cv}(\Theta)\approx J_{train}(\Theta)Jcv?(Θ)≈Jtrain?(Θ)
- 當ddd過大時,出現過擬合(overfit),方差(variance)過大,此時的訓練集誤差Jtrain(Θ)J_{train}(\Theta)Jtrain?(Θ)很小,并且Jcv(Θ)>>Jtrain(Θ)J_{cv}(\Theta)>> J_{train}(\Theta)Jcv?(Θ)>>Jtrain?(Θ)
10-5 正則化和偏差、方差
- 若正則化參數λ\lambdaλ過大,會導致欠擬合,高偏差,并且參數θ1≈0,θ2≈0,...\theta_1\approx 0,\theta_2\approx 0,...θ1?≈0,θ2?≈0,...,假定函數的結果hθ(x)≈θ0h_{\theta}(x)\approx \theta_0hθ?(x)≈θ0?,如上圖最左側坐標系
- 若正則化參數λ\lambdaλ過小,會導致過擬合,高方差,如上圖最右側坐標系
使用不帶正則化項的Jtrain(Θ)、Jcv(Θ)、Jtest(Θ)J_{train}(\Theta)、J_{cv}(\Theta)、J_{test}(\Theta)Jtrain?(Θ)、Jcv?(Θ)、Jtest?(Θ)
J(Θ)J(\Theta)J(Θ)取下圖中的帶正則化項的代價函數
- 首先取多種λ\lambdaλ的情況,這里從0,0.01開始,下一個λ\lambdaλ是上一個的兩倍,一直取到λ=10.24\lambda=10.24λ=10.24,由于此時小數部分對結果影響不大,所以也可以直接取λ=10\lambda=10λ=10
- 將每一種情況的λ\lambdaλ代入帶正則化項的代價函數J(Θ)J(\Theta)J(Θ)中,這里共能得到12個不同的Θ\ThetaΘ值
- 再把這12個Θ\ThetaΘ代入到交叉驗證集代價函數Jcv(Θ)J_{cv}(\Theta)Jcv?(Θ)中,注意這里的Jcv(Θ)J_{cv}(\Theta)Jcv?(Θ)是不帶正則化項的,最后得到12個不同的Jcv(Θ)J_{cv}(\Theta)Jcv?(Θ)值
- 取最小的那個Jcv(Θ)J_{cv}(\Theta)Jcv?(Θ)值對應的λ\lambdaλ(這里認為第5個λ\lambdaλ是最合適的)代入到測試集的代價函數Jtest(Θ)J_{test}(\Theta)Jtest?(Θ)中,計算泛化誤差,注意這里的Jtest(Θ)J_{test}(\Theta)Jtest?(Θ)也是不帶正則化項的
10-6 學習曲線
如上圖是高偏差/欠擬合的情形
此時增加數據集數量對于誤差的縮小沒有明顯幫助
如上圖是高方差/過擬合的情形
此時交叉驗證集的曲線和訓練集的曲線中間相差較大,所以增加數據集數量對于減小誤差是有幫助的
10-7 決定接下來做什么
解決高偏差或高方差的一些方法如下圖:
如上圖
- 在一個小型的神經網絡中,容易出現欠擬合現象,但它的好處是計算量較小
- 在一個大型的神經網絡中,容易出現過擬合現象,可以通過正則化來避免,它的好處是效果較好,但是計算量較大
總結
以上是生活随笔為你收集整理的【CV】吴恩达机器学习课程笔记第10章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CV】吴恩达机器学习课程笔记第11章
- 下一篇: 【杂】LaTeX中一些符号的输入方法