FDU邱锡鹏《神经网络与深度学习》第一章 绪论

本篇为博主阅读邱教授大作后做的总结和复习。全书共15章。内容来源: 《神经网络与深度学习》

  • 第1章是绪论,介绍人工智能、机器学习、深度学习的概要,使读者对相关知识进行全面的了解。
  • 第2、 3章介绍了机器学习的基础知识。
  • 第4、 5、 6章分别讲述三种主要的神经网络模型:前馈神经网络、卷积神经网络和循环神经网络。
  • 第7章介绍神经网络的优化与正则化方法。
  • 第8章介绍神经网络中的注意力机制和外部记忆。
  • 第9章简要介绍了一些无监督学习方法。
  • 第10章中介绍一些和模型独立的机器学习方法:集成学习、协同学习、自学习、多任务学习、迁移学习、终身学习、小样本学习、元学习等。这些都是目前深度学习的难点和热点问题。
  • 第11章介绍了概率图模型的基本概念,为后面的章节进行铺垫。
  • 第12章介绍两种早期的深度学习模型:玻尔兹曼机和深度信念网络。
  • 第13章介绍最近两年发展十分迅速的深度生成模型:变分自编码器和对抗生成网络。
  • 第14章介绍了深度强化学习的知识。
  • 第15章介绍了应用十分广泛的序列生成模型。

1.1 人工智能

1.1.2 人工智能的历史

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

达特茅斯 1956年达特茅斯会议之后,研究者对人工智能的热情高涨,之后的十几年是人工智能的黄金时期。大部分早期研究者都通过人类的经验,基于逻辑或者事实归纳出来一些规则,然后通过编写程序来让计算机完成一个任务。这个时期中,研究者开发了一系列的智能系统,比如几何定理证明器、语言翻译器等。

专家系统 到了 20世纪 70年代,研究者意识到知识对于人工智能系统的重要性。特别是对于一些复杂的任务,需要专家来构建知识库。在这一时期,出现了各种各样的专家系统(Expert System),并在特定的专业领域取得了很多成果。专家系统可以简单理解为“知识库 + 推理机”,是一类具有专门知识和经验的计算机智能程序系统。专家系统一般采用知识表示和知识推理等技术来完成通常由领域专家才能解决的复杂问题,因此专家系统也被称为基于知识的系统。一个专家系统必须具备三要素:(1)领域专家级知识;(2)模拟专家思维;(3)达到专家级的水平。在这一时期, Prolog(Programming in Logic)语言是主要的开发工具,用来建造专家系统、自然语言理解、智能知识库等。

机器学习 机器学习的主要目的是设计和分析一些学习算法,让计算机从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法,从而可以帮助人们解决一些特定任务,提高效率。机器学习的研究内容也十分广泛,涉及了概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。对于人工智能来说,机器学习从一开始就是一个重要的研究方向。但直到 1980年后,机器学习因其在很多领域的出色表现,才逐渐成为热门学科。

 

1.1.2 人工智能的流派

符号主义 符号主义(symbolism),又称逻辑主义、心理学派或计算机学派,是通过分析人类智能的功能,然后通过计算机来实现这些功能。符号主义有两个基本假设:(1)信息可以用符号来表示;(2)符号可以通过显式的规则(比如逻辑运算)来操作。人类的认知过程可以看作是符号操作过程。在人工智能的推理期和知识期,符号主义的方法比较盛行,并取得了大量的成果。

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

1.2 神经网络
1.2.1 大脑神经网络

参考高中生物课本

1.2.2 人工神经网络

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

1.2.3 神经网络的发展历史

第一阶段:模型提出 第一个阶段为 1943~1969 年,是神经网络发展的第一个高潮期。在此期间,科学家们提出了许多神经元模型和学习规则。

  1. 在 1943年,心理学家 Warren McCulloch和数学家 Walter Pitts最早描述了一种理想化的人工神经网络,并构建了一种基于简单逻辑运算的计算机制。他们提出的神经网络模型称为 MP模型。至此,开启了神经网络研究的序幕。
  2. 阿兰·图灵在 1948年的论文中描述了一种“B型图灵机”。之后,研究人员将基于赫布型学习的思想应用到“B型图灵机”上。
  3. 1951年, McCulloch和 Pitts的学生 Marvin Minsky建造了第一台神经网络机 SNARC。
  4. Rosenblatt [1958] 最早提出可以模拟人类感知能力的神经网络模型,并称之为感知器(Perceptron),并提出了一种接近于人类学习过程(迭代、试错)的学习算法。但感知器因其结构过于简单,不能解决简单的异或(XOR)等线性不可分问题

第二阶段:冰河期 第二阶段为 1969年~1983年,为神经网络发展的第一个低谷期。在此期间,神经网络的研究处于长年停滞及低潮状态。

  1. 1969年, Marvin Minsky出版《感知机》一书,指出了神经网络的两个关键缺陷:第一个是感知机无法处理异或回路问题;第二个是当时的计算机无法支持处理大型神经网络所需要计算能力。这些论断直接将以感知器为代表的神经网络打入冷宫,导致神经网络的研究进入了十多年的“冰河期”。
  2. 1974 年,哈佛大学的 Paul Webos 发明反向传播算法(Backpropagation,BP),但当时未受到应有的重视。
  3. 1980 年, Fukushima [1980](福岛邦彦)提出了一种带卷积和子采样操作的多层神经网络: 新知机(Neocognitron)。新知机的提出是受到了动物初级视皮层简单细胞和复杂细胞的感受野的启发。但新知机并没有采用反向传播算法,而是采用了无监督学习的方式来训练,因此没有引起足够的重视。

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

  1. 1983年,加州理工学院的物理学家 John Hopfield提出了一种用于联想记忆和优化计算的神经网络,称为Hopfield网络。 Hopfield网络在旅行商问题上获得当时最好结果,并引起了轰动。参见第8.3.4.1节。
  2. 1984年, Geoffrey Hinton提出一种随机化版本的 Hopfield网络,即玻尔兹曼机。玻尔兹曼机参见第12.1节。
  3. 真正引起神经网络第二次研究高潮的是反向传播算法。1986年,David Rumelhart 和 James McClelland 全面分析了连接主义在计算机拟神经活动中的应用,并重新发明了反向传播算法。
  4. Geoffrey Hinton等人将反向传播算法引入到多层感知器 [Williams and Hinton, 1986],解决了多层感知器的学习问题,人工神经网络才又重新引起人们的注意,并开始成为新的研究热点。
  5. 随后, LeCun et al. [1989]将反向传播算法引入了卷积神经网络,并在手写体数字识别上取得了很大的成功 [LeCun et al., 1998]。

反向传播算法是迄今最为成功的神经网络学习算法,不仅用于多层前馈神经网络,还用于其他类型神经网络的训练。

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

虽然神经网络可以很容易地增加层数、神经元数量,而从构建复杂的网络,但其计算复杂性也会指数级增长。当时的计算机性能和数据规模不足以支持训练大规模的神经网络。在 20世纪 90年代中期,统计学习理论和以支持向量机为代表的机器学习模型开始兴起。相比之下,神经网络的理论基础不清晰、优化困难、可解释性差等缺点更加凸显,神经网络的研究又一次陷入低潮。

第五阶段:深度学习的崛起 2006年, Hinton and Salakhutdinov [2006]发现多层前馈神经网络可以先通过逐层预训练,再用反向传播算法进行精调的方式进行有效学习。随着深度的人工神经网络在语音识别 [Hinton et al., 2012]和图像分类 [Krizhevsky et al., 2012]等任务上的巨大成功,以神经网络为基础的“深度学习”迅速崛起。近年来,随着大规模并行计算以及 GPU设备的普及,计算机的计算能力得以大幅提高。此外,可供机器学习的数据规模也越来越大。在计算能力和数据规模的支持下,计算机已经可以训练大规模的人工神经网络。各大科技公司都投入巨资研究深度学习,神经网络迎来第三次高潮。

1.3 机器学习

机器学习(Machine Learning, ML)是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并将这些规律应用到未观测样本上的方法。

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

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

1.4 表示学习

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

1.4.1 局部表示和分布式表示

“好的表示”是一个非常主观的概念,没有一个明确的标准。但一般而言,一个好的表示具有以下几个优点:

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

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

一种表示颜色的方法是以不同名字来命名不同的颜色,这种表示方式叫做局部表示,也称为离散表示或符号表示。局部表示通常可以表示为 one-hot向量的形式。假设所有颜色的名字构成一个词表 V,词表大小为 |V|。我们可以用一one-hot向量参见第A.1.4节。个 |V| 维的 one-hot 向量来表示每一种颜色。第 i种颜色的 one-hot 向量中,第 i维的值为 1,其它都为 0。

 

我们可以使用神经网络来将高维的局部表示空间 R|V| 映射到一个非常低维的分布式表示空间 Rd, d ≪ |V|。在这个低维空间中,每个特征不在是坐标轴上的点,而是分散在整个低维空间中。在机器学习中,这个过程也称为嵌入(embedding)。嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能保持不同对象之间的拓扑关系。比如自然语言中词的分布式表示,也经常叫做词嵌入

1.5 深度学习

深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入到预测函数得到最终结果。和“浅层学习”不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem, CAP) [Minsky,1963],即一个系统中不同的组件(Components)或其参数对最终系统输出结果的贡献或影响。以下围棋为例,每当下完一盘棋,最后的结果要么赢要么输。我们会思考哪几步棋导致了最后的胜利,而又是哪几步棋导致了最后的败局。如何判断每一步棋的贡献就是贡献度分配问题,这也是一个非常困难的问题。从某种意义上讲,深度学习也可以看作是一种强化学习(Reinforcement Learning,RL),每个内部组件并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性。

1.5.1 端到端学习

端到端学习(End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段进行训练,直接优化任务的总体目标。在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预。

1.5.2 常用的深度学习框架

在深度学习中,一般通过误差反向传播算法来进行参数学习。采用手工方式来计算梯度再写代码实现的方式会非常低效,并且容易出错。此外,深度学习模型需要的计算机资源比较多,一般需要在 CPU和 GPU之间不断进行切换,开发难度也比较大。因此,一些支持自动梯度计算、无缝 CPU和 GPU切换等功能的深度学习框架就应运而生。比较有代表性的框架包括: Theano、 Caffe、TensorFlow、 Pytorch、 Keras等。

此外,还有一些深度学习框架,包括微软的 CNTK7,由亚马逊、华盛顿大学和卡内基梅隆大学等开发维护的 MXNet 7和百度开发的 PaddlePaddle 8等。

在这些基础框架之上,还有一些建立在这些框架之上的高度模块化的神经网络库,使得构建一个神经网络模型就像搭积木一样容易。其中比较有名的模块化神经网络框架有:(1)基于 TensorFlow 和 Theano 的 Keras9和(2)基于Theano的 Lasagne 10。

  • 1 http://www.deeplearning.net/software/theano
  • 2 http://caffe.berkeleyvision.org
  • 3 https://www.tensorflow.org
  • 4 https://chainer.org
  • 5 http://pytorch.org
  • 6 http://torch.ch
  • 7 https://mxnet.apache.org
  • 8 全称为 Parallel Distributed Deep Learning。 http://paddlepaddle.org/
  • 9 http://keras.io/
  • 10 https://github.com/Lasagne/Lasagne

深度学习的研究进展非常迅速。因此,最新的文献一般会发表在学术会议上。和深度学习相关的学术会议主要有:

  • 国际表示学习会议3(International Conference on Learning Representations, ICLR):主要聚焦于深度学习。
  • 神经信息处理系统年会4(Annual Conference on Neural Information Processing Systems, NeurIPS):交叉学科会议,但偏重于机器学习。主要包括神经信息处理,统计方法,学习理论以及应用等。
  • 国际机器学习会议5(International Conference on Machine Learning,ICML):机器学习顶级会议,深度学习作为近年来的热点,也占据了 ICML的很大比例。
  • 国际人工智能联合会议6(International Joint Conference on Artificial Intelligence, IJCAI):人工智能领域最顶尖的综合性会议。历史悠久,从1969年开始举办。
  • 美国人工智能协会年会7(AAAI Conference on Artificial Intelligence,AAAI):人工智能领域的顶级会议,每年二月份左右召开,地点一般在北美。

另外,人工智能的很多子领域也都有非常好的专业学术会议。在计算机视觉领域,有

  • 计算机视觉与模式识别大会(IEEE Conference on Computer Vision and Pattern Recognition, CVPR
  • 国际计算机视觉会议(International Comference on Computer Vision, ICCV)。

在自然语言处理领域,有

  • 计算语言学年会(Annual Meeting of the Association for Computational Linguistics, ACL
  • 自然语言处理实证方法大会(Conference on Empirical Methods in Natural Language Processing, EMNLP)等。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值