2017-07-25 17:24来源:机器人圈 图:pixabay 原文来源:medium 作者:José Miguel Hernández Lobato 「机器人圈」编译:嗯~阿童木呀、多啦A亮 首先,在这里,介绍一下我们最近在ICLR(International Conference on Learning Representations)上发表的论文《利用贝叶斯神经网络进行随机动力系统中的学习与策略搜索》(ICLR 2017)。点击此处查看论文代码和视频。它介绍了一种基于模型的强化学习的新方法。这项成果的主要作者是Stefan Depeweg,他是慕尼黑技术大学的博士生。 在这项成果中,关键的贡献在于我们的模型:具有随机输入的贝叶斯神经网络,其输入层包含输入特征,以及随机变量,其通过网络向前传播并在输出层转换为任意噪声信号。 随机输入使我们的模型能够自动捕获复杂的噪声模式,提高基于模型的模拟质量,并在实践中制定出更好的策略。 问题描述 我们解决了随机动力系统中策略搜索的问题。例如,我们要操作诸如燃气轮机这样的工业系统: 这些系统的抽象图如下所示。系统的当前状态被表示为s_t并且与每个状态s_t相关联,同时存在一个由函数c()给出的成本c(s_t)。在每个时间步中,我们应用一个操作,这将在下一个时间步s_t + 1时影响系统的状态。 从s_t到s_t + 1的转换不仅仅是由action a_t决定的,而且还由一些我们无法控制的噪声信号决定。该噪声信号可由图中的骰子来表示。在涡轮机示例中,噪声源自于我们观察到的包括传感器测量的状态,这是对系统真实状态的不完整描述。 为了控制系统,我们可以使用策略函数a_t =π(s_t;)将当前状态s_t映射到action a_t中。 例如,π(;)可以是一个具有权重的神经网络。 我们的目标是找到一个策略(具有值),它将在状态轨迹序列上产生平均低成本函数值。例如,我们的目标是最小化预期: 需要注意的是,上述表达式是随机的,因为它取决于初始状态s_1的选择和状态转换中的随机噪声。 批量强化学习 我们考虑批量强化学习场景,在学习过程中不会与系统交互。这种情况在现实世界的工业环境中是很常见的,例如涡轮机控制,其中探测受到限制,以避免产生可能的系统损失。 因此,为了找到一个最优策略,我们只需要从已经运行的系统中以状态转换的形式获得一批数据D = {(s_t, a_t, s_t+1)},而且我们将无法收集任何额外的数据。 首先,我们需要从D,一个p(s_t + 1 | s_t,a_t)的模型中进行学习,也就是将下一个状态s_t + 1的预测分布作为当前状态s_t和应用的action a_t的函数。然后,我们将该模型与策略相结合,以便得到p(s_t + 1 | s_t,a_t =π(s_t;)),其描述了当使用策略π()进行控制时系统的演化。 以前的分布可以用于执行状态轨迹的roll-out或模拟。我们从随机采样状态s_1开始,然后从p(s_t + 1 | s_t,a_t =π(s_t;))中进行迭代采样,以获得状态s_1,...,s_T的轨迹。 然后可以在采样的s_1,...,s_T中对成本函数进行评估,以近似成本()。这种近似的梯度可以用于随机优化和在各个方向上进行移动,从而产生平均较低值的成本()。 噪声在最优控制中的作用 最优策略会受到状态转换中噪声的显著影响。关于这一点,开奖,Bert Kappen 在《最优控制理论的路径积分与对称破缺》中提出的醉酒蜘蛛故事可进行以很好的说明,在这里,我们可以将其用作一个激励示例来进行说明。 蜘蛛要回家的话,它有两个可能的路径:穿过湖上的桥或者绕着湖边走回家。在没有噪音的情况下,桥梁是比较好的选择,因为它更短。然而,在大量饮酒后,蜘蛛的运动可能会随机地左右随摇晃。考虑到桥梁狭窄,且蜘蛛不喜欢游泳,所以现在较优的选择是沿着湖边走回家。 (责任编辑:本港台直播) |