强化学习专题笔记(一) 强化学习基础

一、长期回报

对于问题的简化,采用理想的MDP,简化问题到具有马尔科夫性,对于马尔科夫决策过程而言,在理想状态下,每一个行动都要为最终的目标最大化长期回报 而努力。
max ⁡ ∑ t r t \max\sum_{t}{r_t} maxtrt
但是很多情况下,仿真的时间维度较大,步数较多,甚至可以无限循环下去,这样的情况下我们需要引入一个可以和收敛的无穷数列,来替代我们最原始的长期回报公式。即对未来的回报乘以一个折扣率,使得长期回报变得更有意义
∑ t = 0 γ t r t ( γ &lt; 1 ) \sum_{t=0}{\gamma^tr_t} (\gamma &lt; 1) t=0γtrtγ<1
由此我们引出长期回报的概念,即从当前状态开始对之后的所有回报,运用上式进行累加的折扣率计算:

R e t t = ∑ k = 0 γ k r t + k + 1 Ret_t=\sum_{k=0}\gamma^kr_{t+k+1} Rett=k=0γkrt+k+1
但是长期回报需要知道未来的行动情况,我们需要对上式进行一个合理的估计,因而我们定义了策略的价值

二、值函数

由于环境的原因,MDP中的状态转移概率有时候并不能够确定,因而需要基于状态转移估计长期回报期望。τ是从某个状态s出发,根据策略与状态转移概率采样得到的序列(trajectory)。那么价值函数可以表示为:
v π ( s t ) = E s , a ∼ τ [ ∑ k = 0 γ k r t + k + 1 ] = ∑ τ p ( τ ) ∑ k = 0 ∞ γ k r t + k + 1 v_{\pi}{(s_t)} = \mathbb{E}_{s,a\simτ}[\sum_{k=0}\gamma^kr_{t+k+1}] =\sum_{\tau}{p(\tau)}{\sum_{k=0}^{\infin}{\gamma^k}{r_{t+k+1}}} vπ(st)=Es,aτ[k=0γkrt+k+1]=τp(τ)k=0γkrt+k+1
根据MDP模型的形式,值函数一般分为两种:

  • 状态值函数 v π ( s ) ​ v_{\pi}{(s)}​ vπ(s): 已知当前状态s,按照某种策略行动产生的长期回报期望;
  • **状态-动作值函数 ** q π ( s , a ) ​ q_{\pi}{(s,a)}​ qπ(s,a): 已知当前状态s及动作a,按照某种策略行动产生的长期回报期望。

由于符合马尔科夫性,我们可以将值函数的形式进行马尔科夫展开,其中 π ( a t ∣ s t ) {\pi(a_t|s_t)} π(atst)表示,在 s t s_t st状态下选择策略 π \pi π的概率,策略 π \pi π将产生行动 a t a_t at p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1st,at)表示在策略 π \pi π的情况下,从 s t , a t s_t,a_t stat到达 s t + 1 s_{t+1} st+1的概率。
v π ( s t ) = ∑ ( s t , a t , . . . ) ∼ τ π ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) . . . ∑ k = 0 ∞ γ k r t + k + 1 v_{\pi}{(s_t)}=\sum_{(s_t,a_t,...)\sim\tau}{\pi(a_t|s_t)}p(s_{t+1}|s_t,a_t)...{\sum_{k=0}^{\infin}{\gamma^k}{r_{t+k+1}}} vπ(st)=(st,at,...)τπ(atst)p(st+1st,at)...k=0γkrt+k+1

三、贝尔曼方程

  1. 状态值函数的贝尔曼方程

通过代换消元,可以将上式整理为状态值函数的贝尔曼方程
v π ( s t ) = ∑ a t π ( a t ∣ s t ) ∑ s t + 1 p ( s t + 1 ∣ s t , a t ) [ r t + 1 + γ v π ( s t + 1 ) ] v_{\pi}(s_t)=\sum_{a_t}\pi(a_t|s_t)\sum_{s_{t+1}}{p(s_{t+1}|s_t,a_t)[r_{t+1}+\gamma v_{\pi}(s_{t+1})]} vπ(st)=atπ(atst)st+1p(st+1st,at)[rt+1+γvπ(st+1)]
更直观一点可以将贝尔曼方程描述为一种DP的形式,即当前状态 s s s下,选择策略 π \pi π的长期回报期望。
v π ( s t ) = ∑ a t , s t + 1 π ( a t ∣ s t ) E [ r t + 1 + γ v π ( s t + 1 ) ] v_{\pi}(s_t)=\sum_{a_t,s_t+1}\pi{(a_t|s_t)}\mathbb{E}[r_{t+1} + \gamma v_{\pi}(s_{t+1})] vπ(st)=at,st+1π(atst)E[rt+1+γvπ(st+1)]

按Sutton的书表示:
v π ( s ) = E π [ r t + 1 + γ v π ( s t + 1 ) ∣ s t = s ] v_π(s)=\mathbb{E}_π[r_{t+1}+γv_π(s_{t+1})|s_t=s] vπ(s)=Eπ[rt+1+γvπ(st+1)st=s]

  1. 状态-动作值函数的贝尔曼方程

类似地,可以定义状态-动作值函数的贝尔曼方程
q π ( s t , a t ) = ∑ s t + 1 p ( s t + 1 ∣ s t , a t ) ∑ a t + 1 p ( a t + 1 ∣ s t + 1 ) [ r t + 1 + γ q π ( s t + 1 , a t + 1 ) ] q_{\pi}(s_t,a_t)=\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)\sum_{a_{t+1}}p(a_{t+1}|s_{t+1})[r_{t+1}+\gamma q_\pi{(s_{t+1},a_{t+1})}] qπ(st,at)=st+1p(st+1st,at)at+1p(at+1st+1)[rt+1+γqπ(st+1,at+1)]

按Sutton的书表示:
q π ( s , a ) = E [ r t + 1 + γ q π ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] q_\pi(s, a)=\mathbb{E}[r_{t+1} +\gamma q_{\pi}(s_{t+1}, a_{t+1})|s_{t}=s,a_{t}=a] qπ(s,a)=E[rt+1+γqπ(st+1,at+1)st=s,at=a]

  1. Bellman optimality equation

v ∗ ( s ) = E [ r t + 1 + γ m a x π v ( s t + 1 ) ∣ s t = s ] v_*(s)=\mathbb{E}[r_{t+1} +\gamma max_\pi{v(s_{t+1})|s_t=s}] v(s)=E[rt+1+γmaxπv(st+1)st=s]

q ∗ ( s , a ) = E [ r t + 1 + γ m a x a t + 1 q ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] q_*(s,a)=\mathbb{E}[r_{t+1} +\gamma max_{a_{t+1}}{q(s_{t+1},a_{t+1})|s_t=s,a_t=a}] q(s,a)=E[rt+1+γmaxat+1q(st+1,at+1)st=s,at=a]

四、Monte-Carlo与Time Difference

  • MC 方差较大,需要较深的探索获取回报
  • TD 方差较小,偏差较大,可设定探索深度(1-step, n-step), Q-Learning, SARSA都属于TD

【参考】https://zhuanlan.zhihu.com/p/25239682

Monte-Carlo method适用于“情节式任务”(情节任务序列有终点,与“情节式任务”相对应的是“连续型任务”)。 Q ( s , a ) Q(s,a) Q(s,a)就是整个序列的期望回报。MC增量更新中的Monte-Carlo error ( R − Q ( s t , a t ) R-Q(s_t,a_t) RQ(st,at)):
Q ( s t , a t ) ⇐ Q ( s t , a t ) + α ( R − Q ( s t , a t ) ) Q(s_t,a_t)\Leftarrow Q(s_t,a_t) + \alpha(R-Q(s_t,a_t)) Q(st,at)Q(st,at)+α(RQ(st,at))
TD(Time Difference) method,是MC和DP 方法的一个结合。相比MC方法,TD除了能够适用于连续任务外,和MC的差异从下图可以清楚看到。MC需要回退整个序列更新Q值,而TD只需要回退1步或n步更新Q值。因为MC需要等待序列结束才能训练,而TD没有这个限制,因此TD收敛速度明显比MC快,目前的主要算法都是基于TD。下图是TD和MC的回退图,很显然MC回退的更深。

img

1-step TD error: ( r t + 1 + γ Q ( s t + 1 a t + 1 − Q ( s t , a t ) ​ r_{t+1}+\gamma Q(s_{t+1}a_{t+1}-Q(s_t,a_t)​ rt+1+γQ(st+1at+1Q(st,at)):
Q ( s t , a t ) ⇐ Q ( s t , a t ) + α ( r t + 1 + γ 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+1}+\gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t)) Q(st,at)Q(st,at)+α(rt+1+γQ(st+1,at+1)Q(st,at))
n-steps TD error:

TD(λ) error:

事实上,MC error可以视为一个情节任务的max-step TD error。另外,一般来说,在TD error中,n越大,用到的真实回报信息更多,收敛也会越快。


五、推荐文章

[强化学习(四)用蒙特卡罗法(MC)求解]

强化学习(五)用时序差分法(TD)求解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值