本博客主要介绍了两种基于价值的强化学习算法,Sarsa算法和Q-Learning算法,并总结了两种方法的异同点。
在基于价值的学习算法中,是根据Q函数的打分去评估当前状态 s t s_t st下每个动作的好坏,从而根据 a r g m a x Q π ( s t , a t ) argmaxQ_\pi(s_t,a_t) argmaxQπ(st,at),选取最佳的动作。在sarsa算法中,是结合了e-greedy探索和利用 a r g m a x Q π ( s t , a t ) argmaxQ_\pi(s_t,a_t) argmaxQπ(st,at)相结合的算法;而Q-learning算法则更加激进,agent每次选取最佳的动作,即 a r g m a x Q π ( s t , a t ) argmaxQ_\pi(s_t,a_t) argmaxQπ(st,at)对应的a .回顾其动作价值函数的学习方法,都是去更新Q表格,并且都是单步更新,其具体的过程是:
先得到 s t s_t st,然后agent做出动作 a t a_t at,环境发出动作 s t + 1 s_{t+1} st+1和奖励 r t r_t rt, 对于sarsa算法,其Q函数的更新方式是:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ ( Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t)+\alpha[r_t+\gamma(Q(s_{t+1},a_{t+1})-Q(s_t,a_t)] Q(st,at)←Q(st,at)+α[rt+γ(Q(st+1,at+1)−Q(st,at)]
上述公式的含义为:
现在的Q值=原来的Q值+学习率*(立即回报+gamma*后继状态的最大Q值-原来的Q值)
上式中, r t r_t rt是t时刻的奖励值,右边括号中的 Q ( s t + 1 , a t ) − Q ( s t , a t ) Q(s_{t+1},a_t)-Q(s_t,a_t) Q(st+1,at)−Q(st,at)是表示时序差分(TD Error),即下一个时刻动作价值减去当前时刻的动作价值, Q ( s t + 1 , a t ) Q(s_{t+1},a_t) Q(st+1,at)中的 a t + 1 a_{t+1} at+1是下一步一定会执行的动作。由于状态 s t + 1 s_{t+1} st+1的不确定性,前面乘了一个折扣因子 γ \gamma γ, α \alpha α表示学习率。该公式的含义就表示在t时刻在状态 s t s_t st下选择动作 a t a_t at的价值是 Q ( s t , a t ) Q(s_t,a_t) Q(st,at),它是由当前时刻的奖励与时序差分价值的折扣之和,是一种单步更新Q表格的方法。sarsa算法在做动作时,有两种方法,一种是以 ϵ \epsilon ϵ的概率从动作集合中取探索,随机选择一个动作;另一种方法是以 1 − ϵ 1-\epsilon 1−ϵ的概率利用已有的Q表格,选取价值最大的动作,即a= a r g m a x Q π ( s t , a t ) argmaxQ_\pi(s_t,a_t) argmaxQπ(st,at)。
在Q-learning中,Q表格的更新不需要用到下一个状态,因为agent的动作更加激进,每次选择价值最大的动作,即a= a r g m a x Q π ( s t , a t ) argmaxQ_\pi(s_t,a_t) argmaxQπ(st,at),其更新Q函数的方式是:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ ( m a x Q ( s t + 1 , a t ) − Q ( s t , a t ) ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t)+\alpha[r_t+\gamma(maxQ(s_{t+1},a_{t})-Q(s_t,a_t))] Q(st,at)←Q(st,at)+α[rt+γ(maxQ(st+1,at)−Q(st,at))]
可以看到,与Sara不同的是,Q-Learning在更新Q表格的时候,不需要下一时刻的状态 s t + 1 s_{t+1} st+1。
举个例子:
在马里奥游戏中,假设当前状态是初始状态, s 1 s_1 s1,下一个状态是遇到前方是蘑菇这个状态,记作 s 2 s_2 s2,agent一共有4个动作, a 1 a_1 a1:往右, a 2 a_2 a2:往上, a 3 a_3 a3:往左, a 4 a_4 a4:往下
那么它在状态 s 2 s_2 s2下选择不同的动作,对游戏的结果会造成不同影响;选择 a 1 a_1 a1会立即触碰蘑菇,agent由大变小;奖励为-50,选择 a 2 a_2 a2,可以躲避蘑菇,并顺便踩死蘑菇,奖励为+100;选择 a 3 a_3 a3,不会立即碰到蘑菇,奖励值为10;选择 a 4 a_4 a4,过一秒就会碰到蘑菇,奖励值为-20。
动作 | 奖励 |
---|---|
a 1 a_1 a1 | -50 |
a 2 a_2 a2 | +100 |
a 3 a_3 a3 | 10 |
a 4 a_4 a4 | -20 |
我们使用q-learning算法,每次选取最有的动作;根据Q-learning的公式我们来填充Q表格
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ ( Q ( s t , a t + 1 ) − Q ( s t , a t ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t)+\alpha[r_t+\gamma(Q(s_{t},a_{t+1})-Q(s_t,a_t)] Q(st,at)←Q(st,at)+α[rt+γ(Q(st,at+1)−Q(st,at)]
并且,这里假设q的初始值为10,下一个状态对应的q值统一为20,假设衰减因子 γ \gamma γ取0.8, 学习率 α \alpha α取0.6, 则每个动作对应的q值计算如下:
Q(s2,a1) = 10+0.6*[-50+0.8*(20-10)] = -15.2
Q(s2,a2) = 10+0.6*[100+0.8*(20-10)] = 74.8
Q(s2,a3) = 10+0.6*[10+0.8*(20-10)] = 20.8
Q(s2,a4) = 10+0.6*[-20+0.8*(20-10)] = 2.8
q值可以用来评估当前状态 s t s_t st下,动作 a t a_t at的好坏。我们将q表格填充如下:
a1 | a2 | a3 | a4 | |
s1 | 10 | 10 | 10 | 10 |
s2 | -15.2 | 74.8 | 20.8 | 2.8 |
s3 | ... | ... | ... | ... |
因此,对应Q-learning算法,在状态s2下,我们可以选择q值最大的动作即 a 2 a_2 a2,作为当前的动作。
sarsa算法的学习过程如下图所示,在两个地方用到q表格,一个是在选择动作的时候,以 ϵ \epsilon ϵ的概率去随机选择动作,以 1 − ϵ 1-\epsilon 1−ϵ的概率利用Q表格,选择价值最大的动作;另一个是在更新Q表格的时候,学习新的Q值
Q-Learning的学习过程如下图所示
Q现实:采取该动作获得的立即回报以及和下一个状态动作的Q值的加权和(Agent的经历中实际采取该动作后得到的Q值)
Q估计:从Q-Table中获得的当前状态和动作下的Q值(Agent学得的Q-Table中记录的Q值)
q现实为使用 ϵ − g r e e d y \epsilon-greedy ϵ−greedy选择动作所获得的价值,q估计为预计的最高收益。
r + γ m a x Q ( S t + 1 , a ) − Q ( S t , A t ) r+\gamma maxQ(S_{t+1},a)-Q(S_t,A_t) r+γmaxQ(St+1,a)−Q(St,At)
对下一步的衰减的最大估计与当前所得到的奖励当成这一步的现实,减去这一步估计的预期收益,得到选择当前动作的收益(可能为负)。
另外,可以发现Sarsa算法在更新Q表格的时候需要用到下一步的动作A’和下一个状态S’,是一种在线的学习算法; 而Q-Learning算法只需要用到下一步的状态,并选择Q值最大的动作, r + γ m a x a ( Q ( S t + 1 , a ) r+\gamma max_a(Q(S_{t+1},a) r+γmaxa(Q(St+1,a)为当前状态 s t s_t st下,使用动作 a t a_t at的Q值(当前回报+未来的折扣价值),是一种离线学习算法。
Sarsa | Q-learning |
---|---|
学习Q表格,指导动作 | 学习Q表格指导动作 |
选择动作时,使用 ϵ \epsilon ϵ-greedy策略,探索和利用相结合 | 选择动作时,使用Q表格对应最大的Q所对应的动作,是一种贪婪且较激进的方法 |
在线学习方法,需要用到下一个状态 s t + 1 s_{t+1} st+1和动作 a t + 1 a_{t+1} at+1 | 离线学习方法,更新Q表格时不需要 s t + 1 s_{t+1} st+1 |
[1] 强化学习(二):Q learning 算法
[2] 什么是Q-Learning
[3] 百度飞桨课程
[4] 深度强化学习完整版课程
[5] 《Reinforcement Learning》第二版