我已经实施了一个深入的q学习网络(来自原始论文,没有任何后续的修改和改进)来训练一个代理人玩tic-tac-toe。我的超参数如下:
网络结构:3层MLP,1个隐藏层(150个节点)
输入:输入为形状(9,),可能值[1,0,-1]表示板状态
输出:输出为形状(9,),可能的值[0,1]表示可能的操作
奖励:如果胜利然后是10,如果输了-10,那么如果平局则为0 Gamma(未来奖励的折扣):0.99
epislon(用于探索):最初为0.3,然后相对于剧集数量线性减少重放内存:2000000这样存储的样本永远不会被新样本替换(内存永远不会满了)
Gradiant Descent Method:Momentum SGD
损失函数:square(y-x)
我使用随机游走作为epsilon函数的探索策略,并使用此策略来模拟对手的步行。
然后我在训练过程中使用最近感知的200场比赛的胜率来评估模型的强度。
训练过程在开始时高于avergage,胜率从0.4左右上升到0.70左右,并且在那里停留了相当多的剧集(慢慢升至0.78左右)。
然而,在某些时候(约30000集),胜率急剧下降并迅速下降至0.6(并保持在那里)。
有人可能会给我一些关于为什么会发生这种衰变的指导吗?
我做了一些修改:
将重播内存大小减少到100000,重播内存大小似乎不是根据实验发生崩溃的原因。
增加从重播记忆中采样的小批量大小。
我正在进行另一项实验。到目前为止,胜率不会崩溃 这是曲线:(左图是获胜率,右图是Q值的损失)
上面提到的行为终于再次发生了:
这有什么原因吗?
最终结果: