本文主要内容来源于 Berkeley CS285 Deep Reinforcement Learning
前情回顾
在 深度强化学习(8)Actor-Critic 算法(2) 中, 我们提到了 Batch Actor Ctritic 算法:
抛弃Policy
在之前讨论的算法中(Policy Gradient, Actor Ctritic), 其核心都是 Policy () 。我们可以思考一个问题, 我们是不是可以把 Policy 网络丢弃呢, 毕竟, 训练 Policy 网络消耗了很多资源。
其实我们如果可以正确的估计出 (, ), 其实是可以用一个及其简单的 Policy , 而抛弃复杂的神经网络的。 其实很简单, 就是选择表现最好的 Action:
算法就变成了:
其中:
所以, 只要能够建立对 ,我们就可以完成这项工作。 有两种方法
利用动态规划, 构建一张大表,把所有可能情况都记录下来。 这个明显不可太可能, 有些输入比如图片, 状态空间特别大,计算机可能放下那么大的一张表。
利用我们前一章(深度强化学习(8)Actor-Critic 算法(2))讨论的, 构建一个关于 Function 的神经网络。具体方法请参考链接文章。
但是,对于方法2, 我们遇到一个问题:
在计算 需要知道各种不同的 Action 的收益, 但是现在没有Policy 函数,我们没法知道 Action 的分布。
一个办法是, 我们使用Q Function 替代
我们直接用 Q Fucntion的话, 就可以绕开对 Action 的分布 的需求了。 所以问题就变成了求 Q Function 的神经网络了。
Fitted Q-iteration
- 通过某些Policy(硬编码),获得 Transition, 这里的结果, 都是环境给出的。
- 选择可以让 Q value 最大的 action ,然后获得
- 计算loss value, 更新网络
要训练的 Q Function NN 长得是这样: