您的位置:首页 > 其它

【二十】策略搜索

2016-11-06 12:06 225 查看

部分可观测马尔科夫决策过程 Partially Observable MDPs POMDPs

在上一讲中我们介绍了Kalman Filter方法,这一方法讨论了我们只能通过观测而不能通过直接获得的方式得到状态s,观测的结果可能相对状态有一定的偏差,Kalman Filter把这当作一个隐马尔科夫模型来处理HMM,在这一讲中,我们将更深入的讨论这一问题,将其推广到更一般的形式,这一问题称为部分可观测MDP问题,一般而言,这是一个NP-hard问题(Kalman Filter的方法只是一个特例)。

在POMDPs算法中,我们将之前的五元组扩展为七元组,即(S,A,Y,{Psa},{Os},T,R),其中

Y表示可能的观测结果的集合

Os表示在状态s下,观测结果的分布矩阵

显然在这一过程的每一步中,我们的观测结果Y~Os

策略搜索算法 Policy Search Algorithm

在上一讲中,我们为了得到状态转化的方程,构建了函数St+1 = ASt + Bat + wt,我们重点讲解了如何得到拟合系数的过程,但为了解决POMDPs问题,由于其是一个NP-hard问题,我们不能通过计算获得拟合的系数,此时我们通过策略搜索算法获得求解。

在策略搜索算法中,我们提出两个新的定义:

(1)我们定义一个策略集Π作为所有可能集合的合集,我们通过对集合Π进行搜索,找到其中可以获得最优结果的策略π(这一思想类似于我们在监督学习中定义将涉及H的过程,我们在H中搜索最优的假设函数h使监督学习产生的误差最小)

(2)一个随机策略是一个由状态和策略到一个实数的影响,即π:S*A->R,其中π(s, a)表示在状态s下执行动作a的概率,故Σπ(s, a)=1, π(s,a)≥0

在上述两个定义下,我们可以得出两种进行策略搜索的方法。

强化方法 Reinforce

强化方法的思路很简单,我们假设自己由状态s0开始,然后希望经过逐步的迭代获得最大回报Payoff的期望。此时目标函数为

    max E[ R(s0, a0) + R(s1, a1) + ... + R(sT, aT)]

=  max ΣP(s0, a0, s1, a1, ..., sT, aT)[R(s0, a0) + R(s1, a1) + ... + R(sT, aT)]

=  max Σp(s0)*π(s0, a0)*ps0a0(s1)*π(s1, a1)*...*πsT-1aT-1(sT-1, aT-1)[R(s0, a0) + R(s1, a1) + ... + R(sT, aT)]

其中,回报函数为Payoff = R(s0, a0) + R(s1, a1) + ... + R(sT, aT)

在此思想下,强化方法的算法执行过程如下

Loop{

sample s0, a0, s1, a1, ..., sT, aT

compute Payoff = R(s0, a0) + R(s1, a1) + ... + R(sT, aT)

update θ := θ+α*[(▽θπθ(s0, a0) / πθ(s0, a0) ) + (▽θπθ(s1, a1) / πθ(s1, a1) ) + ... + (▽θπθ(sT, aT) / πθ(sT, aT) ) ] * Payoff

}

注意到更新过程中的[(▽θπθ(s0, a0) / πθ(s0, a0) ) + (▽θπθ(s1, a1) / πθ(s1, a1) ) + ... + (▽θπθ(sT, aT) / πθ(sT, aT) ) ] * Payoff = ▽θE[Payoff]

这表示上述算法属于梯度上升算法,通过不断对Payoff函数进行求导,逐渐收敛于最优解。但我们应当注意到,对回报函数求导得到的梯度上升方向可能会存在一定的偏差,因此这应该称为随机梯度上升算法。

在POMDPs算法中,我们继承Kalman Filter算法中的思想,通过s_近似表示s(其中s_ = st|t)

Pegasus Policy Evaluation of Gradient And Search Using Scenarios

我们介绍的第二种方法成为Pegasus算法,这是梯度优化策略及情节搜索算法(Policy Evaluation of Gradient And Search Using Scenarios)的缩写,这一算法使用了之前模拟器的思想,即将生成下一个状态的过程抽象为对一个模拟器输入当前状态和当前动作的过程,由模拟器输出下一状态。但更广泛的,这一算法将当前动作产生的过程也视为一个黑盒,即对黑盒输入当前的状态,黑盒便输出当前的动作。我们希望通过拟合模拟及结果和政策之前的曲线,选择正确率最高的策略π。

但由于模拟器会产生一定的误差(我们通过随机值描述这一误差),因此即使给定相同的状态和动作,每一次模拟器生成的结果都是不同的,所以即便我们对某一次模拟器生成的结果不产生训练误差,下一次训练的结果便是不同的,依然会产生误差,这一问题的根源就来自于我们设立的随机数。但我们不能将随机数去掉,因为他们描述了状态转移过程中噪声的影响。为了解决这一问题,我们将产生一次随机数,然后将这些随机数固定下来进行之后的过程。

// 这里是分割线~

// 顺便给自己的公众号打个广告,希望大家多多关注哦~

// 关注我的公众号可以看到更多有意思的东西~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习教程