强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代

这篇具有很好参考价值的文章主要介绍了强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代

1.马尔科夫决策核心词汇

  • 马尔可夫性质(Markov property,MP):如果某一个过程未来的状态与过去的状态无关,只由现在的状态决定,那么其具有马尔可夫性质。换句话说,一个状态的下一个状态只取决于它的当前状态,而与它当前状态之前的状态都没有关系。
  • 马尔可夫链(Markov chain): 概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。
  • 状态转移矩阵(state transition matrix):状态转移矩阵类似于条件概率(conditional probability),其表示当智能体到达某状态后,到达其他所有状态的概率。矩阵的每一行描述的是从某节点到达所有其他节点的概率。
  • 马尔可夫奖励过程(Markov reward process,MRP): 本质是马尔可夫链加上一个奖励函数。在马尔可夫奖励过程中,状态转移矩阵和它的状态都与马尔可夫链的一样,只多了一个奖励函数。奖励函数是一个期望,即在某一个状态可以获得多大的奖励。
  • 范围(horizon):定义了同一个回合(episode)或者一个完整轨迹的长度,它是由有限个步数决定的。
  • 回报(return):把奖励进行折扣(discounted),然后获得的对应的奖励。
  • 贝尔曼方程(Bellman equation):其定义了当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 ⋅\cdot⋅ 贝尔曼(Richard Bellman)而得名,同时也被叫作“动态规划方程”。贝尔曼方程即 V(s)=R(s)+γ∑s′∈SP(s′∣s)V(s′)V(s)=R(s)+ \gamma \sum_{s’ \in S}P(s’|s)V(s’)V(s)=R(s)+γ∑s′∈SP(s′∣s)V(s′) ,特别地,其矩阵形式为 V=R+γPV\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}V=R+γPV。
  • 蒙特卡洛算法(Monte Carlo algorithm,MC algorithm): 可用来计算价值函数的值。使用本节中小船的例子,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它随波流动,这样就会产生一个轨迹,从而得到一个折扣后的奖励 ggg 。当积累该奖励到一定数量后,用它直接除以轨迹数量,就会得到其价值函数的值。
  • 动态规划算法(dynamic programming,DP): 其可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态差距不大的时候,动态规划算法的更新就可以停止。
  • Q函数(Q-function): 其定义的是某一个状态和某一个动作所对应的有可能得到的回报的期望。
  • 马尔可夫决策过程中的预测问题:即策略评估问题,给定一个马尔可夫决策过程以及一个策略 π\piπ ,计算它的策略函数,即每个状态的价值函数值是多少。其可以通过动态规划算法解决。
  • 马尔可夫决策过程中的控制问题:即寻找一个最佳策略,其输入是马尔可夫决策过程,输出是最佳价值函数(optimal value function)以及最佳策略(optimal policy)。其可以通过动态规划算法解决。
  • 最佳价值函数:搜索一种策略 π\piπ ,使每个状态的价值最大,V∗V^*V∗ 就是到达每一个状态的极大值。在极大值中,我们得到的策略是最佳策略。最佳策略使得每个状态的价值函数都取得最大值。所以当我们说某一个马尔可夫决策过程的环境可解时,其实就是我们可以得到一个最佳价值函数。

2.常见问题汇总

2.1为什么在马尔可夫奖励过程中需要有折扣因子?

(1)首先,是有些马尔可夫过程是环状的,它并没有终点,所以我们想避免无穷的奖励。

(2)另外,我们想把不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来的某个时刻得到奖励。

(3)接上一点,如果这个奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面才可以得到奖励。

(4)还有,在有些时候,折扣因子也可以设为0。当它被设为0后,我们就只关注它当前的奖励。我们也可以把它设为1,设为1表示未来获得的奖励与当前获得的奖励是一样的。

所以,折扣因子可以作为强化学习智能体的一个超参数进行调整,然后就会得到不同行为的智能体。

2.2 为什么矩阵形式的贝尔曼方程的解析解比较难求得?

通过矩阵求逆的过程,我们就可以把 VVV 的解析解求出来。但是这个矩阵求逆的过程的复杂度是 O(N3)O(N^3)O(N3) ,所以当状态非常多的时候,比如从10个状态到1000个状态,到100万个状态,那么当我们有100万个状态的时候,转移矩阵就会是一个100万乘100万的矩阵。对于这样一个大矩阵进行求逆是非常困难的,所以这种通过解析解去解的方法,只能应用在很小量的马尔可夫奖励过程中。

2.3 计算贝尔曼方程的常见方法有哪些,它们有什么区别?

(1)蒙特卡洛方法:可用来计算价值函数的值。以本书中的小船示例为例,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它“随波逐流”,这样就会产生一条轨迹,从而得到一个折扣后的奖励 ggg 。当积累该奖励到一定数量后,直接除以轨迹数量,就会得到其价值函数的值。

(2)动态规划方法:可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态区别不大的时候,通常是小于一个阈值 γ\gammaγ 时,更新就可以停止。

(3)以上两者的结合方法:我们也可以使用时序差分学习方法,其为动态规划方法和蒙特卡洛方法的结合。

2.4 马尔可夫奖励过程与马尔可夫决策过程的区别是什么?

相对于马尔可夫奖励过程,马尔可夫决策过程多了一个决策过程,其他的定义与马尔可夫奖励过程是类似的。由于多了一个决策,多了一个动作,因此状态转移也多了一个条件,即执行一个动作,导致未来状态的变化,其不仅依赖于当前的状态,也依赖于在当前状态下智能体采取的动作决定的状态变化。对于价值函数,它也多了一个条件,多了一个当前的动作,即当前状态以及采取的动作会决定当前可能得到的奖励的多少。

另外,两者之间是有转换关系的。具体来说,已知一个马尔可夫决策过程以及一个策略 π\piπ 时,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程中,状态的转移函数 P(s′∣s,a)P(s’|s,a)P(s′∣s,a) 是基于它的当前状态和当前动作的,因为我们现在已知策略函数,即在每一个状态,我们知道其采取每一个动作的概率,所以我们就可以直接把这个动作进行加和,就可以得到对于马尔可夫奖励过程的一个转移概率。同样地,对于奖励,我们可以把动作去掉,这样就会得到一个类似于马尔可夫奖励过程的奖励。

2.5 马尔可夫决策过程中的状态转移与马尔可夫奖励过程中的状态转移的结构或者计算方面的差异有哪些?

对于马尔可夫链,它的转移概率是直接决定的,即从当前时刻的状态通过转移概率得到下一时刻的状态值。但是对于马尔可夫决策过程,其中间多了一层动作的输出,即在当前这个状态,首先要决定采取某一种动作,再通过状态转移函数变化到另外一个状态。所以在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程的不同之处。在马尔可夫决策过程中,动作是由智能体决定的,所以多了一个组成部分,智能体会采取动作来决定未来的状态转移。

2.6 我们如何寻找最佳策略,寻找最佳策略方法有哪些?

本质来说,当我们取得最佳价值函数后,我们可以通过对Q函数进行最大化,从而得到最佳价值。然后,我们直接对Q函数取一个让动作最大化的值,就可以直接得到其最佳策略。具体方法如下,

(1)穷举法(一般不使用):假设我们有有限个状态、有限个动作可能性,那么每个状态我们可以采取 AAA 种动作策略,那么总共就是 ∣A∣∣S∣|A|^{|S|}∣A∣∣S∣ 个可能的策略。我们可以把他们穷举一遍,然后算出每种策略的价值函数,对比一下就可以得到最佳策略。但是这种方法的效率极低。

(2)策略迭代: 一种迭代方法,其由两部分组成,以下两个步骤一直在迭代进行,最终收敛,其过程有些类似于机器学习中的EM算法(期望-最大化算法)。第一个步骤是策略评估,即当前我们在优化这个策略 π\piπ ,在优化过程中通过评估从而得到一个更新的策略;第二个步骤是策略提升,即取得价值函数后,进一步推算出它的Q函数,得到它的最大值。

(3)价值迭代: 我们一直迭代贝尔曼最优方程,通过迭代,其能逐渐趋向于最佳策略,这是价值迭代方法的核心。我们为了得到最佳的 V∗V^*V∗ ,对于每个状态的 V∗V^*V∗ 值,直接使用贝尔曼最优方程进行迭代,迭代多次之后它就会收敛到最佳策略及其对应的状态,这里是没有策略函数的。

3.面试必知必答

3.1友善的面试官:请问马尔可夫过程是什么?马尔可夫决策过程又是什么?其中马尔可夫最重要的性质是什么呢?

马尔可夫过程是一个二元组 <S,P><S,P><S,P> , SSS 为状态集合, PPP 为状态转移函数;

马尔可夫决策过程是一个五元组 <S,P,A,R,γ><S,P,A,R,\gamma><S,P,A,R,γ>, 其中 RRR 表示从 SSS 到 S′S’S′ 能够获得的奖励期望, γ\gammaγ 为折扣因子, AAA 为动作集合;

马尔可夫最重要的性质是下一个状态只与当前状态有关,与之前的状态无关,也就是 p(st+1∣st)=p(st+1∣s1,s2,…,st)p(s_{t+1} | s_t)= p(s_{t+1}|s_1,s_2,…,s_t)p(st+1∣st)=p(st+1∣s1,s2,…,st)。

3.2友善的面试官:请问我们一般怎么求解马尔可夫决策过程?

我们求解马尔可夫决策过程时,可以直接求解贝尔曼方程或动态规划方程:

V(s)=R(S)+γ∑s′∈Sp(s′∣s)V(s′)V(s)=R(S)+ \gamma \sum_{s’ \in S}p(s’|s)V(s’)V(s)=R(S)+γ∑s′∈Sp(s′∣s)V(s′)

特别地,其矩阵形式为 V=R+γPV\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}V=R+γPV。但是贝尔曼方程很难求解且计算复杂度较高,所以可以使用动态规划、蒙特卡洛以及时序差分等方法求解。

3.3友善的面试官:请问如果数据流不具备马尔可夫性质怎么办?应该如何处理?

如果不具备马尔可夫性,即下一个状态与之前的状态也有关,若仅用当前的状态来求解决策过程,势必导致决策的泛化能力变差。为了解决这个问题,可以利用循环神经网络对历史信息建模,获得包含历史信息的状态表征,表征过程也可以使用注意力机制等手段,最后在表征状态空间求解马尔可夫决策过程问题。

3.4友善的面试官:请分别写出基于状态价值函数的贝尔曼方程以及基于动作价值函数的贝尔曼方程。

(1)基于状态价值函数的贝尔曼方程: Vπ(s)=∑aπ(a∣s)∑s′,rp(s′,r∣s,a)[r(s,a)+γVπ(s′)]V_{\pi}(s) = \sum_{a}{\pi(a|s)}\sum_{s’,r}{p(s’,r|s,a)[r(s,a)+\gamma V_{\pi}(s’)]}Vπ(s)=∑aπ(a∣s)∑s′,rp(s′,r∣s,a)[r(s,a)+γVπ(s′)];

(2)基于动作价值函数的贝尔曼方程: Qπ(s,a)=∑s′,rp(s′,r∣s,a)[r(s′,a)+γVπ(s′)]Q_{\pi}(s,a)=\sum_{s’,r}p(s’,r|s,a)[r(s’,a)+\gamma V_{\pi}(s’)]Qπ(s,a)=∑s′,rp(s′,r∣s,a)[r(s′,a)+γVπ(s′)]。

3.5 友善的面试官:请问最佳价值函数 V∗V^*V∗ 和最佳策略 π∗\pi^*π∗ 为什么等价呢?

最佳价值函数的定义为 V∗(s)=max⁡πVπ(s)V^* (s)=\max_{\pi} V_{\pi}(s)V∗(s)=maxπVπ(s) ,即我们搜索一种策略 π\piπ 来让每个状态的价值最大。V∗V^V∗ 就是到达每一个状态其的最大价值,同时我们得到的策略就可以说是最佳策略,即 π∗(s)=arg⁡max⁡π Vπ(s)\pi^{}(s)=\underset{\pi}{\arg \max }~ V_{\pi}(s)π∗(s)=πargmax Vπ(s) 。最佳策略使得每个状态的价值函数都取得最大值。所以如果我们可以得到一个最佳价值函数,就可以说某一个马尔可夫决策过程的环境被解。在这种情况下,其最佳价值函数是一致的,即其达到的上限的值是一致的,但这里可能有多个最佳策略对应于相同的最佳价值。

3.6友善的面试官:能不能手写一下第nnn步的价值函数更新公式呀?另外,当 nnn 越来越大时,价值函数的期望和方差是分别变大还是变小呢?

nnn 越大,方差越大,期望偏差越小。价值函数的更新公式如下:

Q(S,A)←Q(S,A)+α[∑i=1nγi−1rt+i+γnmax⁡aQ(S′,a)−Q(S,A)]Q\left(S, A\right) \leftarrow Q\left(S, A\right)+\alpha\left[\sum_{i=1}^{n} \gamma^{i-1} r_{t+i}+\gamma^{n} \max _{a} Q\left(S’,a\right)-Q\left(S, A\right)\right]Q(S,A)←Q(S,A)+α[i=1∑nγi−1rt+i+γnamaxQ(S′,a)−Q(S,A)]

更多优质内容请关注公号:汀丶人工智能文章来源地址https://www.toymoban.com/news/detail-843500.html

到了这里,关于强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java进阶(ConcurrentHashMap)——面试时ConcurrentHashMap常见问题解读 & 结合源码分析 & 多线程CAS比较并交换 初识

    List、Set、HashMap作为Java中常用的集合,需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中线程安全的ConcurrentHashMap集合的面试问题,结合源码分析题目背后的知识点。 关于List的博客文章如下: Java进阶(List)——面试时List常见问题解读 结合源码分析 关于的Set的博

    2024年02月06日
    浏览(59)
  • 【技术驿站】分布式基础与常见面试问题

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年02月04日
    浏览(46)
  • 机器学习面试中常见问题整理

    机器学习( ML )作为目前一个比较火领域,提供了许多有趣且高薪的工作和机会。 无论你是刚刚踏入机器学习领域的新手,还是已经积累了一定经验的从业者,面试都是检验你技能和知识的重要环节。 本文将梳理一些常见的面试问题,让你在面试中更加自信从容。 想要从事

    2024年03月11日
    浏览(49)
  • 0基础学习VR全景平台篇 第92篇:智慧景区-智慧景区常见问题

    Q:怎么编辑景区里面各个景点的介绍和推荐该景点 A:在下方素材栏中该景点(素材)的右上角选择【编辑场景】里面就可以在场景介绍中编辑该场景的介绍并且在该选项中可以将此场景设置为推荐景点。 Q:景区项目可不可以离线浏览 A:需要联系蛙色客服并且要提供景区链

    2024年02月10日
    浏览(36)
  • 深度学习进阶篇[9]:对抗生成网络GANs综述、代表变体模型、训练策略、GAN在计算机视觉应用和常见数据集介绍,以及前沿问题解决

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月08日
    浏览(98)
  • JavaEE 面试常见问题

    Mybatis 是一种典型的半自动的 ORM 框架,所谓的半自动,是因为还需要手动的写 SQL 语句,再由框架根据 SQL 及 传入数据来组装为要执行的 SQL 。其优点为: 1. 因为由程序员自己写 SQL ,相对来说学习门槛更低,更容易入门。 2. 更方便做 SQL 的性能优化及维护。 3. 对关系型数据

    2024年02月14日
    浏览(48)
  • 面试-Dubbo常见问题

    Dubbo 是一个RPC框架,包含注册中心,服务提供方,服务消费方,控制台,监控中心。 Dubbo 启动时会从注册中心拉取消费者需要的提供方信息,如果依赖的服务提供方不可用,Dubbo消费方会启动失败,并且不停的向注册中心请求提供方信息,抛出异常找不到对应的提供方。可以

    2024年02月08日
    浏览(46)
  • 面试-java常见问题

    程序计数器:当前线程所执行的字节码的行号指示器 java虚拟机栈:临时变量 元空间:类常量池,运行时常量池 方法区:类信息,静态变量 堆:对象实例,Sting常量池等 加载-链接(验证+准备+解析)-初始化-使用-卸载 加载 :将硬盘中的二进制文件转为内存中的class对象 链接

    2024年02月08日
    浏览(51)
  • 【数据结构面试常见问题】

    数据结构作为计算机的一门基础学科,它在面试中占有很大的比重,本科阶段,我们也学过数据结构与算法,内容比较多,也比较难,尤其是图的应用以及各类查找和排序算法,这些也都是核心内容。数据结构在实际的应用中也比较多,因此,整理一些常见的笔试、面试的数

    2024年03月22日
    浏览(43)
  • 项目经理岗面试常见问题

    一、注意事项   ·电面邀约确认(避免hr刷KPI): 请问贵司招聘的是什么岗位,是新建团队还是原有团队? 这边面试流程是怎样的,是 leader 直接面,还是?   ·面试前铺垫: 如果您对某部分感兴趣,请随时打断我。   ·面试中发挥: 尽量采用 STAR 原则回答,即 情境( Si

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包