二、历史
2.1 历史简介
深度学习分为三个时期:
1940s-1960s
:这时它被称作控制论cybernetics
。1980s-1990s
:这时它被称作连接机制connectionism
。2006--
:这时被称作deep learning
。
深度学习在历史上的不同名字反映了不同的哲学观点。
下图展示了神经网络研究的三个历史浪潮中的两个(因为第三波太近了)。
- 第一波随着生物学习理论的发展和第一个模型的出现(如感知机神经元)。
- 第二波用反向传播训练一层或者两层隐层神经网络。
第一波浪潮:早期的人工智能算法模拟生物的学习过程:对大脑的学习过程建模。
- 此时的深度学习被称作人工神经网络
artificial neural networks:ANNs
, 深度学习模型因此被认为是受生物大脑启发的工程系统。 - 现代的深度学习超越了神经科学的观点:它是一种多层次学习的、通用的机器学习框架,而不必是从神经科学中获取灵感。
- 此时的深度学习被称作人工神经网络
第二波浪潮:连接机制的中心思想是:大量简单的计算单元在连接时可以实现智能行为。
这种观点适用于生物神经系统中的神经元,以及深度网络模型中的隐层神经元。
在连接机制期间,有一些核心思想仍然影响了后续的神经网络:
分布式表达
distributed representation
:系统的每个输入应该由许多特征表示,每个特征描述了输入的一个部分。如一个视觉识别系统可以识别:汽车、卡车、鸟,这些对象可以为红色、蓝色、绿色。
- 表达这些输入的一种方式为:9个神经元分别表示红色卡车、红色汽车、红色鸟、绿色汽车…等等。
- 如果使用分布式表达,则使用6个神经元:3 个神经元来表示卡车、汽车、鸟,另外3个神经元来表示红色、绿色、蓝色。
反向传播算法
back-propagation
:它是当前主要的训练深度模型的算法。long short-term memory:LSTM
网络:它是一种序列模型,解决了许多自然语言处理任务。
第三波浪潮从2006年开始突破。
Geoffrey Hinton
给出了一种称作深度信念网络(deep belief network
),该网络可以使用greedy layer-wise pre-training
策略来有效地训练。
2.2 目前状况
深度学习的成功的关键有两个:
- 训练集大小的增长。
- 硬件和软件的发展。包括更快的
CPU
、通用的GUP
发展、更大内存、更快的网络连接、更好的软件基础。
2.2.1 训练集大小
早期的深度学习需要一些
trick
才能从算法中获得良好的性能。随着训练数据量的增加,所需的trick
在降低。截止2016年,一个粗略的经验法则是:
- 在深度学习的监督学习中要想获取可接受的性能,那么每个分类集合需要大约5000个标记样本。
- 要想匹配甚至超越人类的性能,则训练集至少包含 1000 万个标记样本。
- 对于小于这个数量的数据集,如何获取良好的性能是个重要的研究领域。尤其关注如何使用未标记样本(通过无监督学习或者半监督学习)。
下图显示了
benchmark
数据集大小随时间的变化,这种变化趋势是由于整个社会的数字化的推动。20 世纪初,统计学家使用数百或者数千的人工制作的数据来研究 。
20世纪50年代到80年代,AI 专家采用较小的、合成的数据集(如低分辨率的位图的字母),从而证明神经网络能够完成特定任务。
20世纪80年代到90年代,机器学习本质上更具有统计性。人们开始利用包含成千上万个例子的大数据集,如
MNIST
数据集。21世纪前十年,继续产生了同样大小的更复杂的数据集,如
CIFAR-10
数据集。2010年以来,更大的数据集包含了数十万到数千万的样本,深刻地改变了深度学习的可行性。
神经网络的表现与它的规模和数据量有关。如今在神经网络上获取更好的性能的最可靠的方法就是:训练一个更大的神经网络,以及投入更多的数据。
在大规模数据集上:更大的神经网络表现得更好。它们都优于传统算法。
在小规模的数据集中,各种算法的性能排名事实上不是很确定。
- 如果没有大量的训练集,则最终效果取决于你的特征工程能力,以及在算法细节上的处理上。
- 只有在超大规模的训练集上,神经网络才能占领统治地位。
2.2.2 计算资源
神经网络最近成功的另一个关键原因是:有充足的计算资源来运行更大的模型。
连接主义的主要观点是:单个神经元或者少量的神经元集合没什么用处,只有许多神经元一起工作(更大的模型)才产生智能。
更大的模型有两层含义:单个神经元的连接数量更多、模型的神经元的数量更多。
生物的神经元的连接并不是非常密集。下图给出了一些动物和人的大脑中,每个神经元的连接数量。
早期人工神经元之间的连接数受到硬件能力的限制,今天神经元之间的连接数量多数出于设计考虑。目前一些人工神经网络的单个神经元的连接数量已经和猫相同。
在神经元总量上,早期的神经网络非常的小,直到最近才有较强的改观。
- 自从引入了隐层以来,人工神经网络的大小大约每隔 2.4年翻一番。这种增长是由更大内存、更快的计算机(更快的
CPU
、通用GPU
的出现、更快的网络连接、更好的软件基础)和更大的数据集来驱动的。 - 更大的神经网络能够在更复杂的任务上实现更高的精度。
- 按照目前的趋势,大约2050年人工神经网络将具有与人类大脑相同数量的神经元。但是生物神经元可能拥有比人工神经元更复杂的功能。
- 自从引入了隐层以来,人工神经网络的大小大约每隔 2.4年翻一番。这种增长是由更大内存、更快的计算机(更快的
2.2.3 算法优化
在最近几年,许多算法方面的创新也推动了神经网络的发展。这些算法主要使得神经网络运行的更快。
- 如:激活函数从
sigmoid
转换到ReLU
函数。它使得基于梯度下降的算法运行的更快。 - 快速计算的一个重要作用是:迭代网络的效率更高。
- 如:激活函数从