强化学习 有限马尔可夫决策过程

一、马尔可夫动力

MDP(马尔可夫)是序列决策的经典形式化的表达,其动作action不仅影响当前的即时收益,还影响后续的状态以及未来的收益。MDP是一种通过交互式学习来实现目标的理论框架,进行学习及决策的机器被称为 agent。智能体之外所有与其相互作用的事物都被称为环境 environment。这些事物之间持续进行交互,智能体选择动作,环境对这些动作做出相应的响应,并向智能体呈现出新的状态。环境也会产生一个收益,通常是特定的数值,这就是智能体坐选择过程中最大化的目标(详见上文介绍:https://blog.csdn.net/qq_36336522/article/details/107081782)。

在有限的MDP中,状态(S),动作(A),和收益(R)的集合都是只有有限个元素。在这种情况下,堆积变量Rt,St具有明确定义的离散概率分布,我们定义一个四元函数:(注意,这里是定义为,不是经过推断出来的,也就是这个函数是一个人为定义的函数,不需要证明)

p(s',r,|s,a)\doteq Pr \left \{ {S_{t}}=s',R_{t}=r| S_{t-1}=s,A_{t-1}=a \right \}

这个函数的意思是上一个时刻的 agent 状态是 s,他做出动作 a,那么下一刻 agent做出动作是s’,以及状态变成r的概率。

对于上面的四元函数,有一个限制条件:

\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)=1

从上面的四元函数,可以计算出关于环境的其他任何信息,比如说:状态S进行转移的概率:

p(s'|s,a)\doteq Pr \left \{ S_{t}=s'| S_{t-1}=s,A_{t-1}=a \right \}=\sum_{r \in S}p(s',r|s,a)

再比如:对于收益R的收益期望(动作-状态,二元组收益):(仅仅是当前收益)

r(s,a)\doteq E[R_{t} | S_{t-1}=s,A_{t-1}=a]=\sum_{r \in R}r\sum_{s' \in S} p(s',r|s,a) 

二、一个案例:回收机器人

回收机器人,用于在办公室收集汽水罐,它运行在可充电的电池上,并且包含探测罐子的传感器和捡起并收集罐子的夹子。如何搜寻罐子的策略是由强化学习的agent基于当前的电量做出的。agent可以让机器人做以下几件事:(1)积极搜寻一段时间;(2)等待一段时间,等待有人把罐子拿过来;(3)回去充电。因此,agent有三种action。状态由电池的状态决定。当机器人拿到罐子,则获得正的奖励,当电池用完时,获得一个大的负的奖励。假设状态的变化规律为:最好的拿到罐子的方式是主动搜寻,但是这会消耗电量,但是原地等待不会消耗电量。当是低电量的时候,执行搜索可能会耗尽电池,这种情况下,机器人必须关闭电源,等待救援。

agent执行动作仅仅依赖于电量,因此,状态集为S={high,low}S={high,low},agent的动作有wait, serach, recharge。因此,agent的动作集合为A(high)={search,wait},A(low)={search,wait,recharge}A(high)={search,wait},A(low)={search,wait,recharge}。

如果电量是高的,则一次搜索一般不会耗尽电池,搜索完成后还是高电量的概率为α,是低电量的概率为1−α。当电池处于低电量时,执行一次搜索后还是低电量的概率为β,耗尽电池的概率为1−β,然后需要对机器人进行充电,所以状态将转化为s′=high。每次主动搜索会得到奖励rsearch,等待则会获得奖励rwait,rsearch>rwait。当机器人需要救援的时候,则奖励为−3。

上述系统可以看成是一个finite MDP,转移概率和期望奖励如下表所示。

三、马尔可夫策略

几乎所有的强化学习算法都涉及价值函数的计算,价值函数是状态(或者状态与动作二元组)的函数。用来评估当前智能体再给定状态下,有多好。这里的有多好的意思是指:用未来的预期收益来定义的,或者更加准确的说是,回报的期望值。当然,智能体期望未来能得到的收益取决于智能体所选择的动作。

策略:策略是从状态到每一个动作的选择概率之间的映射。如果智能体再时刻t选择了策略 \pi,那么\pi (a|s)就是当St=s,At=a的概率。简单的说,策略就是agent做决策的战术,不是从action集合中随机选择一个进行操作,agent想要通过他的策略证明自己很“聪明”。

四、马尔可夫策略价值函数

价值函数定义:

策略\pi的状态价值函数:(表示从状态S开始采用策略的预期收益)

                                     v_{\pi}(s)\doteq E_{\pi}[G_{t}|S_{t}=s]= E_{\pi}[\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+1} | S_{t}=s]

策略\pi的动作价值函数:(表示在状态S采取动作A后采用策略的预期回报)

                                    q_{\pi}(s,a)\doteq E_{\pi}[G_{t}|S_{t}=s,A_{t}=a]= E_{\pi}[\sum_{k=0}^{\infty}\gamma^{k}R_{t+k+1} | S_{t}=s,A_{t}=a]

这里说以下,为什么需要表示状态价值函数和动作价值函数,我们知道,强化学习是一个agent根据不同的动作(A),在当前状态(S)的背景下,得到不同新的状态(S’);当然我们需要做的时,根据这些不同的动作给定一个奖励(R),以此让agent在最终的时候能够做出最佳的动作,得到我们想要的状态。那么怎么做出选择呢,不是随机,是需要按照一定的策略,这个策略是不同动作可能性的集合,不同的可能性拥有不同的价值,我们的目的就是选择全局最优的价值函数。这听起来是不是有点像博弈(下围棋)的过程。

下面是两张图:

(i) 用t时刻的动作价值函数表示t时刻的状态价值函数:

v_{\pi}(s)=\sum_{a}\pi(a|s)q_{\pi}(s,a)

(ii) 用t+1时刻的状态价值函数表示t时刻的动作价值函数:

q_{\pi}(s,a)=\sum_{s',r}p(s',r|s,a)[r+\gamma v_\pi(s')]

价值函数v,q都能从经验中估算得到,比如,一个智能体遵循策略pi,并且对每一个遇到的状态都记录该状态后的实际回报的平均值,那么随着状态出现了无限多次(或者说这个状态存在了很多次),那么这个平均值会收敛到状态价值函数v,同样的,你每次都保留每一个状态下每一个动作的实际回报,求这些值的平均值,那么这些平均值也会收敛到动作价值函数q,(蒙特卡洛方法)只不过在现实中,环境存在的多状态不允许我们这样操作,所以我们就需要对价值函数v,q进行参数化,去调整这些参数一边获得更好的计算回报值,这个后面会谈到。

五、贝尔曼方程

在强化学习中,价值函数有一个特性,就是他们满足某种递归关系,类似与我们之前为回报建立的递归公式,即:

G_t = R_{t+1}+\gamma R_{t+2}+\gamma ^{2} R_{t+1}+... =\sum\gamma ^{k}R_{t+k+1}

G_t = R_{t+1}+\gamma G_{t+1}

这里也需要将动作的价值函数进行递归:

v_{\pi}(s)\doteq E_{\pi}[G_{t}|S_{t}=s]=E_{\pi}[R_{t+1}+\gamma G_{t+1} |S_{t}=s] -(1) 

=\sum_{a}\pi(a|s)\sum_{s'}\sum_{r}p(s',r|s,a)[r+\gamma E_{\pi}[G_{t+1}|S_{t+1}=s']]-(2) 

=\sum_{a}\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma v_{\pi}(s')]-(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值