为进行训练,我随机生成了一个形状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)
答案 0 :(得分:0)
它学会了通过更多的训练来更好地预测。训练8小时后进行了第一次评估。经过将近36小时的训练,它还能更好地预测变化!