我正在尝试使用神经网络来估计Q学习中的Q值,如有关使用神经网络进行Q学习的问题中所述。正如第一个答案中所建议的那样,我在输出层使用线性激活函数,而在隐藏层中仍使用S形激活函数(2,尽管稍后可以更改)。我还使用了单个NN,它根据建议为每个动作返回输出。
但是,对于简单的车杆平衡问题,该算法仍存在分歧。所以,我担心我的Q更新是错误的。初始化之后,我在每个步骤中所做的工作如下:
- 使用NN对所有动作的前向传播计算。
- 选择一个新动作,处于新状态。小号ŧ
- 使用NN对所有动作的前向传播计算。
- 将目标Q值设置为: 仅针对当前动作a_t,同时为其他状态设置Q_ {t + 1}(s,a_t)= Q_ {t}(s,a_t)。注意,我认为这是问题所在。一吨Q 吨+ 1(小号
- 将误差向量设置为
- 通过NN向后传播误差,以更新权重矩阵。
有人可以向我指出我哪里出问题了吗?
此外,您认为我应该在输入层和第一个隐藏层中也包含一个偏差项吗(例如,对于S型函数)?会有所作为吗?
预先非常感谢您的帮助。如果需要,我可以帮助您澄清问题或共享代码。