最近又有alpha zero 以100:0战败 alpha master((打败当前人类最牛围棋选手柯洁的人工智能)的消息,给强化学习注入了更强的一剂兴奋剂。刚好顺手学习了下有关强化学习的一些基础,现整理给大家共飨。
What is RL
什么是强化学习(Reinforcement Learning)?
通过对环境的探索,习得与环境交互的最优策略,从而获得最大收益的过程,称之为“强化学习”。
举个例子,训练小狗去捡东西回来。奖励小狗的某个特定动作,如果作对了某个可能捡东西的倾向动作,给它点吃的;如果做错了某个动作,打它脑壳一下。小狗学会捡东西的整个过程,可以称之为强化学习的过程。小狗通过与环境(人+自然环境)的交互,获得奖励避免惩罚,最后得到一种策略:只要人丢出东西,就抓紧时间捡回来,就能够获得好处。
基本概念
RL基本模式:
agent :智能体,学习策略的主体,比如大脑。
environment :需要观察的外部环境。
state :环境的描述。 st
action :智能体采取的行动。
reward :环境对某个行为反馈的奖励值。
MDP:只根据环境当前状态,不断做出action的过程,可以用MDP(Markov Decision Process)来描述。
(s0,r0)→(ps0,a0)→(s1,r1)→(ps1,a1)→(s2,r2)→⋅⋅⋅(st,rt)
策略的评估
根据策略做决定的过程已知,那么如何评估采取行为后的收益呢?如何评估当前策略好坏呢?
收益与策略
这里主要便于理解,策略从收益的角度来评估是怎么回事。
1)带有状态转移的时间序列的描述
为描述一个离散时间序列的状态和行为:
现定义时刻 t 的状态
状态 s 到行为
依照某种策略采取行动,状态之间的转移概率: Pπ(s)ss′=Pπ(s)(s′|s)=Prob(st+1=s′|st=s,at=π(s))
执行某个行为 a 后,状态之间的转移概率:
注意:行为的发生本身是概率事件,另外发生行为后的状态转移也是概率事件。
则带有状态转移关系的时间序列描述如下:
可视化如上面的彩图所示。
2)瞬时收益与序列收益
定义每个时刻的瞬时收益(收益是策略好坏的体现): r(st,at=π(st)) ,由此看到 r 是
则在当前状态 st 开始时,这个序列 { s}|st={ st,st+1,st+2,⋅⋅⋅} 的整体收益是多少呢?
其中 γ∈(0,1) 是假设未来收益是有折扣的。
notice: R({ s}|st) 是随机变量 st,st+1,st+2⋅⋅⋅ 的复合随机变量。
将所有可能地序列求个收益的平均值,是不是就搞清了未来收益。
序列的生成,是由其背后的指导策略导致的不同走向。
E[R({ s}|st)] 对所有序列收益求取平均,也就评估了隐藏于序列背后的关系。
而这些序列背后隐藏的关系,就是状态转移背后的指导行动的策略 π(s) 。
BellmanEquation与R、V、Q
整理下相关的数学概念
Bellman Equation: f(x)=r(x)+γf(x′)
假设未来收益对当前是打折扣的 γ∈(0,1) 。
假设时间起始为 t=0 ,则以 st=0 为初始状态的序列收益的BE表示。
假设 t=0 是为了方便后面推导方便,也可以初始状态直接定义为 st 。
1)序列收益的评估
R({
s}|st=0)=r(st=0,π(st=0))+γr(st=1,π(st=1))+γ2r(st=2,π(