关于机器学习的训练数据、验证数据和测试数据的形象比喻
機(jī)器學(xué)習(xí)最明顯的一個特點(diǎn)是需要大量的數(shù)據(jù)。特別對監(jiān)督學(xué)習(xí)來說,就是需要大量的帶標(biāo)簽數(shù)據(jù)(labeled data)。
很多入門的朋友很快就會遇見模型訓(xùn)練和測試這兩個階段,進(jìn)而也就了解到帶標(biāo)簽數(shù)據(jù)是要被劃分成兩個部分的:訓(xùn)練集 (training set) 與測試集 (test set)。這兩個概念也很直觀,大部分朋友非??炀湍芙邮?。
可是到后面,在我們需要為機(jī)器學(xué)習(xí)模型調(diào)參的時候,半路殺出來了個交叉驗(yàn)證 (cross validation) 階段,這個對應(yīng)的數(shù)據(jù)集也有個名字,叫做驗(yàn)證集 (validation set)。
據(jù)我觀察,很多入門機(jī)器學(xué)習(xí)的朋友在這個時候就會感到一頭霧水,并且非常困惑:咋又冒出來了個驗(yàn)證集啊?我們不是有個測試集了嗎?直接在那上面做實(shí)驗(yàn)不就好了么?又劃分多一個數(shù)據(jù)集,那就使得能用于訓(xùn)練和測試的數(shù)據(jù)都變少了,驗(yàn)證集是那方神圣啊?...
這里我給你們來個非常形象的類比!別眨眼!
訓(xùn)練集 → 題解大全
驗(yàn)證集 → 模擬考試
測試集 → 高考!
是不是非常形象易懂呢?(得意臉)
呃?搞不懂為什么是這樣的對應(yīng)關(guān)系?別急我還沒說完呢。
機(jī)器學(xué)習(xí)算法是個笨學(xué)生,他沒法直接從人類教師那里學(xué)會抽象的概念,于是唯一有效的策略就是天賦不足勤來補(bǔ):玩命刷題! 想想看帶標(biāo)簽的訓(xùn)練數(shù)據(jù),是不是很像你平時做的習(xí)題冊呢? 數(shù)據(jù)本身是題目,標(biāo)簽是正確答案。所以機(jī)器學(xué)習(xí)算法能夠通過大量做題來學(xué)會抽象概念(但是這個傻孩子實(shí)際上只學(xué)會了怎么解答與特定抽象概念相關(guān)的問題)。
你說你學(xué)會了東西,但空口無憑啊,你得通過考試來證明自己!于是就有了測試集。測試集相當(dāng)于考試的原因是,你只能看到題目(數(shù)據(jù))而無法得知答案(標(biāo)簽)。你只能在交卷之后等老師給你打分。
于是就有朋友發(fā)問了:“那我一遍一遍考試來證明自己不就好?我大學(xué)掛科補(bǔ)考還少么?”。首先心疼你一秒鐘。然后請你思考這個問題,如果那場考試是高考怎么辦?你耗得起嗎?
所以我們需要模擬考試,也就是驗(yàn)證集。我們可以獲得驗(yàn)證集的標(biāo)簽,但是我們假裝得不到,讓自己以考試的心態(tài)去面對,過后也就能通過自己對答案來了解自己到底學(xué)會了多少,而這種幾乎沒有成本的考試我們想進(jìn)行多少次都行!這就是驗(yàn)證集存在的意義!你的模型只能在測試集上面跑一次,一考定終身!
我們需要驗(yàn)證集的真正原因是:防止機(jī)器學(xué)習(xí)算法作弊!我們訓(xùn)練一個機(jī)器學(xué)習(xí)模型不是為了讓它在那有限的帶標(biāo)簽數(shù)據(jù) high 個夠,而是要將模型應(yīng)用于真實(shí)世界。絕大多數(shù)情況下,我們無法直接從真實(shí)世界獲得答案,我們能收集到的數(shù)據(jù)是沒有標(biāo)簽的裸數(shù)據(jù),我們需要高效準(zhǔn)確的機(jī)器學(xué)習(xí)模型為我們提供答案。不能直接使用測試集不是因?yàn)槲覀冐?fù)擔(dān)不起在測試集上跑模型的成本(事實(shí)上幾乎為 0),而是因?yàn)槲覀儾荒苄孤稖y試集的信息。試想一下,假如你搞到了真正的高考題和答案,你一遍又一遍地去做這套題目,會發(fā)生什么?也許你會成為高考狀元,可是你真的學(xué)會這些知識了嗎?你能夠再去做一套高考題并且拿高分嗎?你能夠去當(dāng)家教向?qū)W弟學(xué)妹傳授你的知識和解答他們的問題嗎? 偷窺到了測試集的機(jī)器學(xué)習(xí)模型就是廢品,沒有人需要它,它也做不了任何有用的事情。
切記,你的機(jī)器學(xué)習(xí)模型只能在測試集上跑一次,一考定終身!
切記,你的機(jī)器學(xué)習(xí)模型只能在測試集上跑一次,一考定終身!
切記,你的機(jī)器學(xué)習(xí)模型只能在測試集上跑一次,一考定終身!
切記,你的機(jī)器學(xué)習(xí)模型只能在測試集上跑一次,一考定終身!
切記,你的機(jī)器學(xué)習(xí)模型只能在測試集上跑一次,一考定終身!
超級重要的事情說五次還嫌少,我得加粗了才行。哦還得加大字號,我怕你近視眼看不見!
都說到這個地步了,順便借這個類比說說過擬合 (overfit) 和欠擬合 (underfit) 的事吧。過擬合的模型是個真正的書呆子,玩命刷題解大全 (Demidovich),但是只記住了所有的習(xí)題和答案,去做模擬考試就直接傻掉了。欠擬合的模型就是個不聽課還懶惰的學(xué)渣,連習(xí)題冊上的題目都搞不懂,別說模擬考試了。高考?呵呵呵。
原文地址
https://mp.weixin.qq.com/s?__biz=MjM5ODU3OTIyOA==&mid=2650665183&idx=1&sn=0156b28514ca0ebb79f74c4b90ea009c&chksm=bec1cdac89b644bac4fd0aff308330576e701a4a04d221e1f19a51428aabc3235ef3f84e82f7&mpshare=1&scene=23&srcid=06241lQux9cxYFEOQhSYVfMj#rd
總結(jié)
以上是生活随笔為你收集整理的关于机器学习的训练数据、验证数据和测试数据的形象比喻的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 函数式接口以及Lambda举例
- 下一篇: Google开源的AR/VR开发库Lul