Tensorflow 我可以使用DQN和示例在不与环境交互的情况下培训代理吗?
我想使用DQN和示例来训练一个RL代理,而不需要与环境交互。 据我所知,DQN是一种非策略算法,因此它似乎是可能的。(我说得对吗?) 然而,到目前为止我还没有训练好。具体来说,每个状态的argmax值都是相同的。(在最优策略中应该有所不同。) 我的环境如下:Tensorflow 我可以使用DQN和示例在不与环境交互的情况下培训代理吗?,tensorflow,deep-learning,reinforcement-learning,dqn,Tensorflow,Deep Learning,Reinforcement Learning,Dqn,我想使用DQN和示例来训练一个RL代理,而不需要与环境交互。 据我所知,DQN是一种非策略算法,因此它似乎是可能的。(我说得对吗?) 然而,到目前为止我还没有训练好。具体来说,每个状态的argmax值都是相同的。(在最优策略中应该有所不同。) 我的环境如下: 状态:4个状态(A,B,C,D) 动作:3个动作(停留,向上,向下) 奖励和过渡: B是终端状态。 (括号中的表达式表示(状态、行动、奖励、下一状态)。) 当您停留在A中时,您将在A中并获得0(A,停留在,0,A) 当您在A中Up时,您
- 状态:4个状态(
,A
,B
,C
)D
- 动作:3个动作(
,停留
,向上
)向下
- 奖励和过渡:
是终端状态。 (括号中的表达式表示(状态、行动、奖励、下一状态)。)B
- 当您
停留在
中时,您将在A
中并获得0(A
,A
停留在
,0,
)A
- 当您在
中A
时,您将在Up
中获得0.33(B
,A
,0.33,Up
)B
- 当您在
中A
时,您将在Down
中获得0(A
,A
,0,Down
)A
- 当您在
中停留B
时,您将在
中获得0.33(B
,B
,0.33,停留
)B
- 当您在
中B
时,您将在Up
中获得0.25(C
,B
,0.25,Up
)C
- 当您在
中B
时,您将在Down
中获得0(A
,B
,0,Down
)A
- 当您在
中停留C
时,您将在
中获得0.25(C
,C
,0.25,Stay
)C
- 当您在
中C
时,您将在Up
中获得0.2(D
,C
,0.2,Up
)D
- 当您在
中C
时,您将在Down
中获得0.33(B
,C
,0.33,Down
)B
- 当您在
中D
时,您将在Stay
中获得0.2(D
,D
,0.2,Stay
)D
- 当您在
中D
时,您将在Up
中获得0.2(D
,D
,0.2,Up
)D
- 当您在
中D
时,您将在Down
中获得0.25(C
,D
,0.25,Down
)C
- 当您
- 我把上面的每个样本都放在缓冲存储器中
- 然后我用DQN训练。(与环境无交互作用)
- 神经网络
- 两层(输入和输出层。它们之间没有隐藏层)
- 优化器:亚当
- 超参数
- 学习率:0.001
- 批量大小:介于2和12之间
- 该列是操作。(0:
,1:停留
,2:向上
)向下
- 这一行是国家。(有些不同,有些相同)
- 每个状态的argmax为1,这不是最佳策略
- 即使我更多地运行循环,结果也不会改变
- 尝试添加另一个密集层并增加隐藏节点,以更好地泛化李>
- 您的系统是确定性的,并且您几乎没有机会(因此很少有样本来提供重播内存),因此为了让您的系统学习,可以有趣地大量增加历元的数量(尝试使用200)李>
- 可能有助于增加辍学,原因与上述相同,但将其作为补充步骤李>
- 洗牌并通过网络多次传递重放内存李>
- 对于一项不太复杂的任务来说,你的学习率似乎很低李>