强化学习经典算法笔记——推导贝尔曼方程
在写强化学习经典算法笔记(一):价值迭代算法Value Iteration和强化学习经典算法笔记(二):策略迭代算法Policy Iteration的时候,感觉关键的部分——为什么要这样进行值(策略)迭代,没有讲清楚,概念有点模糊,所以感觉有必要重新关注一下Bellman Equation的来龙去脉,也是加强自己对这一块内容的理解。
相关概念
在介绍贝尔曼方程之前,必须对几个概念有所了解,下面我们一一介绍。
- 策略函数,Policy Function
- 状态价值函数,State Value Function
- 状态动作价值函数,State-action Value Function
策略函数 Policy Function
策略常表示为 π ( s ) : S → A \pi(s):\ S\rightarrow A π(s): S→A,函数的输入是一个状态 s s s,输出状态 s s s下应该采取的动作 a a a 。策略函数的最优化是强化学习算法的核心任务。
状态价值函数 State Value Function
策略 π ( s ) \pi(s) π(s)的优劣可以用状态价值函数来评价。常简称为Value Function,即价值函数。
Value Function的意义是,当处于状态 s t s_t st时,从下一个状态 s t + 1 s_{t+1} st+1开始,直至一个Episode结束,都按照策略 π ( s ) \pi(s) π(s)与env进行交互,将从 s t + 1 s_{t+1} st+1到 s ∞ s_{\infin} s∞过程中得到的reward累加起来,取其期望值作为状态 s t s_t st的价值。即
V π ( s ) = E π [ R t ∣ s t = s ] V^{\pi}(s)=E_{\pi}[R_t\ |\ s_t=s] Vπ(s)=Eπ[Rt ∣ st=s]
因为 R t = ∑ k = 0 ∞ γ k r t + k + 1 R_t=\sum_{k=0}^{\infin} \gamma^k\ r_{t+k+1} Rt=∑k=0∞γk rt+k+1 ,其中 r t + 1 r_{t+1} rt+1表示从 s t s_t st转移到 s t + 1 s_{t+1} st+1时的回报。
V π ( s ) = E π [ ∑ k = 0 ∞ γ k r t + k + 1 ∣ s t = s ] V^{\pi}(s)=E_{\pi}[\sum_{k=0}^{\infin}\gamma^k\ r_{t+k+1}\ |\ s_t=s] Vπ(s)=Eπ[k=0∑∞γk rt+k+1 ∣ st=s]
直观来看,一个状态的价值是从这个状态开始,依照某种策略,继续与环境进行交互而得到的总的回报。因此可以说Value Function受两个变量的控制,一个是状态 s s s,从不同的状态出发,得到的分数有可能一样,有可能不一样。另一个就是策略函数Policy Function,Value Function一定是建立在某个策略上做出的评价,处于同一个状态 s s s时,依照策略 π 1 ( s ) \pi_1(s) π1(s)玩下去的得分高于 π 2 ( s ) \pi_2(s) π2(s),我们就可以说, π 1 \pi_1 π1优于 π 2 \pi_2 π2。
另外需要注意,Value的定义是取累计回报的期望值,因为环境的不确定,进行N个episode的实验,得到N个 s t + 1 s_{t+1} st+1到 s ∞ s_{\infin} s∞的累计汇报 R t R_t Rt,这N个值不可能完全一样,因此可以将 R t R_t Rt建模为一个随机变量,并取 E [ R t ] E[R_t] E[Rt]作为状态 s t s_t st的比较可靠的评价。
状态动作价值函数 State-action Value Function
状态动作价值函数一般称为Q值函数——Q Function。相比于Value Function是对状态的评估,Q Function是对(状态-动作对) 的评估。
Q值的定义是,给定一个状态 s t s_t st,采取动作 a t a_t at后,按照某一策略 π ( s ) \pi(s) π(s)与环境继续进行交互,得到的累计汇报的期望值。
Q π ( s , a ) = E π [ R t ∣ s t = s , a t = a ] Q^{\pi}(s,a)=E_{\pi}[R_t\ |\ s_t=s,a_t=a] Qπ(s,a)=Eπ[Rt ∣ st=s,at=a]
即
Q π ( s , a ) = E π [ ∑ k = 0 ∞ γ k r t + k + 1 ∣ s t = s , a t = a ] Q^{\pi}(s,a) = E_{\pi}[\sum_{k=0}^{\infin}\gamma^k\ r_{t+k+1}\ |\ s_t=s,a_t=a] Qπ(s,a)=Eπ[k=0∑∞