【DataWhale打卡】第四次任务,主要是重新学习一下李宏毅的Q-learning部分的知识,推导很多。之前看的时候就是简单过了一遍,很多细节没有清楚。这篇笔记包括了李宏毅深度强化学习三个视频长度的内容。
文章目录
1. 概念/解释
概念 | 解释 |
---|---|
Critic | 与Actor不同,Critic负责评论当前的行为,预测期望价值 |
V π ( s ) V^\pi(s) Vπ(s) | 在遇到状态s以后,可以得到的累计奖励值(这个值和s、 π \pi π均有关系) |
Q π ( s , a ) Q^\pi(s,a) Qπ(s,a) | 使用 π \pi π作为actor的时候,在状态s下采取动作a的期望的累计奖励(cumulated reward)。 |
DQN | Q-Learning+深度学习(采用了TargetNetwork和Experience Replay的方法训练) |
Q-function | 即在某一个 state 采取某一个action,使用 actor π \pi π ,得到的 accumulated reward 的期望值有多大 |
2. Value Function
MC估计V
Monte-Carlo 方法,通过采样来近似得到Value函数。
在遇到不同state的情况下,计算对应的accumulated reward G t G_t Gt。在训练的过程就是一个回归问题,将value function的值回归到 G t G_t Gt。
TD 估计V
V π ( s t ) = V π ( s t + 1 ) + r t V^{\pi}\left(s_{t}\right)=V^{\pi}\left(s_{t+1}\right)+r_{t} Vπ(st)=Vπ(st+1)+rt
基于以上式子,只要有任意一个s,a,r,s的片段,就可以用来训练。训练过程如下图所示:
对比两种方法
-
MC存在很大的Variance,因为是累积的reward,这样会导致Larger Variance。
-
TD虽然有着smaller variance,但是 V π ( s t + 1 ) V^\pi(s_{t+1}) Vπ(st+1)有可能是不准确的。
TD由于其灵活性,数据可以重复利用,所以比较常见。
举个计算的例子:
3. State-Action Value Function
引入另外一种critic,Q-function(State-Action Value Function)。
Value Function仅仅通过看到的状态s就开始判断价值,这里引入动作a,意义是 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a) 代表使用 π \pi π作为actor的时候,在状态s下采取动作a的期望的累计奖励(cumulated reward)。
思考: π \pi π本身会决定在遇到s的时候,应该采取哪个action,那么这里的Q怎么理解呢?
其实就是在state s的时候强制采取action a,然后得到的垒起奖励,才是 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)
第一篇文章中就有讲action space分为离散的(discrete)和连续的(continuous)
上图左侧代表输出的是一个数值。右侧代表在状态s下,采取不同的action所对应的Q函数。
Q-Learning一般流程
Q-Learning这种方式和policy gradient不同:
- Policy gradient的目标就是学习策略 π \pi π, 给定一个s就可以输出选择的动作a。
- Q-Learning则是以一种间接的方法实现了这个目的。在给定一个状态s后,如果有了Q函数,那就可以决定采取哪个function可以得到的期望值更高。
描述一下整个流程,初始的 π \pi π和环境进行交互(一开始随机初始化的策略肯定很差),然后会收集一系列episode带来的数据。然后去衡量这个actor在某一个s强制采取a以后的期望,计算Q Value。学习得到的Q函数得到的新策略 π ′ \pi ' π′是一定要比原actor策略更好的。
这样迭代下去,可以保证policy是越来越好的。
那么新策略 π ′ \pi ' π′是如何指定的?
- 策略是通过最大化Q Function得到的,所以可以保证在同一个状态s下,新的策略不比旧的策略差。
- 这里的策略和policy gradient不一样,并没有参数。是通过Q function来计算得到的。
- 需要说明的是,由于采用了argmax的形式,那也就是默认action space是离散的,单纯的Q-Learning无法解决连续动作空间的问题,随后会提出新的算法解决这个问题。
推到步骤如下:
4. TIP: Target Network
具体怎么实现?
通过actor与环境交互,得到一系列轨迹,s,a,r,s,通过以下公式回归求解问题:
Q π ( s t , a t ) = r t + Q π ( s t + 1 , π ( s t + 1 ) ) \mathrm{Q}^{\pi}\left(s_{t}, a_{t}\right) =r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right) Q