目录

深度强化学习目录

简介

贝尔曼方程,又叫动态规划方程,是以Richard Bellman命名的,表示动态规划问题中相邻状态关系的方程。某些决策问题可以按照时间或空间分成多个阶段,每个阶段做出决策从而使整个过程取得效果最优的多阶段决策问题,可以用动态规划方法求解。某一阶段最优决策的问题,通过贝尔曼方程转化为下一阶段最优决策的子问题,从而初始状态的最优决策可以由终状态的最优决策(一般易解)问题逐步迭代求解。存在某种形式的贝尔曼方程,是动态规划方法能得到最优解的必要条件。绝大多数可以用最优控制理论解决的问题,都可以通过构造合适的贝尔曼方程来求解。
[内容来源: Bertsekas, D. P. (1976). Dynamic Programming and Stochastic Control. Academic Press, Inc.]

Bellman方程说明优化问题可以用迭代的方式来化成子问题,因此,我们要证明状态-值函数V同样可以表示成Bellman方程的形式,这样V就可以通过迭代来计算了。

符号

  • GtG_tGt​:时间从t到结束的累积奖赏,由于t时刻的奖励是采取行动后t+1时刻才拥有的,所以GtG_tGt​满足:Gt=rt+1+rt+2+…G_t={r_{t+1}+r_{t+2}+\ldots}Gt​=rt+1​+rt+2​+…
  • Vπ(s)V_\pi(s)Vπ​(s):策略为π\piπ的状态-值函数,即状态s下预计累计回报的期望值,满足:Vπ(s)=E[Gt∣St=s]V_\pi(s)=\mathbb{E}[G_t\vert S_t=s]Vπ​(s)=E[Gt​∣St​=s]
  • Qπ(s,a)Q_\pi(s,a)Qπ​(s,a):策略为π\piπ的状态-动作值函数,即状态s下采取行动a预计累计回报的期望值,满足:Qπ(s,a)=E[Gt∣St=s,At=a]Q_\pi(s,a)=\mathbb{E}[G_t\vert S_t=s,A_t=a]Qπ​(s,a)=E[Gt​∣St​=s,At​=a]
  • Ps→s′aP_{s\rightarrow s'}^aPs→s′a​:采取行为a后状态s转换到s’的概率。
  • Rs→s′aR_{s\rightarrow s'}^aRs→s′a​:采取行为a后状态s转换到s’所获得的奖赏。
  • π(s,a)\pi(s,a)π(s,a):状态s下根据策略π\piπ采取行为a的概率。

回报衰减

从实际含义去考虑,长期累积奖赏不能直接相加,那样效果很差,因此采取折扣累积奖赏的方法。定义衰减系数γ\gammaγ,且累积奖赏为:Gt=rt+1+γrt+2+…=∑k=0∞γkrt+k+1G_t={r_{t+1}+\gamma r_{t+2}+\ldots}=\sum_{k=0}^{\infty}\gamma^kr_{t+k+1}Gt​=rt+1​+γrt+2​+…=k=0∑∞​γkrt+k+1​

推导函数

Vπ(s)=E[Gt∣St=s]=E[rt+1+(γrt+2+…)∣St=s]=E[rt+1+γGt+1∣St=s]=∑a∈Aπ(s,a)∑s′∈SPs→s′a⋅(Rs→s′a+γE[Gt+1∣St+1=s′])=∑a∈Aπ(s,a)∑s′∈SPs→s′a⋅(Rs→s′a+γVπ(s′))=E[rt+1+γVπ(st+1)∣St=s]\begin{aligned} V_\pi(s)&=\mathbb{E}[G_t\vert S_t=s] \\ &= \mathbb{E}[r_{t+1}+(\gamma r_{t+2}+\ldots)\vert S_t=s] \\ &= \mathbb{E}[r_{t+1}+\gamma G_{t+1}\vert S_t=s] \\ &= \sum_{a\in A}\pi(s,a)\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma\mathbb{E}[G_{t+1}\vert S_{t+1}=s']) \\ &= \sum_{a\in A}\pi(s,a)\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V_\pi(s')) \\ &= \mathbb{E}[r_{t+1}+\gamma V_\pi(s_{t+1})\vert S_t=s] \end{aligned}Vπ​(s)​=E[Gt​∣St​=s]=E[rt+1​+(γrt+2​+…)∣St​=s]=E[rt+1​+γGt+1​∣St​=s]=a∈A∑​π(s,a)s′∈S∑​Ps→s′a​⋅(Rs→s′a​+γE[Gt+1​∣St+1​=s′])=a∈A∑​π(s,a)s′∈S∑​Ps→s′a​⋅(Rs→s′a​+γVπ​(s′))=E[rt+1​+γVπ​(st+1​)∣St​=s]​

第四步是动作-状态全概率展开,相当于写出当前状态s到下一个所有可能的状态s’的转换概率,再根据转换概率求和。
有了状态值函数V,我们就能直接计算出状态-动作值函数:Qπ(s,a)=∑s′∈SPs→s′a⋅(Rs→s′a+γVπ(s′))(1.1)Q_\pi(s,a)=\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V_\pi(s')) \tag{1.1}Qπ​(s,a)=s′∈S∑​Ps→s′a​⋅(Rs→s′a​+γVπ​(s′))(1.1)

最优Bellman方程

一个强化学习任务可能有多个最优策略,最优策略所对应的值函数V⋆(s)V^\star(s)V⋆(s)称为最优值函数,即:∀s∈S,V⋆(s)=Vπ⋆(s)\forall s\in S,V^\star(s)=V_{\pi^\star}(s)∀s∈S,V⋆(s)=Vπ⋆​(s)

由于最优值函数的累积奖赏值已达最大,因此可以对前面的Bellman方程做一个改动,将对动作的概率求和改为取最优:V⋆(s)=max⁡a∈A∑s′∈SPs→s′a⋅(Rs→s′a+γV⋆(s′))V^\star(s)= \max_{a\in A}\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma V^\star (s'))V⋆(s)=a∈Amax​s′∈S∑​Ps→s′a​⋅(Rs→s′a​+γV⋆(s′))

这是一种贪心的做法。因为这是马尔科夫过程(MDP),当前状态只与上一状态相关,所以能使当前状态下值函数最大的动作,一定是最大化当前状态下累积奖赏的动作,也即:
V⋆(s)=max⁡a∈AQπ⋆(s,a)V^\star(s)=\max_{a\in A}Q_{\pi^\star}(s,a)V⋆(s)=a∈Amax​Qπ⋆​(s,a)

将上式带入公式1.1,可以得到最优状态-动作值函数:
Q⋆(s,a)=∑s′∈SPs→s′a⋅(Rs→s′a+γmax⁡a′∈AQ⋆(s′,a′))Q^\star(s,a)=\sum_{s'\in S}P_{s\rightarrow s'}^a\cdot(R_{s\rightarrow s'}^a+\gamma \max_{a'\in A}Q^\star(s',a'))Q⋆(s,a)=s′∈S∑​Ps→s′a​⋅(Rs→s′a​+γa′∈Amax​Q⋆(s′,a′))

上述关于最优值函数的等式,称为最优Bellman方程(或最优Bellman等式),其唯一解是最优值函数。
最优Bellman方程揭示了非最优策略的改进方式,即将策略选择的动作改变为当前的最优动作。假设动作改变后对应的策略为π′\pi'π′,改变动作的条件为Qπ(s,π′(s))≥Vπ(s)Q_\pi(s,\pi'(s))\ge V_\pi(s)Qπ​(s,π′(s))≥Vπ​(s),以γ\gammaγ折扣累积奖赏为例,可以进行如下公式推导:Vπ(s)≤Qπ(s,π′(s))=∑s′∈SPs→s′π′(s)⋅(Rs→s′π′(s)+γVπ(s′))≤∑s′∈SPs→s′π′(s)⋅(Rs→s′π′(s)+γQπ(s′,π′(s′)))=…=Vπ′(s)\begin{aligned} V_\pi(s)&\le Q_\pi(s,\pi'(s))\\ &=\sum_{s'\in S}P_{s\rightarrow s'}^{\pi'(s)}\cdot(R_{s\rightarrow s'}^{\pi'(s)}+\gamma V_\pi(s'))\\ &\le \sum_{s'\in S}P_{s\rightarrow s'}^{\pi'(s)}\cdot(R_{s\rightarrow s'}^{\pi'(s)}+\gamma Q_\pi(s',\pi '(s')))\\ &=\ldots \\ &=V_{\pi'}(s) \end{aligned}Vπ​(s)​≤Qπ​(s,π′(s))=s′∈S∑​Ps→s′π′(s)​⋅(Rs→s′π′(s)​+γVπ​(s′))≤s′∈S∑​Ps→s′π′(s)​⋅(Rs→s′π′(s)​+γQπ​(s′,π′(s′)))=…=Vπ′​(s)​

省略号省略的部分就是将Q值再代入为V,和第二步一样,说明每一次满足Qπ(si,π′(si))≥Vπ(si)Q_\pi(s_i,\pi'(s_i))\ge V_\pi(s_i)Qπ​(si​,π′(si​))≥Vπ​(si​)都会增大不等式,而不等式右端又恒等于Vπ′(s)V_{\pi'}(s)Vπ′​(s),所以一定有Vπ′(s)≥Vπ(s)V_{\pi'}(s)\ge V_{\pi}(s)Vπ′​(s)≥Vπ​(s)。
由上可知,值函数对于策略的每一点改进都是单调递增的,或者说至少是不递减的。因此对于当前策略π\piπ,必然可以将其改进为:π′(s)=argmax⁡a∈AQπ(s,a)\pi'(s)=arg\max_{a\in A} Q_\pi(s,a)π′(s)=arga∈Amax​Qπ​(s,a)直至π′\pi'π′与π\piπ一致,不再变化,此时就满足了最优Bellman方程,找到了最优策略。

总结

状态-值函数的Bellman方程的基本形式确立,标志其可以化为子问题迭代,也说明其必然可以改进为最优解,必定收敛。

1.贝尔曼方程(Bellman equation)相关推荐

  1. 【学习笔记】传说中的马尔可夫决策过程(MDP)和贝尔曼方程(Bellman Equation)

    最近读了几篇paper,都着重涉及到了强化学习,都点到了马尔可夫决策过程(Markov Decision Process) 和贝尔曼方程或者叫贝尔曼等式(Bellman Equation),捧着似懂非 ...

  2. 贝尔曼方程(Bellman Equation)

    贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现,由于其中运用了变分 ...

  3. Bellman Equation 贝尔曼方程

    Bellman equation(贝尔曼方程),是以Richard E.Bellman命名,是数值最优化方法的一个必要条件,又称为动态规划.它以一些初始选择的收益以及根据这些初始选择的结果导致的之后的 ...

  4. 【强化学习】Bellman Equation Derivation (贝尔曼方程的推导)

    Bellman Equation Derivation: Return(GtG_{t}Gt​) 说的是把奖励进行折扣后所获得的收益. State value function(Vt(s)V_{t}(s ...

  5. 贝尔曼方程动态规划python,【强化学习】马尔科夫决策过程之Bellman Equation(贝尔曼方程)...

    前面总结了马尔科夫决策过程之Markov Processes(马尔科夫过程),见下文:马尔科夫决策过程之Markov Processes(马尔科夫过程) 马尔科夫决策过程之Markov Reward ...

  6. bellman operator 和bellman equation概念区分

    在阅读强化学习相关的论文时经常会遇到bellman operator和bellman equation,例如:状态动作值函数的贝尔曼等式: 状态动作值函数的贝尔曼算子: 那么这两个东西到底有什么区别呢 ...

  7. 什么是强化学习?(贝尔曼方程)

    文章目录 什么是强化学习?(贝尔曼方程) 3.贝尔曼方程(Bellman equation) 3.1贝尔曼期望方程(Bellman expectation equation) 3.2 贝尔曼最优方程( ...

  8. MDP 与 贝尔曼方程

    Markov Decision Process 学习强化学习接触到的第一个概念可能就是马尔可夫链(Markov Chain,MC)和马尔可夫决策过程(Markov Decision Process,M ...

  9. ADPRL - 近似动态规划和强化学习 - Note 6 - Mitigating the Curse of Dimensionality

    Note 6 Mitigating the Curse of Dimensionality 减轻维度诅咒 6. Mitigating the Curse of Dimensionality 减轻维度诅 ...

最新文章

  1. 通过 python-xmp-toolkit 读取图片xmlp信息
  2. Python学习—pyhton中的进程
  3. vim 打开中文乱码
  4. 沈阳大学计算机系教师,张春芳(信息工程学院)老师 - 沈阳大学 - 院校大全
  5. 控制用户输入字符的个数
  6. Java基于socket服务实现UDP协议的方法
  7. mysql的引双向链表_一分钟掌握MySQL的InnoDB引擎B+树索引
  8. 一个HTTP请求,把网站打裂开了!
  9. Java redis
  10. 正则 0个或多个_正则表达式一知半解
  11. 安卓开发 实现文字渐变效果_AI教程!用网格工具做渐变字效
  12. matlab车牌识别源代码资源,车牌识别系统MATLAB源代码完整
  13. vue项目运行后自动打开浏览器
  14. OpenNLP中关于语言检测的语料训练
  15. 病毒茶几 U盘里的恶魔——Autorun病毒
  16. ocr图文识别工具Text Scanner for Mac
  17. 使用NMT和pmap解决JVM资源泄漏问题
  18. 关于HOOK,如何通过钩子截获指定窗口的所有消息 SetWindowsHookEx
  19. 【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
  20. 稳住!特斯拉电动皮卡

热门文章

  1. 通用定时器产生PWM
  2. 日文發音中的PTK法則
  3. SAP EWM仓储管理系统与自动化仓储硬件对接方案介绍
  4. GYM 101173 K.Key Knocking(构造)
  5. spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘
  6. C fork introduce
  7. 通过Akka学习指数退避(Exponential Backoff)
  8. 2022美国小非农ADP数据发布时间一览表
  9. Android 自定义View
  10. ad7606中文资料_16位ADC数据采集模块AD7606(原理图、中文数据手册、例程等)