强化学习基本原理及简单算法(QLearning和Sarsa)
强化学习的目的在于作出最优的选择,最优则是指选择累计回报最大的行为。
通用符号说明
reward(r)
reward通常都被记作 r r ,表示确定action的返回奖赏值。所有强化学习都是基于reward假设的。reward是一个scalar。 所表示的reward是即时的回报(没有考虑长期回报)。累积折现回报函数(R)
因为强化学习基本上可以总结为通过最大化reward来得到一个最优策略。但是如果只是瞬时reward最大会导致每次都只会从动作空间选择reward最大的那个动作,这样就变成了最简单的贪心策略(Greedy policy),所以为了很好地刻画是包括未来的当前reward值最大(即使从当前时刻开始一直到状态达到目标的总reward最大)。因此就构造累积折现回报函数 R(t) R ( t ) 来描述这一变量。
Rt=rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯=∑k=0nγkrt+k+1(1) (1) R t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ = ∑ k = 0 n γ k r t + k + 1
γ γ 是折扣系数(取值在[0,1]),就是为了减少未来的reward对当前动作的影响。如果我们设置折扣因子为 γ γ =0,那么我们的策略将会是短视的,我们只能依靠即时的回报。如果我们想要平衡现在和将来的回报,我们应该将回报因子设置为 γ γ =0.9。当然如果我们的环境是确定的,那么我们可以设置 γ γ =1
对于Agent来说一个好的策略是能够使所选择的行动能够最大化(折扣后)未来的奖励。然后就通过选取合适的policy使 Rt R t 最大。action(A)
action是来自于动作空间,agent对每次所处的state用以及上一状态的reward确定当前要执行什么action。执行action要达到最大化期望reward,直到最终算法收敛,所得的policy就是一系列action的sequential data。state(S)
就是指当前agent所处的状态。一般表示agent所处的位置,有事还表示当前的环境。policy( π π )
policy就是只agent的策略,是从state到action的映射,分为确定策略和与随机策略,确定策略就是某一状态下的确定动作a= π π (s), 随机策略以概率来描述,即某一状态下执行这一动作的概率:
π(a|s)=P[At=a|St=s](2) (2) π ( a | s ) = P [ A t = a | S t = s ]
背景知识
Bellman Equation
贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现,由于其中运用了变分法思想,又被称之为现代变分法。
(1)价值函数(value function):
state value function(V)
状态值函数 v(s) v ( s ) ,定义为t时刻状态S能获得的长期return的期望(未指定action),是每个state的value指标,它描述的时以当前state为出发点对所有可能的action得到的reward做加权和,表达式如下:
Vπ(s)=Eπ[Rt|St=s](3) (3) V π ( s ) = E π [ R t | S t = s ]action value reward(Q)
Gπ(S,A) G π ( S , A ) 函数是在state下(根据策略 π π )选择action能获得的长期回报(指定action),是每个state下每个action的指标,它描述在给定state和active下所有可能的长期reward的加权和,(权重是各种可能发生的概率),表达式如下:
Gπ(s,a)=Eπ[Rt|St=s,At=a](4) (4) G π ( s , a ) = E π [ R t | S t = s , A t = a ]
(2)马尔科夫决策过程(MDP):
一个有限的马尔科夫决策过程由一个四元组构成M=(S,A,P,R)。其中S表示有限的状态集空间,A表示动作集空间,P表示状态转移概率矩阵,r表示期望回报值。 马尔可夫决策过程依赖于马尔可夫假设,下一个状态 St+1 S t + 1 的概率仅取决于当前状态 St S t 和动作 At A t ,而不取决于先前的状态或动作。
在MDP中给定任意一个状态s∈S和一个动作a∈A,就会以某个概率转移到下一个状态s′∈S
状态转移概率( Pass′ P s s ′ a )
Pass′ P s s ′ a 是状态过渡概率。如果我们从状态s开始,然后采取动作a,那么我们就会有 Pass′ P s s ′ a 的概率得到状态 s′ s ′ ,表达式如下:
Pass′=P(S