网络在形状为N的网格上训练良好,但是在评估任何变化时均失败

时间:2019-04-18 22:12:46

标签: python tensorflow keras reinforcement-learning q-learning

为进行训练,我随机生成了一个形状N的网格,其值分别为0和1。 有两个定义为[0,1]的动作,我想教一个使用DQN的策略,当下一个数字为1时执行0动作,当数组中的下一个数字为0时执行1动作。

我正在使用DQN和Keras来创建我的网络

Example :
N=11
grid=[ 0,1,0,1,1,1,1,0,0,0,0]
Agent mark = 0.5
start point=0
current state =[ 0.5,1,0,1,1,1,1,0,0,0,0]
action=[0,1]

考虑到我们仅移至数组的右侧: 下一步应执行VALID操作0,导致以下状态:

Next state=[ 0,0.5,1,0,1,1,1,1,0,0,0]

这是通过体验重播来强制执行的。 它训练得很好,我的胜率达到100%(通过连续求解10次相同的迷宫来计算。 现在是时候根据这个网格的变化对它进行评估了:

[0,0,0,0,1,0,1,1,0,1,0]

开始
[0.5,0,0,0,1,0,1,1,0,1,0] 

网络无法预测正确的有效措施,在这种情况下为1。

我的网络看起来像这样:

Dense
Relu
Dense
Relu
Dense (number_of_actions)

1 个答案:

答案 0 :(得分:0)

它学会了通过更多的训练来更好地预测。训练8小时后进行了第一次评估。经过将近36小时的训练,它还能更好地预测变化!