首先要感謝stanford 大學的adrew ng 老師的課程
6.1 deciding what to try next
1.debug 時出現問題要咋辦呢?
最終結論爲:普遍認爲1,2,6能解決過擬合問題,機遇3,4,5能有解決低擬合問題
機器學習診斷1.可以給出建議使得學習算法更有成效
2.需要時間來完善和嘗試,但總體來說還是節省時間的
3.有時能排除某些不能顯著提升表現的步驟
6.2 evaluating a hypothesis
訓練誤差小的假設並非就是好的假設(可能會導致過擬合),不能泛化到其他實例中去,
so how to evaluate a hypothesis?
這裏就談到了訓練集和檢驗集的問題,此處NG老師用的是七三分(在數挖中有。632自助法及k折交叉驗證 法等)
線性迴歸問題中:從訓練集中學習theta值 (最小化J(theta)),再計算檢驗集中的J(theta)
邏輯迴歸中呢,當然也可以用上條,但另一種辦法是計算分類正確率(用0、1來表示)
6.3 Model Selection and Train/Validation/Test Sets
先看一種model selection just like this,每個模型分別計算出theta的向量,再用J(檢驗集)中最小的即可
上面這種中呢,不幸的是並不足以be a fair estimate of how well my hypothesis generalizes.(NG認爲可能在檢驗集很大的情況下,上述方法纔有可用之處)
爲麼呢,因爲檢驗數據已經參與了模型選擇,再用它來檢驗模型是泛化誤差,純屬搞笑。
將數據分爲三部分,訓練數據,驗證數據(交叉驗證),檢驗數據,那麼經典分法是6:2:2
那麼他認爲較好的辦法在於哪裏呢(說實話,我也覺得挺不錯的)
在上圖中,用訓練數據來得出幾個模型的theta,再用驗證數據選出最小J(test)的那個模型,最後用檢驗數據來檢驗此模型。所以這種方法出來的驗證誤差要小於檢驗誤差的
6.4 diagnosing Bias vs,Variance(偏差與方差)換句話說就是低擬合與過擬合的問題,此節一張圖足以,哈哈
6.5 regularization and Bias/Variance
私以爲略似於前面的模型選擇,好的模型要做選好(即要d 和lamba),且看後面如何組合在一起,
再來一張
6.6 learning curves
前者爲high bias 即overrfit
此爲underfit,最終很相似的境界
在現實中可能曲線並非如此完美 ,但反應了趨勢。當Jcv>=Jtt時,增加訓練集個數還是相當有效的嘛!
6.7 deciding what to do next revisited
第一點:關於調試學習算法的方法及應用,可見第一張圖
第二點:其實覺得應該放在神經網絡中關於選擇隱藏層層數的問題
小型的神經網絡(基於更少的參數,更傾向於低擬合) 但computationally cheaper
而大型較複雜的神經網絡(基於更多的參數,更傾向於過似合,)但computationally expensive,此時可用神一般的lamda
最後ng老師又開心的笑了,陰險地說道,這些東西很多硅谷老油條都不清楚,但現在你們知道了,回家樂去吧,哈哈