网络在形状为 N 的网格上训练良好,但在评估任何变化时都失败了
Network trains well on a grid of shape N but when evaluating on any variation fails
为了进行训练,我随机生成了一个形状为 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]
假设我们只移动到数组的右边:
下一步应采取有效操作 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)
它学会了通过更多训练更好地预测。第一次评估是在训练 8 小时后进行的。经过将近 36 小时的训练后,它也能更好地预测变化!
为了进行训练,我随机生成了一个形状为 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]
假设我们只移动到数组的右边: 下一步应采取有效操作 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)
它学会了通过更多训练更好地预测。第一次评估是在训练 8 小时后进行的。经过将近 36 小时的训练后,它也能更好地预测变化!