Python深度强化学习:基于Chainer和OpenAI Gym
上QQ阅读APP看书,第一时间看更新

第1章
引言

1.1 深度强化学习可以做什么

深度强化学习[1]是一种结合了深度学习[2]和强化学习[3]两种学习的方法。这两种方法都属于人工智能(AI)中机器学习的方法之一。深度学习能对已知答案的问题(诸如分类(图像识别和自动写作)等问题)进行学习。强化学习仅根据好的状态和坏的状态来自动学习并自动获得合适的行为,用于解决机器人控制和游戏操作等问题。

深度强化学习是深度学习和强化学习的结合,能够很好地操作如图1.1所示的“吃豆人”和“太空侵略者”等游戏。

014-1

图1.1 游戏示例

此外,如扫帚朝上立于掌心的动作(倒立摆)、网球拍面朝上持续颠球等,是深度强化学习所学习的对象(如图1.2所示)。

014-2

图1.2 深度强化学习所学习的对象的示例

图1.3是使用深度强化学习来移动实体机器人的示例,其中包含一辆能自动移动以免撞到障碍物的微型汽车,以及能从杂乱堆积的圆柱堆中取出圆柱物的机器人手臂。

014-3

图1.3 移动实体机器人的示例(图片来源:Preferred Networks)

此外,在将棋和围棋比赛中,因与人类对战而受到广泛关注的AI也使用了深度强化学习。尽管上述这些实际应用通常都作为深度学习的成果来报道,但它们实际上是深度强化学习的成果,深度强化学习是由深度学习发展而来的。

图1.4给出了从强化学习和深度学习到深度强化学习发展的过程。其中每种技术的详细信息将在第2章及以后的章节中介绍。

015-1

图1.4 深度强化学习的变迁

最初,神经网络和强化学习是不同的研究方向。之后通过对强化学习的研究,开发出了易于在实际环境中应用的Q学习,并将其应用到各种情况中。虽然人们已经研究出将神经网络结合到Q学习中的Q网络,但由于当时的神经网络还有很多功能无法实现,因此Q网络有很大的局限。

随后,由神经网络发展出了深度学习,进一步,结合深度学习和Q学习的深度Q网络(DQN)出现了。与深度学习一样,DQN取得了很多成果。

将强化学习及其升级版结合,形成了深度强化学习。如图1.3所示的很多任务都取得了突破性进展。

那么为什么深度强化学习更好呢?

一般来说,深度学习的特征在于,如果没有与输入数据对应的答案(有标签数据),就无法进行深度学习。

例如,在使深度学习广为人知的图像识别问题中,我们要用大量有关图像中内容的有标签数据来学习图像。此外,深度学习使自动编写小说、撰写新闻、天气预报等成为可能,但这也需要将单词序列作为目标样本的有标签数据来进行学习。

接下来试着考虑通过深度学习解决图1.1中所示的吃豆人问题。

在深度学习中,必须知道吃豆人(专业术语中称为智能体)在所有状态下(敌人的位置、剩余饼干的位置(吃豆人进食点)以及自己的位置)朝哪个方向移动。我们根本无法告知其答案,不只因为状态数过多,还因为无法给出“什么样的行动真的是好的?”的回答。

在强化学习中,仅通过制定撞到敌人时得到负奖励和吃饼干得到正奖励的规则,并自主判断行动结果是否良好来学习,以此选择更好的行动。就吃豆人而言,这个问题很容易设定,可以人为设置这两种类型的奖励。

将这种思考方式与深度学习相结合的深度强化学习可以学习复杂的动作。深度强化学习是适用于无法明确规定问题的答案的学习方法。此外,深度强化学习的优势之一在于,当状态由于智能体的行动而发生变化(吃豆人吃掉饼干、被敌人发现等)时,它可以学会很好地应对各种情况。

如上所述,由于状态根据行动而改变的问题是实体机器人中普遍存在的情况,所以,深度强化学习还具有容易与实体机器人相结合这一特点。


[1]将在第4章和第5章中介绍。

[2]将在第2章中介绍。

[3]将在第3章中介绍。