一、介绍
这一讲的内容是大部分情况下真实使用的算法,也就是在对环境一无所知的情况下,去学习出一个好的策略。首先介绍一些概念:
Model-Free Control,在环境未知的前提下,如何学习策略(价值)以获得最大的奖励。
On-Policy和Off-Policy,两种控制的类型,前一种是策略已知,后一种是策略未知。后者允许你使用其他人的experience sequence来学习,而前者只能在知道自己策略的前提下学习。如果计算target的时候使用的是get data的时候的policy,那么就是on-policy的方法,否则是off-policy。
ϵ -贪婪,每一次进行动作的时候,以 ϵ 的概率随机执行一个动作,以 1−ϵ 的概率执行q值最高的动作。随着训练进行 ϵ 逐渐减小。这样能够尽可能多的探索各种策略,同时达到训练的目的。同时可以很容易证明 qπ′(s)≥qπ(s) 。
二、Monte-Carlo Control
对于每个Episode,控制过程分成两个步骤:
- Monte-Carlo的策略评估过程,这个过程结束后 Q≈q(π) .
- ϵ -贪婪的策略优化过程。
三、Sarsa
TD -Control,用TD代替MC进行策略评估。那么每一步都会更新一次价值函数的评估,而不是每个Episode。
Sarsa,在每个time-step,用Sarsa的方式进行策略评估,并用 ϵ -贪婪的方式进行策略优化。
我们来回顾一下TD(0)的更新公式:
下面是Sarsa的更新公式,很像是把TD应用在Q函数上的形式:
不过Sarsa的算法是属于on-policy的,因为你在更新Q函数的过程中,需要对一个状态S获得一个行为A,并观察下一个状态S’,且使用现有的策略π获得行为A’。因为确定行为A’需要知道你的策略,所以是on-policy的。当然,Sarsa也可以推广到n-step的形式和Sarsa(λ)的形式。
疑问:
- 在Sarsa算法中,你采用了一个action,然后观察reward和s’,那么这个r和s’是如何产生的呢?这里有某种形式的采样过程吗?
- 也就是公式中的R(t+1),R(t+2),….等等是如何获得的?
四、Off-Policy Learning
上面说的Sarsa的方法,必须在已知自己的策略的时候,才能进行策略学习,即On-Policy。但是与之对应的Off-Policy有很多好处。比如可以利用别人的经验来学习,可以在学习最优策略的同时多多尝试,等。
Q-learning是一种off-policy的Q值学习方法。在off-policy的方法中,使用两种policy。
- behaviour policy, μ ,是固定的,用来进行exploration。在Q-learning中被用来采样得到行为 at ,常用 ϵ−greedy 。
- target policy, π ,用来进行evaluation和improve的policy。Q-learning中用来获得行为 a′ ,也就是 st+1 时刻的行为,常见的选择是greedy。
将最常见的选择带入上面两个policy之后,Q-learning的更新公式如下: