Deep Reinforcement Learning 基础知识(DQN方面)

Introduction

深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习的一种全新的算法。简单的说,就是和人类一样,输入感知信息比如视觉,然后通过深度神经网络,直接输出动作,中间没有hand-crafted工作。深度增强学习具备使机器人实现完全自主的学习一种甚至多种技能的潜力。

虽然将深度学习和增强学习结合的想法在几年前就有人尝试,但真正成功的开端是DeepMind在NIPS 2013上发表的Playing Atari with Deep Reinforcement Learning一文,之后DeepMind在Nature上发表了改进版的DQN文章,引起了广泛的关注。而Hinton,Bengio及Lecun三位大神在Nature上发表的Deep Learning 综述一文最后也将Deep Reinforcement Learning作为未来Deep Learning的发展方向。

Deep Reinforcement Learning因为具备真正实现AI的潜力,受到了Google等企业的关注。DeepMind 50多人的团队被Google以4亿美元的价格收购。而15年12月份刚刚由Elon Musk牵头成立的OpenAI,则一开始就获得了10亿美元的投资,而OpenAI中的好几位成员都来自UC Berkerley的Pieter Abbeel团队。

Pieter Abbeel团队紧随DeepMind之后,采用另一种方法直接实现了机器人的End-to-End学习,其成果也引起了大量的媒体报道和广泛关注。今年的NIPS 2015 更是由Pieter Abbeel及DeepMind的David Silver联合组织了Deep Reinforcement Learning workshop。可以说,目前在Deep Reinforcement Learning取得开拓性进展的主要集中在DeepMind和UC Berkerley团队。

为了深入地理解Deep Reinforcement Learning, 需要具备两大背景知识:

  • 深度学习特别是CNN卷积神经网络(由于感知Perception大多来自于视觉信息)
  • 增强学习基础知识

本文将介绍理解Deep Q-network所需要的增强学习的背景知识。

What is Reinforcement Learning 增强学习是什么

在人工智能领域,一般用Agent来表示一个具备行为能力的物体,比如机器人,无人车,人等等。那么增强学习考虑的问题就是Agent和环境environment$E$之间交互的任务。比如一个机械臂要拿起一个手机,那么机械臂周围的物体包括手机就是环境,机械臂通过外部的比如摄像头来感知环境,然后机械臂需要输出动作来实现拿起手机这个任务。再举玩游戏的例子,比如我们玩*飞车游戏,我们只看到屏幕,这就是环境,然后我们输出动作(键盘操作)来控制车的运动。

那么,不管是什么样的任务,都包含了一系列的动作action,观察Observation还有反馈值Reward。所谓的Reward就是Agent执行了动作与环境进行交互后,环境会发生变化,变化的好与坏就用reward来表示。如上面的例子。如果机械臂离手机变近了,那么reward就应该是正的,如果玩赛车游戏赛车越来越偏离跑道,那么reward就是负的。接下来这里用了Observation观察一词而不是环境那是因为Agent不一定能得到环境的所有信息,比如机械臂上的摄像头就只能得到某个特定角度的画面。因此,只能用Observation来表示Agent获取的感知信息。

Deep Reinforcement Learning 基础知识(DQN方面)

上面这张图(来自David Silver)可以很清楚的看到整个交互过程。事实上,这就是人与环境交互的一种模型化表示。在每个时间点time-step Agent都会从可以选择的动作集合A中选择一个a_t执行.这个动作集合可以是连续的比如机器人的控制也可以是离散的比如游戏中的几个按键。动作集合的数量将直接影响整个任务的求解难度,因此DeepMind才从玩最简单的游戏做起。

那么知道了整个过程,任务的目标就出来了,那就是要能获取尽可能多的reward。没有目标,控制也就无从谈起,因此,获取reward就是一个量化的标准,reward越多,就表示执行得越好。每个时间片,Agent都是根据当前的观察来确定下一步的动作。每次的观察就作为Agent的所处的状态state,因此,状态State和动作Action存在映射关系,也就是一个state可以对应一个action,或者对应不同动作的概率(常常用概率来表示,概率最高的就是最值得执行的动作)。那么state到action的过程就称之为一个策略Policy。当然,也可以是之前的一系列的状态动作集合到action的映射,在下一节我们会看到只要当前状态就行)一般用π表示,也就是需要找到以下关系:

a=π(s)

π(a|s)

,a1,r1,s2,a2,r2,...,at−1,st}

上一篇:不权威的国产CPU发展历程


下一篇:【Cocoa】 Initializing View Instances Created in Interface Builder