標籤:recipe 高度 爬取 step 大數 cat 效率 學習 out
應用ML是一個高度迭代的過程
Idea->Code->Experment->...
去不斷地調整超參數。
Train/Dev/Test sets
通常將資料集劃分為Train/Dev/Test集。
以前的ML問題:資料規模在w級,通常70/30劃分Train/Test集或者60/20/20比例劃分。
現在的大資料時代:資料規模在百w級,趨勢是Dev/Test集的比例減小,因為Dev集只需要大到足夠判斷不同的模型的優劣就可以了,Test集類似。如有100w的資料集,98/1/1的比例是一種較合理的劃分。
經驗:
- 確保Dev/Test集來自同一個分布,這樣有助於演算法進步的效率。
- 訓練集則可以採取網頁爬取等方式以獲得更大量的資料。
- 沒有測試集也是可以的,只用Dev集來調整。
Bias/Variance
可以通過Train set error和Dev set error來判斷模型是否存在high bias/variance的問題。
比如,假設假設bayes error約為0%,即人類可以幾乎完全準確識別,並且Train和Dev集來自同一個分布。
Train set error |
Dev set error |
結果 |
1% |
11% |
high variance |
15% |
16 |
high bias |
15% |
30% |
high variance & high bias |
0.5% |
1% |
low variance & low bias |
Some Basic recipe(基本準則)
STEP1 High bias? --> 更大的網路;訓練更長時間;(其他NN架構)
STEP2 High variance? --> 更多的資料;正則化;(其他NN架構)
在深度學習時代,不需要再過多考慮bias 和 variance的權衡,如果合理的正則化,採用更大的網路在降低bias的同時幾乎不會增加variance,如果有足夠大的網路,獲得更多的資料在降低variance時幾乎不會增加Bias,這也是深度學習在監督學習領域十分有效地原因之一。
吳恩達深度學習專項課程3學習筆記/week1/Setting up ML Application