第三讲 Q-learning(Basic Idea)
视频地址:https://www.bilibili.com/video/av24724071?t=1121&p=3
PPT地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2018/Lecture/QLearning%20(v2).pdf
第一讲整理:【李宏毅深度强化学习2018】P1 Policy Gradient(Review)
第二讲整理:【李宏毅深度强化学习2018】P2 Proximal Policy Optimization (PPO)
Q-learning 是 value base 的方法,在这种方法中我们不是要学习一个 policy网络,而是要学一个 critic网络。critic 并不采取行为,只是针对现有的 actor ,评价它的好坏。
critic 给出了一个 value function ,代表在遇到游戏的某个 state 后,采取策略 一直玩到游戏结束,所能得到的 reward 之和。
所以 (即critic)是个函数,一个网络(前两讲提到 actor 同样是个网络)。它的输入是某个state,输出是一个scalar标量。上图游戏画面中左边的 很大,因为当前怪物比较多,防护罩也没被摧毁,从此时玩到游戏结束得到的 reward 就会比较多;而相对的右边的 就比较小。综上 critic 的输出取决于两点:1是 state,2是 actor 的策略 。
怎么评价一个 critic 的好坏呢?
基于蒙特卡洛 Monte-Carlo(MC)based 的评价方法:
由于 critic 就是一个网络,所以我们可以训练它,训练的方法是,给定一个策略 ,在 的情况下,网络输出为 (代表预测的 reward);而实际得到的 reward 为 。我们的目标就是让 和 尽可能接近,这其实和 regression problem 很相似。
基于时序差分Temporal-difference base 的方法评价方法:
MC base 的策略需要在某个 state 后一直玩到游戏结束,但游戏若太长,这样就不合理。
而 TD base 只需要从 玩到 就行。因为 ,即 :
状态下采取策略 玩完游戏得到的 value = 状态下采取策略 玩完游戏得到的 value + 执行动作 得到的单步
所以我们比较 和 间的接近程度即可。
MC base 和TD base方法的比较
MC 方法的问题在于最后得到的 的方差很大(回顾一下, 在 的情况下根据策略 进行游戏得到的实际 reward. 其实是一个随机变量,因为游戏是有随机性的,每一次得到 是不一样的)。
因为 是很多步 reward 的求和,而根据公式 ,每一步 reward 的方差累加后的方差会乘上 。所以最后 的方差很大,即每次算出来的 都会相差很多。
而用 TD base 中有随机性的部分是 ,它的方差比较小。但 TD 的问题在于 可能很不准确。以下举例说明:
现在假如我们玩了8个 episode 的游戏,每一行对应一个episode,得到以下结果:
我们可以很直观的计算出 (6/8)(不论用 MC 方法还是 TD 方法)。但是根据 MC base 和 TD base 方法算出的 是不一样的(可能是 3/4 或 0):
MC 方法的计算过程是,由于 只在第一个 episode 中出现,出现后根据策略 得到的 reward 是0,所以 =0
TD 方法的计算过程是,由于 只在第一个 episode 中出现,而 出现后跳到了 ,所以 .
MC 考虑的想法是 是一个非常不好的 state,出现 后 被影响只得到 0 的 reward,所以认为 为0.
但TD考虑的想法是 后 得到 reward 为 0 只是一个巧合,与 无关,大部分情况下 还是会得到 3/4 的 reward,所以认为 为3/4。(因为Sb在Sa之后)
另一种 critic 模型
而现在讨论的 Q function 的输入是一个 (s, a) 的 pair。这样相当于Q function 假设 state 下强制采取 action a。
假设你的 action 是无法穷举的,那只能用上图左边的方法,把(s, a)一同作为输入;但若 action 有限,可以采用上图右边的方法,只输入s,然后分别输出在不同 action 情况下的输出值。
critic 看上去只能评价某个 action 的好坏,但是实际上可以直接用它来做 reinforcement learning(Q-learning)。方法是只要学到一个 的 Q function ,就能有办法找到一个更好的 actor ,这样就能不断更新policy 。
什么叫 比 π 好呢?
就是说面对所有 state s 时,使用策略 得到的 value 一定比使用策略 得到的 value 大,即:
找 的方法是,对于已经学到的 Q function ,在某个给定的 state 下,分别带入可能的 action,看看哪一个 action 使得函数值最大,把使得函数值最大的 a,作为以后面对该 state 时采取的 action。
上图证明了 :TODO