neural-network - 权重更新——强化学习+神经网络

标签 neural-network reinforcement-learning

我目前正在尝试了解 TD-Gammon 的工作原理,并有两个问题:

1) 我找到了 article这解释了权重更新。它由三部分组成。最后一部分是 V(s) 对 w 的微分。在文本中,它被称为“运行总和”。我如何计算该值? (我只对从输出到隐藏层的权重变化感兴趣,而不是进一步的权重变化)

2)读完权重更新过程后,出现了一个问题:为什么我们不使用强化学习为状态创建一个目标值,并将该值赋予我们的神经网络,以便它学习返回当前状态的值?为什么要多一个直接操作权重的更新规则?

最佳答案

实际上,您只需要实现一个使用基本的、常见的平方和误差的 ANN 即可。然后,用 TD 误差值替换目标网络输出:E = r + gamma*V(t+1) - V(t)

从那里,您可以使用典型的 ANN 反向传播权重更新规则。

所以,简而言之,我认为你的描述实际上是通过 ANN 算法进行 RL 应该做的事情。它正在训练人工神经网络来学习状态/ Action 值(value)函数。

关于neural-network - 权重更新——强化学习+神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981880/

相关文章:

python-3.x - 使用 keras 的神经网络准确度非常低,验证准确度为 0.0000e+00

python - scikit-learn 中多标签、多类(多输出)随机森林和最近邻的示例?

machine-learning - 利用强化学习中学到的策略的方法

python - 为什么 model.fit() 使用 categorical_crossentropy 损失函数通过 tf.train.AdamOptimizer 引发 ValueError ?

r - 如何使用 neuralnet() 在 R 中设置起始权重?

python - Karpathy 的代码训练神经网络使用策略梯度打乒乓球

neural-network - 当可能有多个 Action 时,策略梯度是多少?

Python 游戏神经网络。如何设置输入

python - 如何使用 Keras 手动更新权重

neural-network - 为什么我们在计算机中使用神经网络?