强化学习从入门到放弃

Posted by Cww97 on 2018-11-26

2016年AlphaGo计算机围棋系统战胜顶尖职业棋手李世石,引起了全世界的广泛关注,人工智能进一步被推到了风口浪尖。而其中的深度增强学习算法是AlphaGo的核心,也是通用人工智能的实现关键。本文将带领大家了解深度增强学习的前沿算法思想,领略人工智能的核心奥秘。

前言

深度增强学习(Deep Reinforcement Learning,DRL)是近两年来深度学习领域迅猛发展起来的一个分支,目的是解决计算机从感知到决策控制的问题,从而实现通用人工智能。以Google DeepMind公司为首,基于深度增强学习的算法已经在视频、游戏、围棋、机器人等领域取得了突破性进展。2016年Google DeepMind推出的AlphaGo围棋系统,使用蒙特卡洛树搜索和深度学习结合的方式使计算机的围棋水平达到甚至超过了顶尖职业棋手的水平,引起了世界性的轰动。AlphaGo的核心就在于使用了深度增强学习算法,使得计算机能够通过自对弈的方式不断提升棋力。深度增强学习算法由于能够基于深度神经网络实现从感知到决策控制的端到端自学习,具有非常广阔的应用前景,它的发展也将进一步推动人工智能的革命。

深度增强学习与通用人工智能

当前深度学习已经在计算机视觉、语音识别、自然语言理解等领域取得了突破,相关技术也已经逐渐成熟并落地进入到我们的生活当中。然而,这些领域研究的问题都只是为了让计算机能够感知和理解这个世界。以此同时,决策控制才是人工智能领域要解决的核心问题。计算机视觉等感知问题要求输入感知信息到计算机,计算机能够理解,而决策控制问题则要求计算机能够根据感知信息进行判断思考,输出正确的行为。要使计算机能够很好地决策控制,要求计算机具备一定的“思考”能力,使计算机能够通过学习来掌握解决各种问题的能力,而这正是通用人工智能(Artificial General Intelligence,AGI)(即强人工智能)的研究目标。通用人工智能是要创造出一种无需人工编程自己学会解决各种问题的智能体,最终目标是实现类人级别甚至超人级别的智能。

通用人工智能的基本框架即是增强学习(Reinforcement Learning,RL)的框架,如图1所示。

图1 通用人工智能基本框架
图1 通用人工智能基本框架

智能体的行为都可以归结为与世界的交互。智能体观察这个世界,然后根据观察及自身的状态输出动作,这个世界会因此而发生改变,从而形成回馈返回给智能体。所以核心问题就是如何构建出这样一个能够与世界交互的智能体。深度增强学习将深度学习(Deep Learning)和增强学习(Reinforcement Learning)结合起来,深度学习用来提供学习的机制,而增强学习为深度学习提供学习的目标。这使得深度增强学习具备构建出复杂智能体的潜力,也因此,AlphaGo的第一作者David Silver认为深度增强学习等价于通用人工智能DRL=DL+RL=Universal AI。

深度增强学习的Actor-Critic框架

目前深度增强学习的算法都可以包含在Actor-Critic框架下,如图2所示。

图2 Actor-Critic框架
图2 Actor-Critic框架

把深度增强学习的算法认为是智能体的大脑,那么这个大脑包含了两个部分:Actor行动模块和Critic评判模块。其中Actor行动模块是大脑的执行机构,输入外部的状态s,然后输出动作a。而Critic评判模块则可认为是大脑的价值观,根据历史信息及回馈r进行自我调整,然后影响整个Actor行动模块。这种Actor-Critic的方法非常类似于人类自身的行为方式。我们人类也是在自身价值观和本能的指导下进行行为,并且价值观受经验的影响不断改变。在Actor-Critic框架下,Google DeepMind相继提出了DQN,A3C和UNREAL等深度增强学习算法,其中UNREAL是目前最好的深度增强学习算法。下面我们将介绍这三个算法的基本思想。

DQN(Deep Q Network)算法

DQN是Google DeepMind于2013年提出的第一个深度增强学习算法,并在2015年进一步完善,发表在2015年的《Nature》上。DeepMind将DQN应用在计算机玩Atari游戏上,不同于以往的做法,仅使用视频信息作为输入,和人类玩游戏一样。在这种情况下,基于DQN的程序在多种Atari游戏上取得了超越人类水平的成绩。这是深度增强学习概念的第一次提出,并由此开始快速发展。

DQN算法面向相对简单的离散输出,即输出的动作仅有少数有限的个数。在这种情况下,DQN算法在Actor-Critic框架下仅使用Critic评判模块,而没有使用Actor行动模块,因为使用Critic评判模块即可以选择并执行最优的动作,如图3所示。

图3 DQN基本结构
图3 DQN基本结构

在DQN中,用一个价值网络(Value Network)来表示Critic评判模块,价值网络输出Q(s,a),即状态s和动作a下的价值。基于价值网络,我们可以遍历某个状态s下各种动作的价值,然后选择价值最大的一个动作输出。所以,主要问题是如何通过深度学习的随机梯度下降方法来更新价值网络。为了使用梯度下降方法,我们必须为价值网络构造一个损失函数。由于价值网络输出的是Q值,因此如果能够构造出一个目标Q值,就能够通过平方差MSE的方式来得到损失函数。但对于价值网络来说,输入的信息仅有状态s,动作a及回馈r。因此,如何计算出目标Q值是DQN算法的关键,而这正是增强学习能够解决的问题。基于增强学习的Bellman公式,我们能够基于输入信息特别是回馈r构造出目标Q值,从而得到损失函数,对价值网络进行更新。

在实际使用中,价值网络可以根据具体的问题构造不同的网络形式。比如Atari有些输入的是图像信息,就可以构造一个卷积神经网络(Convolutional Neural Network,CNN)来作为价值网络。为了增加对历史信息的记忆,还可以在CNN之后加上LSTM长短记忆模型。在DQN训练的时候,先采集历史的输入输出信息作为样本放在经验池(Replay Memory)里面,然后通过随机采样的方式采样多个样本进行minibatch的随机梯度下降训练。

DQN算法作为第一个深度增强学习算法,仅使用价值网络,训练效率较低,需要大量的时间训练,并且只能面向低维的离散控制问题,通用性有限。但由于DQN算法第一次成功结合了深度学习和增强学习,解决了高维数据输入问题,并且在Atari游戏上取得突破,具有开创性的意义。

DALAO

Vedios

Reference