在本篇中,我们简要介绍人工智能的概念和基本原理(Russell和Norvig,2009),机器学习,深度学习(Goodfellow等人,2016),和强化学习(Sutton和Barto,2018年)。同时我们也不打算在这里详细介绍人工智能、机器学习和深度学习的背景,这些内容太宽泛,无法在这里详细讨论。因此,我们推荐些近年来比较有代表性的papers供大家参阅。如下(待添加):
Jordan and Mitchell (2015) for machine learning
LeCun et al. (2015) for deep learning
Deep RL course by Sergey Levin at UC Berkeley (Levine, 2018)
在图1中,我们表示了人工智能和机器学习中几个概念之间的关系。深度强化学习,顾名思义,是深度学习和强化学习的交叉点。我们通常将机器学习分为有监督学习、无监督学习和强化学习。 深度学习可以以有监督的学习、无监督的学习,强化学习和其他机器学习方法作为工作原理实现,是机器学习的一部分,也是人工智能的一部分。请注意,所有这些领域都在不断发展,深度学习和深度强化学习旨在解决经典人工智能问题,如逻辑、推理和知识表达等。强化学习对所有人工智能问题都很重要,被认为可能包含了所有人工智能的考量。一个智能体被放置在一个特定的环境中,并且必须学会在该环境中成功地实现行为。因此强化学习可以看作是整个人工智能问题的一个缩影。上图表示了深度强化学习、深度学习、强化学习、监督学习、无监督学习、机器学习和人工智能之间的关系。深度学习和深度强化学习正在解决许多经典的人工智能问题。
一.人工智能(ARTIFICIAL INTELLIGENCE)
人工智能是一个非常广阔的领域,甚至像一些权威的教材都没有给出精确的定义。Russell和Norvig在2009年从四个角度讨论比较了人工智能:1.思维和推理 VS 行为。2.某些方面成功实现类似人类精确的表现 VS 成功类人表现的一种理想的衡量标准。我们跟随Russell和Norvig的讨论,列出定义人工智能的四种方法,直接引用自Russell和Norvig。
定义1:”acting humanly”,遵循“图灵测试”的方法具有类似人的行为能力,也就是说,人工智能是一种制造机器的技术,这种技术能使机器具有执行类似人类活动所需的智力水平,这个技术研究旨在如何让计算机做一些目前人们做得更好的事情。
计算机通过图灵测试的含义是,如果人类测试者不能够辨别有些特定问题的答案来自计算机或人类,我们就说该计算机通过测试,具有人类的智能。这就要求计算机需要具备下列能力:自然语言处理(NLP)以便成功地用英语进行交流,知识表达以便存储机器的所知所闻,自动推理以便从存储的信息中得出新的结论来回答问题,以及机器学习以便适应新场景和模式的检测与推断。在图灵测试中,如果视频信号参与其中,那么计算机需要更多的能力,如用于对象感知的计算机视觉,以及用于物体操纵和运动控制的机器人技术。人工智能研究人员一直在尽最大努力寻找关于智能定义的基本原则,主要由上述六个学科所涵盖,而不是通过图灵测试,因为复制一个样本通常不是目的,例如,一架飞机可能不只是模仿鸟那么简单。
定义2:”thinking humanly”,遵循“认知建模”方法具有类似人的认知能力,努力让电脑思考令人兴奋的新事物,在表面看起来就像完全意义上具有头脑的机器。我们把它与人类自动化的思维活动联系起来,如决策,解决问题,学习等等。
定义3:”thinking rationally”, 遵循“思维规律”的方法具有类似人理性思维的能力。这项研究旨在通过使用计算模型使得使得机器具有抽象思维的能力,使得对感知、推理和行动可以通过计算来完成。
定义4,”acting rationally”,遵循“理性智能体”的方法具有类似人智能行为的各种能力。计算智能这项研究旨在设计智能体本身,强调人工智能着重关心的是人工智能制品的行为。理性智能体的方法比那些基于人类行为或人类思想的研就更适合于科研的掌控。因此Russell和Norvig重点关注理性智能体及其构建组件的通用标准。
我们罗列下Russell和Norvig试图论证的基本原理和试图回答的基本问题。首先是哲学角度,例如这样的问题:“形式规则可以用来得出有效的结论吗?”、“思维意识是怎样的在一个物质构成的大脑中产生的?”、“知识从何而来?”、“知识或认知是怎么样支配行为的?”。其次是数学角度,例如这样的问题:“什么样的正式规则可以推导出有效的结论?”、“什么是可以计算的?”、“我们如何对不确定的信息进行推理?”。再次是经济学角度,例如这样的问题:“我们应该如何做决定,以便获得最大限度地回报?”、“如果别人不支持,我们该怎么做?”、“当回报可能在未来很久的时间才能获得,我们应该怎么做呢?”。再尔是神经科学角度,例如这样的问题:“大脑如何处理信息?”。或者心理学角度,例如这样的问题:“人类和动物是如何思考和行动的?”。又或者计算机工程学角度,例如这样的问题:“我们怎样才能制造出一台高效智能的计算机?”。又或者控制论角度,例如这样的问题:“智能体如何在它们自我的控制下运行?”。又或者语言学角度,例如这样的问题:“语言和思想有什么关系?”。
Russell和Norvig介绍了人工智能的历史发展脉络,从人工智能的孕育和人工智能的诞生谈起,说明了人工智能的早期热情、长期期望、现实状况。再到知识系统的出现:“我们开始思考智能的关键是什么?”,以致后来人工智能成为一个产业和前馈神经网络的出现,标志着人工智能拥有了可以采用的科学方法。以至于智能体的出现和可用的大型数据集诞生让我们无限期待人工智能未来的样子。
二.机器学习(ARTIFICIAL INTELLIGENCE)
机器学习是指机器从数据中学习知识并做出预测或决定。引用米切尔的概念 ”A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P,improves with experience E.”。
机器学习通常被我们分为有监督、无监督和强化学习。在有监督学习中,使用有标记的数据;在无监督学习中,使用没有标记的数据。分类和回归是有监督学习问题的两种基本类型,它们的预测值分别为标识类别的离散值和标识数值的连续值。无监督学习试图从没有标签的数据中提取信息,例如聚类和密度估计,表示学习是一种典型的无监督学习,然而有监督学习训练深层神经网络是一种表示学习。表示学习旨在找到一个表示来保存关于原始数据尽可能多的信息,同时表示比原始数据更简单和显著,通常表示具有低维、稀疏和独立的特性。
深度学习或者深度神经网络学习是一种特殊的机器学习方法,通常以状态表示或函数逼近的形式,适用于有监督或无监督的学习,也可以与强化学习相结合。有监督和无监督的学习通常是一次性的,短视的,考虑即时回报;强化学习是顺序的,远视的,考虑长期累积回报。
强化学习通常是关于顺序决策的。在强化学习中相较于有监督学习和无监督学习,强化学习有评价性反馈,但没有监督标签。与监督学习相比,强化学习面临着额外的挑战,如评价分配(Credit Assignment)、稳定性和探索性。强化学习旨在研究最优化控制、运筹学和管理,同时也与心理学和神经科学紧密相关。
机器学习以大数据、数据科学、预测建模、数据挖掘、信息检索等为基础,成为计算机视觉,自然语言处理、机器人科学等领域的重要组成部分。概率论、统计学和最优化理论是统计机器学习的重要内容。机器学习是人工智能的一个子集,然而,它正在进化成为人工智能所有领域的关键。
机器学习算法是由数据集、代价函数或损失函数、优化过程或优化策略、以及构建在假设空间中的模型组成。数据集分为非重叠的训练集、验证集和测试集。代价函数或损失函数衡量模型的性能,例如精确度,或者回归和分类问题中的均方误差和分类误差率。
熵的概念对于损失函数的定义是很重要的。对于定义在概率分布上的随机变量,熵是其不确定性的度量,用或表示,
(1)
对于二元随机变量,我们假设那么,则有:
(2)
Kullback-Leibler散度(KL散度)也叫相对熵是测量两个概率分布和的相异性的一种方法,
(3)
这里是交叉熵,我们可以得到 (4)
训练误差用于度量训练数据集预测错误情况,它的最小化是一个最优化问题。泛化误差或者测试误差是度量新数据的预测错误情况,表示机器学习优化的效果。机器学习算法试图使训练误测和泛化误差之间的差别尽可能小。模型如果训练误差不能够逼近一个足够小的值,被叫做欠拟合。模型如果泛化误差和训练误差的差别太大,被叫做过拟合。
模型的容纳能力衡量它能适用的功能范围,奥卡姆剃刀概念,具有相同意思的表达,模型选择时需要首选简单模型。训练误差和泛化误差相对模型容纳能力通常形成U形关系。我们旨在找到模型的最佳容纳能力,以实现较低训练误差,同时保证训练误差与泛化误差差距足够小。偏差测量估计值与真实值的期望偏差;而方差测量估计值与期望值的方差。随着模型容量的增加,偏差倾向于减少,而方差倾向于增加,从而产生泛化误差与模型容量的U型关系。我们试图找到最优的容量点,其中欠拟合发生在左侧,过拟合发生在右侧。正则化在代价函数中加入惩罚项,以减少泛化误差,而不是训练误差。然而世界上没有免费午餐,说明没有普遍适用的最佳模型或最佳正则化利器,这意味着机器学习可能不是解决某些问题的最佳模式。有模型参数,以及用于控制模型容量和正则化的超参数,交叉验证用于优化超参数,在偏差和方差之间取得平衡,并选择最优模型。最大似然估计(MLE)是一种常用较为优秀的参数估计方法。对于数值下溢等问题,将MLE中的乘积转化为求和,得到负对数似然(NLL)。MLE等价于最小化KL散度,即训练数据定义的经验分布与模型分布之间的差异。最小化两个分布之间的KL散度对应于最小化分布之间的交叉熵。简言之,最大似然估计可转化成为负对数似然(NLL)的最小化,或等价地转化成为交叉熵的最小化。梯度下降法是求解优化问题的一种常用方法。随机梯度下降通过每次处理一个样本(通常是小批量)来持续扩展梯度下降。重要性抽样是一种通过从不同的分布中抽取样本来估计特定分布的性质,以降低估计的方差,或者当从感兴趣的分布中抽取样本很困难时的技术。机器学习算法有数学分析框架。Kolmogorov复杂性,或称算法复杂性,研究了Ockham剃刀中的简单概念。在可能近似正确(PAC)学习中,一种学习算法目的是选择一个泛化函数,以达到低泛化误差、高概率的目的,VC维度量二元分类器的容量。
三.深度学习(DEEP LEARNING)
深度学习与“浅层”机器学习截然不同,对于许多机器学习算法,如线性回归、逻辑回归、支持向量机(SVM)、决策树、提升算法(boosting),一般都只有输入层和输出层,在训练前可以用人工特征工程对输入进行转换。在深度学习中,在输入层和输出层之间,通常有一个或多个隐藏层。在除了输入层之外的每一层,我们计算每个单元的输入,如前一层单元的加权和,然后我们通常使用非线性变换或激活函数(如logistic、tanh或最近更流行的整流线性单元(ReLU))转化来应用于该层单元的输入,以获得前一层输入的新表示。在每一层的神经元之间的链接上都有权重。计算从输入到输出,在输出层和每个隐藏层上流动,我们可以向后计算误差导数,并向输入层反向传播梯度,从而更新权重以优化某些损失函数。前馈深度神经网络或多层感知器(MLP)是将一组输入值映射到输出值,并在每一层构造许多简单的函数形成一个数学函数。卷积神经网络(CNN)是一种具有卷积层、池化层和全连接层的前馈深层神经网络。CNN设计用于处理具有多个阵列的数据,例如彩色图像、语言、音频频谱图和视频,受益于这些信号的特性:局部连接、共享权重、池化层和多层神经网络的使用,并受到视觉神经科学中简单细胞和复杂细胞的启发。 ResNets的设计目的是通过添加捷径连接来学习参考当前层输入的残差函数,从而简化非常深的神经网络的训练。递归神经网络(RNN)通常用于处理语音和语言等连续输入,逐项处理,并带有隐藏单元来存储过去元素的历史状态。RNN可以看作是一个多层神经网络,当在正向计算时展开,所有层共享相同的权值。RNN很难长时间存储信息,而且梯度可能消失。长-短时记忆网络(LSTM)和门控递归单元(GRU)被提出来解决这些问题,门控机制通过递归单元操纵信息。梯度或误差反向传播或其变种可用于训练上述所有深度神经网络。
辍学机制(Dropout)是通过从原始网络中随机移除非输出单元来训练子网络集合的正则化策略。为了提高训练效率,学者们又设计了批规范化和层规范化。
深层神经网络从原始输入中自动学习表示,以恢复许多自然信号中的成分层次,即高级特征由低级特征组成,如图像、对象等级、成分、图案和局部边缘组合。分布表示是深度学习的核心思想,它意味着许多特征可以表示每个输入,每个特征可以表示许多输入。深度分布表示的指数优势可以对抗维度灾难的指数级挑战。端到端训练的概念是指学习模型使用原始输入(通常没有手动特征工程)来生成输出,例如图像分类使用原始像素的AlexNet,Graves等人用音频数据的傅里叶变换实现语音识别,Seq2Seq使用原始句子用于机器翻译,DQN使用原始像素和分数用于玩游戏。
同时有人正在努力设计新的神经网络结构,如胶囊(capsules)。此外,还有人致力于设计没有神经网络的深度机器学习架构,如DeepForest。