作者pipidog (如果狗狗飞上天)
看板DataScience
标题Re: [问题] Validation set 到底在做什麽?
时间Mon Mar 26 17:11:02 2018
你有三个资料集,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://webptt.com/cn.aspx?n=bbs/DataScience/M.1522055467.A.2A8.html
1F:推 championship: 讲得好清楚推推 03/26 18:52
2F:推 ChrisMullin: 推 03/26 20:01
3F:推 st1009: 推 完整 之後收进精华 03/26 21:17
4F:推 woogee: 讲得很清楚! 03/26 21:28
5F:推 bestchiao: 推推 讲的简单明了~! 03/26 22:24
6F:→ ssd860505da: 所以每次在validation完之後会根据val的loss调参数 03/26 22:30
7F:→ ssd860505da: 吗? 03/26 22:30
8F:推 st1009: 已收入精华XD 03/26 22:56
9F:推 goldflower: 首先要先明白参数和超参数的差别 假设你现在已经写好 03/26 22:57
10F:→ goldflower: 了一个NN 此时你里面打算用training data学的 03/26 22:58
11F:→ goldflower: 是参数 而另外有一些如epoch, batch size这些 03/26 22:58
12F:→ goldflower: 你在训练前要决定的东西是超参数 03/26 22:58
13F:→ goldflower: 而validation能拿来让你修改你的超参数 03/26 22:59
14F:推 goldflower: 其实拿我上面那两个当超参数是蛮怪的 应该说learning 03/26 23:01
15F:→ goldflower: rate之类的比较好 03/26 23:01
16F:推 niki25672729: 推 03/26 23:12
17F:推 lucien0410: 好文 推 03/27 02:23
18F:推 brian980466: 简单讲 能学的叫参数 不能学的叫超参数 03/28 02:11