Re: [問題] Validation set 到底在做什麼?

看板DataScience作者 (如果狗狗飛上天)時間6年前 (2018/03/26 17:11), 編輯推噓11(1107)
留言18則, 10人參與, 6年前最新討論串1/8 (看更多)
你有三個資料集,train, validation, test train沒啥好說的,餵給機器,讓機器學,生成潛在參數用的 練好之後,怎麼知道表現好不好?拿validation來測試。 如果不好,調整超參數後重新訓練一次,再驗證一次。反覆這個流程 直到在validation的表現滿意為止。但故事至此尚未結束,是的,validation 沒有被機器讀過,所以確實給出的表現可以看作模型對未知資料的表現, 但問題是我們不停在做的事情,就是找出一組超參數,使得模型對於 validation的表現最好,換言之,這個模型是有bias的,它的一切都在 迎合validation,但如果你的validation取得不具代表性怎麼辦?這模型 的泛化能力就不能透過validation來證明。 所以你最終的模型必須要在test上測試才算數。 簡單說,train是拿來訓練潛在參數的,validation是拿來挑選超參數的, 這兩個資料集機器都去迎合過它們,換言之,都"髒掉了",所以我們才需要 test set,它既與潛在參數無關,也與超參數無關,是理想上真正獨立超然的 模型判官。這樣說,你明白了嗎? 至於cross validation,那是另一個很長的故事,我想你應該,也必須花時間 了解,這是機器學習裡面,模型選擇的重要觀念。 ----- Sent from JPTT on my Asus P00C. -- ★人生中最溫暖的夏天是在紐約的冬天 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.66.168.95 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1522055467.A.2A8.html

03/26 18:52, 6年前 , 1F
講得好清楚推推
03/26 18:52, 1F

03/26 20:01, 6年前 , 2F
03/26 20:01, 2F

03/26 21:17, 6年前 , 3F
推 完整 之後收進精華
03/26 21:17, 3F

03/26 21:28, 6年前 , 4F
講得很清楚!
03/26 21:28, 4F

03/26 22:24, 6年前 , 5F
推推 講的簡單明瞭~!
03/26 22:24, 5F

03/26 22:30, 6年前 , 6F
所以每次在validation完之後會根據val的loss調參數
03/26 22:30, 6F

03/26 22:30, 6年前 , 7F
嗎?
03/26 22:30, 7F

03/26 22:56, 6年前 , 8F
已收入精華XD
03/26 22:56, 8F

03/26 22:57, 6年前 , 9F
首先要先明白參數和超參數的差別 假設你現在已經寫好
03/26 22:57, 9F

03/26 22:58, 6年前 , 10F
了一個NN 此時你裡面打算用training data學的
03/26 22:58, 10F

03/26 22:58, 6年前 , 11F
是參數 而另外有一些如epoch, batch size這些
03/26 22:58, 11F

03/26 22:58, 6年前 , 12F
你在訓練前要決定的東西是超參數
03/26 22:58, 12F

03/26 22:59, 6年前 , 13F
而validation能拿來讓你修改你的超參數
03/26 22:59, 13F

03/26 23:01, 6年前 , 14F
其實拿我上面那兩個當超參數是蠻怪的 應該說learning
03/26 23:01, 14F

03/26 23:01, 6年前 , 15F
rate之類的比較好
03/26 23:01, 15F

03/26 23:12, 6年前 , 16F
03/26 23:12, 16F

03/27 02:23, 6年前 , 17F
好文 推
03/27 02:23, 17F

03/28 02:11, 6年前 , 18F
簡單講 能學的叫參數 不能學的叫超參數
03/28 02:11, 18F
文章代碼(AID): #1QkBahAe (DataScience)
討論串 (同標題文章)
文章代碼(AID): #1QkBahAe (DataScience)