斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning...
我們將學習如何系統地提升機器學習算法,告訴你學習算法何時做得不好,并描述如何'調試'你的學習算法和提高其性能的“最佳實踐”。要優化機器學習算法,需要先了解可以在哪里做最大的改進。 我們將討論如何理解具有多個部分的機器學習系統的性能,以及如何處理偏斜數據。
Evaluating a Hypothesis
設想當你訓練的模型對預測數據有很大偏差的時候,接下來你會選擇怎么做?
這個需要花時間去實現,但是對你的幫助也會很大,使你不盲目的做一些決定來提升算法,而是直觀地看出哪些是對提升算法是有效的。
我們將數據分為兩個集合,Training Set(70%),Test set(30%)
算法評估過程如下:
1.從Training Set學習參數(通過最小化誤差J(theta)實現);
2.計算測試誤差J(test).
下面是線性回歸和分類問題的誤差計算方式:
Model Selection and Train/Validation/Test Sets
?從多個假設中選擇一個訓練誤差最小的,只能說明它對Training Set有很好的擬合效果,它也可能是Overfit,然后導致Prediction很差。
所以我們下面將數據集分為3個:
?
這里以之前的房價預測作為例子。
每種誤差類型的計算方法如下:
?模型選擇方法:
1.使用Training Set 最小化 Jtrain(theta)學習得到參數theta;
2.使用訓練得到的參數,在Cross Validation Set上計算誤差,找到使Jcv(theta)最小的模型,作為訓練的最終模型;
3.在訓練出的模型上使用test Set計算泛化誤差,評價算法好壞。
Diagnosing Bias vs. Variance
?
在這之前我們都已經討論過關于underfit和overfit了。那么當你的模型結果不理想時,怎么判斷到底是出現了哪種情況呢。
High Bias(underfit):訓練誤差Jtrain和交叉驗證Jcv都很高,Jcv~Jtrain
High Variance(overfit):Jtain很小,Jcv很大且>>Jtrain.
?Regularization and Bias/Variance
下面講解如何選擇regularization parameter避免underfit和overfit。
這里除了我們的objective function使用lambda參數外,其他的Jtrain、Jcv和Jtest都不使用lambda進行計算,計算公式如上面。
選擇過程:
1.列出所有可能的lambda取值,老師建議每次增加2倍的取值。
2.建立假設模型,h(theta)。
3.遍歷所有的lambda,通過minJ(theta)學習參數。
4.在cv集合使用訓練的參數theta計算誤差Jcv,選擇使Jcv最小的theta;
5.用學習到的theta參數,在test set上測試泛化誤差。
下面是Jcv和Jtrain關于lambda的函數圖象。注意:我們只是在objective funtion J(theta)中使用了lambda,而非Jtrain和Jcv。
可以看出:隨著lambda增大,Jtrain是單調增大的;而Jcv先是減小到一個拐點,然后增大。
而我們需要算法有一個小的Jcv,這里就有一個“just right”,也就是那個Jcv的最小值點,就是我們需要選擇的lambda。
Learning Curves
以error和training set size作函數圖象,作為learning cruvers。
下面是算法處于高偏差(underfit)的情況。
?
判斷模型處于High Bias:
樣本少:Jtrain低,Jcv高;
樣本多:Jtrain、Jcv都高,且Jtrain ~Jcv
若算法處于High bias,增加更多的訓練樣本對模型提高不會有太大幫助。
下面是算法處于High variance(overfit)的情況
算法處于High variance:
樣本少:Jtrain 低,Jcv高;
樣本多:Jtrain升高且會一直升高,Jcv降低且一直降低,Jtrain < Jcv且大小明顯。
若算法處于high variance,增加訓練樣本會有幫助。
Deciding What to Do Next Revisited
回顧一下本課開頭提出的問題,如何提高你的算法?經過上面的討論,我們可以得到以下結論:
關于神經網絡的underfit和overfit及其解決。
以上所談對建立一個好的機器學習算法至關重要,而且可以節約不少時間,少走彎路。
??
轉載于:https://www.cnblogs.com/yangmang/p/6540059.html
總結
以上是生活随笔為你收集整理的斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础第19天
- 下一篇: Problem A: 编写函数:三个数的