我有一个设计用于玩连接4的神经网络,它可以评估玩家1或玩家2的游戏状态的值。
为了训练它,我让它自己玩n游戏的数量。
我发现1000场比赛比100,000场比赛的结果更好,即使每100场比赛的均方平均值在100,000个时代中不断提高。
(我通过挑战http://riddles.io排名第一的球员来确定这一点)
因此,我得出了过度拟合已经发生的结论。
考虑到自我发挥,你如何成功地测量/确定/估计过度拟合的发生?也就是说,如何确定何时停止自玩?
发布于 2017-12-19 17:12:01
我不太熟悉强化学习,因为我更多的是一个有监督学习的人。话虽如此,我觉得你的选择永远不会比监督学习的选择少。
当这种情况发生时,你就会终止训练。你需要提前停止。
对于有监督的学习,这将通过保持开发集来完成。作为对拥有测试集的模仿。
这正是你所做的。
缺点是对真人的充分发挥是缓慢的。
为了部分抵消这一点,你可以做的不是暂停训练来做这个测试,而是拍摄你的网络的快照,比如说每500次迭代,并作为机器人在一个单独的过程中启动,测试它,并记录分数,同时网络仍在训练中。但是,如果您的收敛速度不是很快,这仍然是适用的。
我假设,由于这个问题如此简单,这是为了学习目的。
在此基础上,你可以伪造真实的人。
Connect4是一款拥有足够小游戏空间的游戏,经典的游戏AI应该能够做到近乎完美。
对100个左右的迭代器运行一个游戏,如果你的相对分数开始下降,你就知道你已经过度拟合了。
你可以做的另一件事是,让它在一开始就不太可能过大。辍学。较小的隐藏层大小。
您还可以增加等效的训练集。而不是纯粹的self play,你可以使用play来对抗其他机器人,甚至可能是使用不同超参数设置的其他版本。
发布于 2018-01-01 19:24:19
与测量/检测何时开始发生过度拟合相比,采取措施防止过度拟合发生要容易得多。有两个想法可以做到这一点:
我不确定它是否会更好地工作,但我只是怀疑它会更好,因为它在后来的出版物中使用,比使用第一个想法的论文效果更好。
参考
1 Silver,D.,Huang,A.,Maddison,C.J.,Guez,A.,Sifre,L.,van den Driessche,G.,Schrittwieser,J.,Antonoglou,I.,Panneershelvam,V.,Lanctot,M.,Dieleman,S.,Grewe,D.,Nham,J.,Kalchbrenner,N.,Sutskever,I.,Lillicrap,T.,Leach,M.,Kavukcuoglu,K.,Graepel,T.和Hassabis,D. (2016)。使用深度神经网络和树搜索掌握围棋游戏。《自然》,卷529,第7587号,第484-489页。
2 Bansal,T.,Pachocki,J.,Sidor,S.,Sutskever,I.和Mordatch,I. (2017)。通过多智能体竞争产生的复杂性。arXiv:1710.03748v2。
3 Anthony,T. W.,Tian,Z.和Barber,D. (2017)。使用深度学习和树搜索快速和缓慢地思考。arXiv:1705.08439v4。
4 Silver,D.,Schrittwieser,J.,Simonyan,K,Antonoglou,I.,Huang,A.,Guez,A.,Hubert,T.,Baker,L.,Lai,M.,Bolton,A.,Chen,Y.,Lillicrap,T.,Hui,F.,Sifre,L.,van den Driessche,G.,Graepel,T.和Hassabis,D. (2017)。在没有人类知识的情况下掌握围棋。《自然》,第550卷,第7676号,第354-359页。
5 Silver,D.,Hubert,T.,Schrittweiser,J.,Antonoglou,I.,Lai,M.,Guez,A.,Lanctot,M.,Sifre,L.,Kumaran,D.,Graepel,T.,Lillicrap,T.,Simonyan,K.和Hassabis,D. (2017c)。使用通用强化学习算法通过自玩掌握国际象棋和象棋。arXiv:1712.01815v1。
https://stackoverflow.com/questions/47878311
复制相似问题