【发布时间】:2020-02-21 20:37:04
【问题描述】:
对于结合神经网络的标准 Q-Learning,事情或多或少都很容易。 一个人在与环境交互过程中存储(s,a,r,s')并使用
target = Qnew(s,a) = (1 - alpha) * Qold(s,a) + alpha * ( r + gamma * max_{a’} Qold(s’, a’) )
作为神经网络逼近 Q 函数的目标值。所以ANN的输入是(s,a),输出是标量Qnew(s,a)。深度 Q 学习论文/教程改变了 Q 函数的结构。现在应该为状态 s 提供所有可能动作的 Q 值,而不是为对 (s,a) 提供单个 Q 值,所以它是Q(s) 而不是 Q(s,a)。
我的问题来了。用 (s,a,r,s') 填充的数据库确实针对特定状态 s 不包含所有动作的奖励。只对某些人,也许只是一个动作。那么如何设置网络Q(s) = [Q(a_1), …. , Q(a_n) ] 的目标值,而不需要数据库中状态 s 的所有奖励?我见过不同的损失函数/目标值,但都包含奖励。
如你所见;我很困惑。有人帮助我吗?网上有很多教程,但是这一步通常描述得不好,甚至没有动力去研究理论……
【问题讨论】:
-
欢迎来到SO,这是关于具体编码的问题;关于机器学习理论和方法的问题不在此列,应该发到Cross Validated。
标签: machine-learning deep-learning reinforcement-learning