深度强化学习分析研究
大小:0.6 MB 人气: 2017-10-09 需要积分:1
标签:深度强化学习(2256)
原作者Tambet Matiisen在文章结尾列出了对本文内容给出意见和建议的读者,以及深入了解这些技术的在线文档和视频链接,受篇幅所限,译文不再赘述。感谢Tambet Matiisen授权《程序员》翻译和刊载。原文链接:http://neuro.cs.ut.ee/demystifyingdeep-reinforcement-learning/
本文为《程序员》文章,未经允许不得转载,更多精彩请订阅2016年《程序员》
尽管监督式和非监督式学习的深度模型已经广泛被技术社区所采用,深度强化学习仍旧显得有些神秘。这篇文章将试图揭秘这项技术,并解释其背后的逻辑。受众读者主要是有机器学习或者神经网络背景,却还没来得及深入钻研强化学习技术的朋友。
文章大纲如下:
强化学习面临的主要挑战是什么?我们将会在此讨论credit assignment问题和探索-利用的取舍。
如何用数学表达式表示强化学习过程?我们将定义马尔科夫决策过程,并用它来解释强化学习过程。
该如何构建长期策略?我们定义了“未来回报折扣(discounted future reword)”概念,它构成了下一节算法的基础。
如何预测和估计未来回报?我们将会定义并且解释简单的基于表的Q-learning算法。
如果状态空间过大了怎么办?我们演示了如何用一个(深度)神经网络模型来替换Q-table算法。
在真正使用它之前我们还需要做些什么?我们将会讨论经验重播技术,用神经网络来稳定学习过程。
都完成了吗?最后,我们会考虑一些针对探索-利用问题的简单解决方案。
强化学习
我们以Breakout(打砖块)游戏为例。在游戏中,玩家将操控屏幕底部的一块滑板,让球反弹后撞击屏幕上部的砖块,直到所有砖块都破碎。每当球击中了砖块,砖块会消失,玩家的得分会增加——玩家得到了奖励回报。
图1 Atari Breakout游戏(图片来源:DeepMind)
假设你想训练一个神经网络模型来玩这款游戏。网络的输入将是屏幕图像,输出结果是三种动作:向左、向右和撞击(接住球)。我们可以把它当做一个分类问题——对每一帧屏幕图像,你是需要左移、右移还是撞击。听起来很直白吗?没错,接着你需要,大量的训练样本数据。当然,你可以用专家级玩家的游戏视频作为训练数据,但这不是我们的学习方式。我们不需要外人千百次地告诉我们每一帧图像该选择哪一种操作动作。我们只需要偶尔得到一些正反馈信息,剩下的一切事情我们自己就能搞定。
这就是强化学习试图去解决的任务。强化学习介于监督式学习和非监督式学习之间。监督式学习的每个训练样本都有一个标签,非监督式学习的训练样本没有标签,强化学习的训练样本有稀疏并且时间滞后的标签——即奖励回报。模型仅基于这些奖励回报从环境中学习正确的行为。
尽管概念非常直观,在实际操作中却充满了挑战。举个例子,当你在“打砖块”游戏中击中了砖块并且得到了奖励回报,这个回报往往与最近的几次动作(移动滑板)并没有关联。调整滑板位置、撞击球使其反弹,所有这些复杂工作在得到回报之前早已完成了。这被称为credit assignment问题——也就是说,是由于之前的哪些行为才取得的回报,它们的贡献程度是什么。
当你用某一种策略取得了一定的回报之后,你是打算继续做下去,还是尝试一些可能获得更大回报的方法呢?在上面的“打砖块”游戏中,一种简单的策略就是移到屏幕的左边界等着。球飞向左侧的情况总是比右侧更多些,所以你在游戏结束前总是能很容易地得到大概10分。你对这个成绩已经感到满意了,还是想得到更多?这就是所谓的探索-利用困境——是应该利用好已知有效的方法,还是要发掘其它可能更好的方法。
强化学习是我们(或者所有的动物)如何学习的一种重要模型。来自父母的奖励、在学习取得的成绩、工作的薪水——这些都是回报的形式。Credit assignment问题和探索-利用困境在我们每天的工作和感情生活中都会遇到。因此研究这个问题是十分重要的,游戏组成了一只尝试各种新方法的绝妙沙盒。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%