二、历史

2.1 历史简介

  1. 深度学习分为三个时期:

    • 1940s-1960s:这时它被称作控制论cybernetics
    • 1980s-1990s:这时它被称作连接机制connectionism
    • 2006--:这时被称作deep learning

    深度学习在历史上的不同名字反映了不同的哲学观点。

  2. 下图展示了神经网络研究的三个历史浪潮中的两个(因为第三波太近了)。

    • 第一波随着生物学习理论的发展和第一个模型的出现(如感知机神经元)。
    • 第二波用反向传播训练一层或者两层隐层神经网络。

    history

  3. 第一波浪潮:早期的人工智能算法模拟生物的学习过程:对大脑的学习过程建模。

    • 此时的深度学习被称作人工神经网络artificial neural networks:ANNs, 深度学习模型因此被认为是受生物大脑启发的工程系统。
    • 现代的深度学习超越了神经科学的观点:它是一种多层次学习的、通用的机器学习框架,而不必是从神经科学中获取灵感。
  4. 第二波浪潮:连接机制的中心思想是:大量简单的计算单元在连接时可以实现智能行为。

    • 这种观点适用于生物神经系统中的神经元,以及深度网络模型中的隐层神经元。

    • 在连接机制期间,有一些核心思想仍然影响了后续的神经网络:

      • 分布式表达distributed representation:系统的每个输入应该由许多特征表示,每个特征描述了输入的一个部分。

        如一个视觉识别系统可以识别:汽车、卡车、鸟,这些对象可以为红色、蓝色、绿色。

        • 表达这些输入的一种方式为:9个神经元分别表示红色卡车、红色汽车、红色鸟、绿色汽车…等等。
        • 如果使用分布式表达,则使用6个神经元:3 个神经元来表示卡车、汽车、鸟,另外3个神经元来表示红色、绿色、蓝色。
    • 反向传播算法back-propagation:它是当前主要的训练深度模型的算法。

    • long short-term memory:LSTM网络:它是一种序列模型,解决了许多自然语言处理任务。

  5. 第三波浪潮从2006年开始突破。

    Geoffrey Hinton给出了一种称作深度信念网络(deep belief network),该网络可以使用 greedy layer-wise pre-training策略来有效地训练。

2.2 目前状况

  1. 深度学习的成功的关键有两个:

    • 训练集大小的增长。
    • 硬件和软件的发展。包括更快的 CPU、通用的GUP发展、更大内存、更快的网络连接、更好的软件基础。

2.2.1 训练集大小

  1. 早期的深度学习需要一些trick 才能从算法中获得良好的性能。随着训练数据量的增加,所需的trick 在降低。

    截止2016年,一个粗略的经验法则是:

    • 在深度学习的监督学习中要想获取可接受的性能,那么每个分类集合需要大约5000个标记样本。
    • 要想匹配甚至超越人类的性能,则训练集至少包含 1000 万个标记样本。
    • 对于小于这个数量的数据集,如何获取良好的性能是个重要的研究领域。尤其关注如何使用未标记样本(通过无监督学习或者半监督学习)。
  2. 下图显示了benchmark数据集大小随时间的变化,这种变化趋势是由于整个社会的数字化的推动。

    • 20 世纪初,统计学家使用数百或者数千的人工制作的数据来研究 。

    • 20世纪50年代到80年代,AI 专家采用较小的、合成的数据集(如低分辨率的位图的字母),从而证明神经网络能够完成特定任务。

    • 20世纪80年代到90年代,机器学习本质上更具有统计性。人们开始利用包含成千上万个例子的大数据集,如MNIST数据集。

    • 21世纪前十年,继续产生了同样大小的更复杂的数据集,如CIFAR-10数据集。

    • 2010年以来,更大的数据集包含了数十万到数千万的样本,深刻地改变了深度学习的可行性。

      dataset_size

  3. 神经网络的表现与它的规模和数据量有关。如今在神经网络上获取更好的性能的最可靠的方法就是:训练一个更大的神经网络,以及投入更多的数据。

    • 在大规模数据集上:更大的神经网络表现得更好。它们都优于传统算法。

    • 在小规模的数据集中,各种算法的性能排名事实上不是很确定。

      • 如果没有大量的训练集,则最终效果取决于你的特征工程能力,以及在算法细节上的处理上。
      • 只有在超大规模的训练集上,神经网络才能占领统治地位。

    scale

2.2.2 计算资源

  1. 神经网络最近成功的另一个关键原因是:有充足的计算资源来运行更大的模型。

  2. 连接主义的主要观点是:单个神经元或者少量的神经元集合没什么用处,只有许多神经元一起工作(更大的模型)才产生智能。

    更大的模型有两层含义:单个神经元的连接数量更多、模型的神经元的数量更多。

  3. 生物的神经元的连接并不是非常密集。下图给出了一些动物和人的大脑中,每个神经元的连接数量。

    早期人工神经元之间的连接数受到硬件能力的限制,今天神经元之间的连接数量多数出于设计考虑。目前一些人工神经网络的单个神经元的连接数量已经和猫相同。

    con_per_neurons

  4. 在神经元总量上,早期的神经网络非常的小,直到最近才有较强的改观。

    • 自从引入了隐层以来,人工神经网络的大小大约每隔 2.4年翻一番。这种增长是由更大内存、更快的计算机(更快的CPU、通用GPU的出现、更快的网络连接、更好的软件基础)和更大的数据集来驱动的。
    • 更大的神经网络能够在更复杂的任务上实现更高的精度。
    • 按照目前的趋势,大约2050年人工神经网络将具有与人类大脑相同数量的神经元。但是生物神经元可能拥有比人工神经元更复杂的功能。

    num_neurons

2.2.3 算法优化

  1. 在最近几年,许多算法方面的创新也推动了神经网络的发展。这些算法主要使得神经网络运行的更快。

    • 如:激活函数从sigmoid 转换到 ReLU 函数。它使得基于梯度下降的算法运行的更快。
    • 快速计算的一个重要作用是:迭代网络的效率更高。