据我了解,可以用神经网络替换 Q 值的查找表(状态-动作-对-评估)来估计这些状态-动作对。我编写了一个小型库,它能够通过自建的神经网络进行传播和反向传播,以学习特定输入输出的所需目标值。
所以我在谷歌搜索和谷歌搜索整个网络时也找到了这个网站(就像我觉得的那样):http ://www.cs.indiana.edu/~gasser/Salsa/nn.html其中Q-learning与简要介绍了神经网络。
对于每个动作,都有一个额外的输出神经元,这些输出“单元”之一的激活值告诉我估计的 Q 值。(一个问题:激活值与神经元的“输出”相同还是不同?)
我使用标准的 sigmoid 函数作为激活函数,所以函数值 x 的范围是
0<x<1
所以我想,我的目标值应该总是从 0.0 到 1.0 -> 问题:我的理解正确吗?还是我误解了什么?
如果是,则出现以下问题:计算目标奖励/新Q值的公式为:q(s,a) = q(s,a) + learningrate * (reward + discountfactor * q'(s,a ) - q(s,a))
那么,如果目标应该是从 0.0 到 1.0,我该如何执行这个方程来获得神经网络的正确目标?!我如何计算好的奖励价值?朝着目标前进比远离目标更值得吗?(接近目标时的 +reward 比 -reward 更远的目标距离?)
我觉得我的理解有一些误区。我希望,你能帮助我回答这些问题。非常感谢!