从马尔科夫决策过程到强化学习(From Markov Decision Process to Reinforcement Learning)

本文深入探讨了马尔科夫决策过程(MDP)及其在机器人迷宫问题中的应用,介绍了MDP的基本概念,如状态、行动、状态转换函数和回报函数。通过构建MDP搜索树,解释了策略和最优策略的重要性。文章进一步引出了价值迭代(Value Iteration)和贝尔曼方程,展示了如何解决MDP问题。最后,文章提到了强化学习,强调了在未知环境中通过试错学习的必要性。
摘要由CSDN通过智能技术生成

从马尔科夫决策过程到强化学习(From Markov Decision Process to Reinforcement Learning)

作者:Bluemapleman(tomqianmaple@outlook.com)

Github:https://github.com/bluemapleman (欢迎star和fork你喜欢的项目)

知识无价,写作辛苦,欢迎转载,但请注明出处,谢谢!


前言:强化学习本身的设定其实和马尔科夫决策过程(Markov Decision Process,简称MDP)很像,可以说,就是条件简化版的马尔科夫决策过程。因此,学习MDP模型,会很有助于我们理解强化学习的动机与意义。

提前规划:马尔科夫决策过程

马尔科夫决策过程,是这样一类问题——它由以下几个集合或者函数定义——:

  • 状态集合(Set of states):s ∈ \in S
  • 行动集合(Set of Actions):a ∈ \in A
  • 状态转换函数(Transition function) T(s,a,s’)
  • 回报函数(Reward function) R(s,a,s’)
  • 初始状态(Start state) s 0 s_0 s0
  • 终点状态(Terminal state) (可有可无/optional)

用一个形象的机器人迷宫例子来说明以上这些概念的含义:

机器人迷宫

pic1

图来自Berkeley CS188教案

假设有如上这么一个网格游戏,主角是一个机器人,它从Start字样的方格开始出发,可以任意以1个方格为单位四处走动。而机器人走到有宝石的地方(4,3)会获得加分,并结束游戏;走到有陷阱的地方(4,2)会减分,并结束游戏。(2,2)位置是一个障碍,无法通过。

那么在以上场景里:

  • 状态集合

机器人所可处的所有网格的集合:S={(1,1),(1,2),(1,3),(2,1)…}

  • 行动集合

机器人可以采取的行动集合: A={上,下,左,右}

  • 状态转换函数:

在这里我们有一个重要设定:当机器人采取某个行动,它并不一定达到该行动预期应当到达的状态,而是有一定可能到达其它状态。

举例来说,如果机器人当前在如上图所示的(3,1)位置,当它采取行动{上},它不会百分之百到达(3,2)位置,而是还有一定概率到达邻近的其它位置(比如(2,1),(4,1))。

停词,状态转换函数T(s,a,s’)描述了:机器人在状态s下采取行动a时,它到达不同后继状态的概率分布。

例如:

s a s’ T(s,a,s’)/Probability(s’)
(3,1) (2,1) 0.2
(3,1) (3,2) 0.7
(3,1) (4,1) 0.1

这个设定的意义在于,它在原本确定的搜索问题里引入了随机因素(不确定性)。如果这个问题的目标是找到一个行动策略序列,使得机器人的分值可以最大化,并且问题是确定的(即每个状态下的行动有确定的结果/后继状态),那么这个问题其实就是一个简单的搜索问题,我们可以依据给定的信息的程度,决策用非智能搜索(uninformed search)算法如BFS/DFS/Uniform Cost Search,或者用智能搜索(informed search)算法如A* Search来解决问题。(以上搜索算法详情请参考CS188教案)。

然而,因为有了这个设定,这个问题有了不确定性,这也是我们为什么专门设立了MDP这个新概念来描述这一类问题的动机所在。(而我们要费力气把问题搞得复杂,也正是为了让问题越来越贴近现实情况,强化学习也是把不确定问题近一步抽象化,使得更贴近实际情况,当然这是后话

  • 回报函数

当机器人在状态s下采取了行动a,到达后继状态s’后,会获得一个回报值,该值由R(s,a,s’)定义。

更一般的情况下,R(s,a,s’)可能只由s’决定,因此R(s,a,s’)=R(s’)。

比如在上图中,R((4,3))=1, R((4,2))=-1, R(other states)=0。

如何解决机器人迷宫的最优化问题

定义MDP搜索树

pic2

我们尝试把MDP问题贴近到确定性问题的搜索问题:可以定义如上这么一个MDP搜索树,每个三脚结点代表一个状态(根三角结点代表初始状态)。而每个椭圆结点代表一个“状态-行动”结点,它表示在状态s下采取行动a后,机器人可能处于的各种后继状态的总集,这个总集按照T(s,a,s’)的分布,分支出子结点。

而我们的目标就是:找到最优的叶子状态结点,它具有最高的reward值。

策略(Policy)

我们需要定义一个新概念:策略(Policy)

如其字面意义,我们需要有一个参考,这个参考告诉机器人:当机器人处在状态s时,应当采取哪一个行动。

它可以表示为 π ∗ : S − > A \pi^*:S->A π:S>A

所以策略本质上也是一个函数 π ( s ) = a \pi(s)=a π(s)=a。而一个**最优策略(optimal policy)**是一个只要机器人遵从,就会获得最大期望效益/得分的策略。

  • 策略效用折现(Discounting)

pic3

我们每次往MDP搜索树的下一层进发时,我们都需要对下一层的效用进行一次折现。因为直觉来说,我们对于数量相同的效用,它出现在未来和出现在现在的价值可能完全是不一样的,(考虑给你两个选择,现在给你100块,和10年后给你105块,你选哪一个?肯定是前者对不对?毕竟有通货膨胀,而且指不定10年后我还给不给你这笔钱。)

而从问题解决来说,对后续的回报进行折现,也是有利于我们的算法尽快收敛到最优解上的。

解决方案:Value Iteration

pic4

总结一下,我们现在面对的MDP问题的设定是如上图这样的。

而我们接下来将给出的第一个解决MDP问题的方法是Value Iteration。在了解这个方法的具体做法之前,我们还需要定义几个新的重要函数

pic5

  • 状态s的效用:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值