[神经网络与深度学习][1][绪论]

第1章 绪论

一个人在不接触对方的情况下,通过一种特殊的方式,和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的.——阿兰·图灵(Alan Turing)

从根源来讲,深度学习是机器学习的一个分支,是指一类问题以及解决这类问题的方法.

首先,深度学习问题是一个机器学习问题,指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上

其次,深度学习采用的模型一般比较复杂,指样本的原始输入到输出目标之间的数据流经过多个线性或非线性的组件(component).因为每个组件都会对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时,我们并不清楚其中每个组件的贡献是多少.这个问题叫作贡献度分配问题

一种可以比较好解决贡献度分配问题的模型是人工神经网络(Artificial Neural Network,ANN).人工神经网络,也简称神经网络,是一种受人脑神经系统的工作方式启发而构造的数学模型.

神经网络的参数可以通过机器学习的方式来从数据中学习.因为神经网络模型一般比较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可以看成是一种深度的机器学习,即深度学习.

神经网络和深度学习并不等价.深度学习可以采用神经网络模型,也可以采用其他模型(比如深度信念网络是一种概率图模型).但是,由于神经网络模型可以比较容易地解决贡献度分配问题,因此神经网络模型成为深度学习中主要采用的模型.

1.1 人工智能

人工智能(Artificial Intelligence,AI)就是让机器具有人类的智能,这也是人们长期追求的目标

我们并不理解大脑的运作原理,以及如何产生意识、情感、记忆等功能.因此,通过“复制”人脑来实现人工智能在目前阶段是不切实际的

图灵测试:“一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的”

目前,人工智能的主要领域大体上可以分为以下几个方面:

  1. 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工.主要研究领域包括语音信息处理和计算机视觉等.
  2. 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中进行学习.主要研究领域包括监督学习、无监督学习和强化学习等.
  3. 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理解、推理、规划、决策等.

1.1.1 人工智能的发展历史

1.1.1.1 推理期

大部分早期研究者都通过人类的经验,基于逻辑或者事实归纳出来一些规则,然后通过编写程序来让计算机完成一个任务.这个时期中,研究者开发了一系列的智能系统,比如几何定理证明器、语言翻译器等.但随着研究的深入,研究者意识到这些推理规则过于简单

1.1.1.2 知识期

到了20 世纪70 年代,研究者意识到知识对于人工智能系统的重要性.特别是对于一些复杂的任务,需要专家来构建知识库.在这一时期,出现了各种各样的专家系统(Expert System),并在特定的专业领域取得了很多成果.专家系统可以简单理解为“知识库+ 推理机”,是一类具有专门知识和经验的计算机智能程序系统.

1.1.1.3 学习期

对于人类的很多智能行为(比如语言理解、图像理解等),我们很难知道其中的原理,也无法描述这些智能行为背后的“知识”.为了解决这类问题,研究者开始将研究重点转向让计算机从数据中自己学习.

在发展了60 多年后,人工智能虽然可以在某些方面超越人类,但想让机器真正通过图灵测试,具备真正意义上的人类智能,这个目标看上去仍然遥遥无期.

1.1.2 人工智能的流派

如何构建一个人工智能系统.不同的研究者都有各自的理解,因此在人工智能的研究过程中产生了很多不同的流派

1.1.2.1 符号主义

符号主义(Symbolism),又称逻辑主义、心理学派或计算机学派,是指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法.符号主义有两个基本假设:a)信息可以用符号来表示;b)符号可以通过显式的规则(比如逻辑运算)来操作.人类的认知过程可以看作符号操作过程

1.1.2.2 连接主义

连接主义(Connectionism),又称仿生学派或生理学派,是认知科学领域中的一类信息处理的方法和理论.在认知科学领域,人类的认知过程可以看作一种信息处理过程.连接主义认为人类的认知过程是由大量简单神经元构成
的神经网络中的信息处理过程,而不是符号运算.因此,连接主义模型的主要结构是由大量简单的信息处理单元组成的互联网络,具有非线性分布式并行化局部性计算以及自适应性等特性.

符号主义方法的一个优点可解释性,而这也正是连接主义方法的弊端.深度学习的主要模型神经网络就是一种连接主义模型.随着深度学习的发展,越来越多的研究者开始关注如何融合符号主义和连接主义,建立一种高效并且具有可解释性的模型.

1.2 机器学习

机器学习(Machine Learning,ML)是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法

传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据****表示为一组特征**(Feature),然后将这些特征输入预测模型,并输出预测结果.这类机器学习可以看作浅层学习(Shallow Learning).浅层学习的一个重要特点是不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取

在实际任务中使用机器学习模型一般会包含以下几个步骤

  1. 数据预处理:经过数据的预处理,如去除噪声等.比如在文本分类中,去除停用词等.
  2. 特征提取从原始数据中提取一些有效的特征.比如在图像分类中,提取边缘、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)特征等.
  3. 特征转换对特征进行一定的加工,比如降维和升维. 很多特征转换方法也都是机器学习方法.降维包括特征抽取(Feature Extraction)和特征选择(Feature Selection)两种途径.
  4. 预测:机器学习的核心部分,学习一个函数并进行预测.

上述流程中,每步特征处理以及预测一般都是分开进行的.传统的机器学习模型主要关注最后一步,即构建预测函数.但是实际操作过程中,不同预测模型的性能相差不多,而前三步中的特征处理对最终系统的准确性有着十分关键的作用.特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征,并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程(Feature Engineering)问题.开发一个机器学习系统的主要工作量都消耗在了预处理、特征提取以及特征转换上.

1.3 表示学习

为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性地称为表示(Representation).如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习(Representation Learning).

表示学习的关键是解决语义鸿沟(Semantic Gap)问题.语义鸿沟问题是指输入数据的底层特征高层语义信息之间的不一致性差异性.比如给定一些关于“车”的图片,由于图片中每辆车的颜色和形状等属性都不尽相同,因
此不同图片在像素级别上的表示(即底层特征)差异性也会非常大.但是我们理解这些图片是建立在比较抽象的高层语义概念上的。

在表示学习中,有两个核心问题:一是“什么是一个好的表示”;二是“如何学习到好的表示”.

1.3.1 局部表示和分布式表示

一个好的表示具有以下几个优点:

  1. 一个好的表示应该具有很强的表示能力,即同样大小的向量可以表示更多信息
  2. 一个好的表示应该使后续的学习任务变得简单,即需要包含更高层的语义信息
  3. 一个好的表示应该具有一般性,是任务或领域独立的.虽然目前的大部分表示学习方法还是基于某个任务来学习,但我们期望其学到的表示可以比较容易地迁移到其他任务上.

在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation).

以颜色表示为例,我们可以用很多词来形容不同的颜色1,除了基本的“红”“蓝”“绿”“白”“黑”等之外,还有很多以地区或物品命名的,比如“中国红”“天蓝色”“咖啡色”“琥珀色”等.如果要在计算机中表示颜色,一般有两种表示方法.

1.3.1.1 局部表示

一种表示颜色的方法是以不同名字来命名不同的颜色,这种表示方式叫作局部表示,也称为离散表示符号表示局部表示通常可以表示为one-hot 向量的形式.

局部表示有两个优点

  1. 这种离散的表示方式具有很好的解释性有利于人工归纳和总结特征,并通过特征组合进行高效的特征工程

  2. 通过多种特征组合得到的表示向量通常是稀疏的二值向量当用于线性模型时计算效率非常高

但局部表示有两个不足之处:

  1. one-hot 向量维数很高,且不能扩展.如果有一种新的颜色,我们就需要增加一维来表示;
  2. 不同颜色之间的相似度都为0,即我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相
    似度.
1.3.1.2 分布式表示

另一种表示颜色的方法是用RGB 值来表示颜色,不同颜色对应到R、G、B 三维空间中一个点,这种表示方式叫作分布式表示.分布式表示通常可以表示为低维的稠密向量.

和局部表示相比,分布式表示的表示能力要强很多,分布式表示的向量维度一般都比较低.我们只需要用一个三维的稠密向量就可以表示所有颜色.并且,分布式表示也很容易表示新的颜色名.此外,不同颜色之间的相似度也很容易计算.

1.3.1.3 两者关系

我们可以使用神经网络来将高维的局部表示空间RvR^{|v|}映射到一个非常低维的分布式表示空间RDR^D, 𝐷 ≪ |𝒱|.在这个低维空间中,每个特征不再是坐标轴上的点,而是分散在整个低维空间中.在机器学习中,这个过程也称为嵌入(Embedding).嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能保持不同对象之间的拓扑关系.

1.3.2 表示学习

表示学习的关键是构建具有一定深度的多层次特征表示

传统的特征学习一般是通过人为地设计一些准则,然后根据这些准则来选取有效的特征.特征的学习是和最终预测模型的学习分开进行的,因此学习到的特征不一定可以提升最终模型的性能.

1.4 深度学习

为了学习一种好的表示,需要构建具有一定“深度”的模型,并通过学习算法来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征)

所谓“深度”是指原始数据进行非线性特征转换的次数.如果把一个表示学习系统看作一个有向图结构深度也可以看作输入节点输出节点经过的最长路径的长度.

通过多层特征转换,把原始数据变成更高层次更抽象的表示.这些学习到的表示可以替代人工设计的特征,从
避免“特征工程”

深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP),即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响.以下围棋为例,每当下完一盘棋,最后的结果要么赢要么输.我们会思考哪几步棋导致了最后的胜利,或者又是哪几步棋导致了最后的败局.如何判断每一步棋的贡献就是贡献度分配问题,这是一个非常困难的问题.

目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题.只要是超过一层的神经网络都会存在贡献度分配问题,因此可以将超过一层的神经网络都看作深度学习模型

1.4.1 端到端学习

端到端学习(End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练直接优化任务的总体目标.在端到端学习中,一般不需要明确地给出不同模块或阶段的功能中间过程不需要人为干预.端到端学习的训练数据为“输入-输出”对的形式,无须提供其他额外信息.因此,端到端学习和深度学习一样,都是要解决贡献度分配问题.目前,大部分采用神经网络模型的深度学习也可以看作一种端到端的学习

1.5 神经网络

受到人脑神经系统的启发,早期的神经科学家构造了一种模仿人脑神经系统的数学模型,称为人工神经网络,简称神经网络.在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度可学习的参数

1.5.1 人脑神经网络

神经元(Neuron),也叫神经细胞(Nerve Cell),是携带和传输信息的细胞,是人脑神经系统中最基本的单元

典型的神经元结构大致可分为细胞体和细胞突起.

  1. 细胞体(Soma)中的神经细胞膜上有各种受体和离子通道,胞膜的受体可与相应的化学物质神经递质结合,引起离子通透性及膜内外电位差发生改变,产生相应的生理活动:兴奋或抑制.
  2. 细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突.
    1. 树突(Dendrite)可以接收刺激并将兴奋传入细胞体.每个神经元可以有一或多个树突.
    2. 轴突(Axon)可以把自身的兴奋状态从胞体传送到另一个神经元或其他组织.每个神经元只有一个轴突.

一个神经元可被视为一种只有两种状态的细胞:兴奋和抑制.神经元的状态取决于从其他的神经细胞收到的输入信号量,以及突触的强度(抑制或加强).

人脑神经网络是一个具有学习能力的系统.在人脑神经网络中,每个神经元本身并不重要,重要的是神经元如何组成网络.不同神经元之间的突触有强有弱,其强度是可以通过学习(训练)来不断改变的,具有一定的可塑性

赫布理论:如果两个神经元总是相关联地受到刺激,它们之间的突触强度增加.

1.5.2 人工神经网络

人工神经网络是为模拟人脑神经网络而设计的一种计算模型,它从结构、实现机理和功能上模拟人脑神经网络.从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的连接而构成的自适应非线性动态系统

首个可学习的人工神经网络是赫布网络,采用一种基于赫布规则的无监督学习方法.感知器最早的具有机器学习思想的神经网络,但其学习方法无法扩展到多层的神经网络上.直到1980年左右,反向传播算法有效地解决了多层神经网络的学习问题,并成为最为流行的神经网络学习算法.

1.5.3 神经网络的发展历史

第一阶段:模型提出

第一阶段为1943 年~1969 年,是神经网络发展的第一个高潮期.在此期间,科学家们提出了许多神经元模型和学习规则.提出了一种可以模拟人类感知能力的神经网络模型,称为感知器(Perceptron),并提出了一种接近于人类学习过程(迭代、试错)的学习算法.

第二阶段:冰河期

第二阶段为1969 年~1983 年,是神经网络发展的第一个低谷期.在此期间,神经网络的研究处于长年停滞及低潮状态,Marvin Minsky 出版《感知器》一书,指出了神经网络的两个关键缺陷:一是感知器无法处理“异或”回路问题;二是当时的计算机无法支持处理大型神经网络所需要的计算能力

第三阶段:反向传播算法引起的复兴

第三阶段为1983 年~1995 年,是神经网络发展的第二个高潮期.这个时期中,反向传播算法重新激发了人们对神经网络的兴趣.

真正引起神经网络第二次研究高潮的是反向传播算法.20世纪80年代中 第12.1节.期,一种连接主义模型开始流行,即分布式并行处理(Parallel Distributed Processing,PDP)模型[McClelland et al., 1986].反向传播算法也逐渐成为PDP 模型的主要学习算法.这时,神经网络才又开始引起人们的注意,并重新成为新的研究热点.随后,[LeCun et al., 1989] 将反向传播算法引入了卷积神经网络,并在手写体数字识别上取得了很大的成功.

第四阶段:流行度降低

第四阶段为1995 年~2006 年,在此期间,支持向量机和其他更简单的方法(例如线性分类器)在机器学习领域的流行度逐渐超过了神经网络.

虽然神经网络可以很容易地增加层数、神经元数量,从而构建复杂的网络,但其计算复杂性也会随之增长.当时的计算机性能和数据规模不足以支持训练大规模神经网络

第五阶段:深度学习的崛起

近年来,随着大规模并行计算以及GPU 设备的普及,计算机的计算能力得以大幅提高.此外,可供机器学习的数据规模也越来越大.在强大的计算能力和海量的数据规模支持下,计算机已经可以端到端地训练一个大规模神经网络,不再需要借助预训练的方式.各大科技公司都投入巨资研究深度学习,神经网络迎来第三次高潮.