1.6 开发集和测试集的大小-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 1.5 訓練/開發(fā)/測試集劃分 | 回到目錄 | 1.7 什么時候該改變開發(fā)_測試集和指標 |
開發(fā)集和測試集的大小 (Size of Dev and Test Sets)
在上一個視頻中你們知道了你的開發(fā)集和測試集為什么必須來自同一分布,但它們規(guī)模應該多大?在深度學習時代,設立開發(fā)集和測試集的方針也在變化,我們來看看一些最佳做法。
你可能聽說過一條經(jīng)驗法則,在機器學習中,把你取得的全部數(shù)據(jù)用70/30比例分成訓練集和測試集。或者如果你必須設立訓練集、開發(fā)集和測試集,你會這么分60%訓練集,20%開發(fā)集,20%測試集。在機器學習的早期,這樣分是相當合理的,特別是以前的數(shù)據(jù)集大小要小得多。所以如果你總共有100個樣本,這樣70/30或者60/20/20分的經(jīng)驗法則是相當合理的。如果你有幾千個樣本或者有一萬個樣本,這些做法也還是合理的。
但在現(xiàn)代機器學習中,我們更習慣操作規(guī)模大得多的數(shù)據(jù)集,比如說你有1百萬個訓練樣本,這樣分可能更合理,98%作為訓練集,1%開發(fā)集,1%測試集,我們用 DDD 和 TTT 縮寫來表示開發(fā)集和測試集。因為如果你有1百萬個樣本,那么1%就是10,000個樣本,這對于開發(fā)集和測試集來說可能已經(jīng)夠了。所以在現(xiàn)代深度學習時代,有時我們擁有大得多的數(shù)據(jù)集,所以使用小于20%的比例或者小于30%比例的數(shù)據(jù)作為開發(fā)集和測試集也是合理的。而且因為深度學習算法對數(shù)據(jù)的胃口很大,我們可以看到那些有海量數(shù)據(jù)集的問題,有更高比例的數(shù)據(jù)劃分到訓練集里,那么測試集呢?
要記住,測試集的目的是完成系統(tǒng)開發(fā)之后,測試集可以幫你評估投產(chǎn)系統(tǒng)的性能。方針就是,令你的測試集足夠大,能夠以高置信度評估系統(tǒng)整體性能。所以除非你需要對最終投產(chǎn)系統(tǒng)有一個很精確的指標,一般來說測試集不需要上百萬個例子。對于你的應用程序,也許你想,有10,000個例子就能給你足夠的置信度來給出性能指標了,也許100,000個之類的可能就夠了,這數(shù)目可能遠遠小于比如說整體數(shù)據(jù)集的30%,取決于你有多少數(shù)據(jù)。
對于某些應用,你也許不需要對系統(tǒng)性能有置信度很高的評估,也許你只需要訓練集和開發(fā)集。我認為,不單獨分出一個測試集也是可以的。事實上,有時在實踐中有些人會只分成訓練集和測試集,他們實際上在測試集上迭代,所以這里沒有測試集,他們有的是訓練集和開發(fā)集,但沒有測試集。如果你真的在調(diào)試這個集,這個開發(fā)集或這個測試集,這最好稱為開發(fā)集。
不過在機器學習的歷史里,不是每個人都把術語定義分得很清的,有時人們說的開發(fā)集,其實應該看作測試集。但如果你只要有數(shù)據(jù)去訓練,有數(shù)據(jù)去調(diào)試就夠了。你打算不管測試集,直接部署最終系統(tǒng),所以不用太擔心它的實際表現(xiàn),我覺得這也是很好的,就將它們稱為訓練集、開發(fā)集就好。然后說清楚你沒有測試集,這是不是有點不正常?我絕對不建議在搭建系統(tǒng)時省略測試集,因為有個單獨的測試集比較令我安心。因為你可以使用這組不帶偏差的數(shù)據(jù)來測量系統(tǒng)的性能。但如果你的開發(fā)集非常大,這樣你就不會對開發(fā)集過擬合得太厲害,這種情況,只有訓練集和測試集也不是完全不合理的。不過我一般不建議這么做。
總結(jié)一下,在大數(shù)據(jù)時代舊的經(jīng)驗規(guī)則,這個70/30不再適用了。現(xiàn)在流行的是把大量數(shù)據(jù)分到訓練集,然后少量數(shù)據(jù)分到開發(fā)集和測試集,特別是當你有一個非常大的數(shù)據(jù)集時。以前的經(jīng)驗法則其實是為了確保開發(fā)集足夠大,能夠達到它的目的,就是幫你評估不同的想法,然后選出 AAA 還是 BBB 更好。測試集的目的是評估你最終的成本偏差,你只需要設立足夠大的測試集,可以用來這么評估就行了,可能只需要遠遠小于總體數(shù)據(jù)量的30%。
所以我希望本視頻能給你們一點指導和建議,讓你們知道如何在深度學習時代設立開發(fā)和測試集。接下來,有時候在研究機器學習的問題途中,你可能需要更改評估指標,或者改動你的開發(fā)集和測試集,我們會講什么時候需要這樣做。
課程板書
| 1.5 訓練/開發(fā)/測試集劃分 | 回到目錄 | 1.7 什么時候該改變開發(fā)_測試集和指標 |
總結(jié)
以上是生活随笔為你收集整理的1.6 开发集和测试集的大小-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.5 训练/开发/测试集划分-深度学习
- 下一篇: 1.7 开发集和测试集的大小-深度学习第