深入探索深度学习

理解先进神经网络惊人能力背后原理的个人旅程

加入我们的科学爱好者社区!

本文发表于《大众科学》的前博客网络,反映了作者的观点,不一定反映《大众科学》的观点


2018年3月27日星期三,计算机领域的图灵奖授予了约书亚·本吉奥、杰弗里·辛顿和扬·勒丘恩,以表彰他们在深度学习方面的工作。复杂神经网络的深度学习是最终将人工智能从科幻领域带入现实的应用背后的技术。语音识别使您能够与您的机器人设备对话。图像识别是自动驾驶汽车的关键。但是,深度学习究竟是什么?

许多文章告诉您,它是一个复杂的多层神经网络。但它们并没有真正阐明深度学习看似神奇的力量。例如,解释它如何从像素值矩阵(即图像)中识别面孔。

作为一名数据科学教育工作者,多年来我一直在寻找对深度学习这一变革性核心的清晰直观的解释——神经网络“发现”机器学习专家所谓的“更高级别特征”的能力。包括神经网络在内的较旧的统计建模和机器学习算法,使用那些具有预测能力的特征已经存在于其中的数据库。例如,在预测可能的银行倒闭时,我们可能会猜测某些财务比率(资产回报率、权益回报率等)可能具有预测价值。在预测保险欺诈时,我们可能会猜测保单期限可能具有预测性。


支持科学新闻报道

如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。通过购买订阅,您正在帮助确保未来能够继续讲述关于塑造我们当今世界的发现和想法的具有影响力的故事。


对于诸如语音和图像识别之类的任务,像这样的结构化信息性预测变量信息是不可用的。我们拥有的只是单独的“低级别”声波频率和振幅,或指示强度和颜色的像素值。您希望能够告诉计算机“只需寻找两只眼睛”,然后提供有关眼睛外观的更多细节——一个小实心圆圈(瞳孔),被一个环(虹膜)包围,再被一个白色区域包围。但是,同样,计算机拥有的只是(低级别)像素值的列;您需要做很多额外的工作来定义与眼睛相对应的所有不同的(更高级别)像素模式。这就是深度学习的用武之地——它可以“学习”如何自行识别这些更高级别的特征。

当我寻找关于这是如何工作的解释时,我发现大多数叙述在关键点上含糊不清地消失了,通常会附带一个圆圈列的图像,以及许多连接圆圈的线条。就好像讲师把你迷住了,到此为止,他挥舞着双手说“这就是像面孔这样的更高级别特征是如何被发现的。”

然后我参加了一个研讨会,了解了卷积。

卷积神经网络 (CNN)

在标准神经网络中,每个预测变量在网络的每一层都有自己的权重。相比之下,卷积选择预测变量(像素)的子集,并将相同的操作应用于整个子集。正是这种分组促进了特征的自动发现。回想一下,图像识别任务中的数据由大量像素值组成,在黑白图像中,像素值范围从零(黑色)到 255(白色)。由于我们对检测黑线和阴影感兴趣,我们将此反转为黑色为 255,白色为零。

考虑上面的线条图,来自 1893 年 Funk & Wagnalls 出版物。在计算机开始识别眼睛、耳朵、鼻子、头部等复杂特征之前,它需要掌握非常简单的特征,如线条和边框。例如,男人下巴的线条。

在典型的卷积中,算法一次考虑一个小区域,比如 3 个像素乘以 3 个像素。下巴处的线条可能看起来像这样

鸣谢:Peter Bruce

在其第一次卷积运算中,网络可以通过将像素值乘以一个 3x3 的值矩阵来应用滤波器运算,该矩阵恰好擅长识别垂直线,例如

鸣谢:Peter Bruce

各个单元格乘积的总和为 [0+0+0+200+225+225+0+0+0] = 650。这是一个相对较高的值,与滤波器矩阵的另一种排列可能产生的值相比,因为图像部分和滤波器在中心列中都有较高的值,而在其他地方则有较低的值。因此,对于这个初始滤波器动作,我们可以说滤波器检测到了一条垂直线,因此我们可以将图像部分的初始九个值合并为一个值(比如说介于 0 和 1 之间的值,以指示垂直线的缺失或存在)。

局部特征图

“垂直线检测器”滤波器在原始图像矩阵上横向和向下移动,每次重新计算并产生单个输出。我们最终得到一个较小的矩阵;小多少取决于滤波器一次移动一个像素、两个像素还是更多像素。虽然原始图像值只是单个像素值,但新的、较小的矩阵是特征图,回答了问题“此部分中是否存在垂直线?”

卷积的帧相对较小这一事实意味着整体操作可以识别局部特征。我们可以想象其他局部滤波器来发现水平线、对角线、曲线、边界等。不同卷积操作的进一步层,将这些局部特征图作为输入,然后可以逐步构建更高级别的特征(角、矩形、圆形等)。

特征层次结构

第一个特征图是垂直线;我们可以重复该过程来识别水平线和对角线。我们还可以想象滤波器来识别亮区和暗区之间的边界。然后,在生成一组初始低级别特征图后,可以重复该过程,但这次使用这些特征图而不是原始像素值。这个迭代过程继续进行,构建多维矩阵图,或张量,表示越来越高级别的特征。随着过程的进行,更高级别特征的矩阵表示变得有些抽象,因此不一定可以深入网络并识别例如眼睛。

在这个过程中,随着更高级别特征的出现,信息被逐步压缩(简化)

鸣谢:Peter Bruce

学习过程

网络如何知道要执行哪些卷积运算?简而言之,它保留那些导致成功分类的运算。在基本神经网络中,各个权重是在迭代学习过程中调整的内容。在卷积网络中,网络还会学习要执行哪些卷积。

在监督学习环境中,网络不断构建特征到最高级别,这可能是学习任务的目标。考虑确定图像是否包含面孔的任务。您有一个带有面孔的标记图像的训练集,以及没有面孔的图像。训练过程产生卷积,这些卷积识别特征的层次结构(例如,边缘 > 圆形 > 眼睛),从而在分类过程中取得成功。网络可能遇到的其他层次结构(例如,边缘 > 矩形 > 房屋)被丢弃,因为它们对识别面孔的成功没有贡献。有时,网络中单个神经元的输出是一个有效的分类器,这表明该神经元编码了您关注的特征。

无监督学习

深度学习最神奇的成就似乎是在无监督环境中识别特征,从而识别对象。著名的例子包括识别带有面孔的图像以及识别图像中的狗和猫。这是如何做到的呢?

一种方法是使用所谓的自编码器网络。这些网络经过训练,通过首先创建数据的低维表示,然后使用创建的表示来再现原始数据,从而再现输入到它们的数据。因此,网络经过训练以保留有助于准确再现输入的特征。 

在我们的图像示例的上下文中查看,自编码器具有以下高级架构

鸣谢:Peter Bruce

直到学习到的特征点(图像中的瓶颈),网络都类似于监督网络。一旦它开发出学习到的特征,即数据的低维表示,它就会通过反向过程将这些特征扩展为图像。将输出图像与输入图像进行比较,如果它们不相似,则网络会继续工作(使用我们之前讨论的相同的反向传播方法)。一旦网络可靠地生成与输入相似的输出图像,该过程就会停止。

瓶颈处的这种内部表示现在具有关于网络训练的通用领域(此处为图像)的有用信息。事实证明,在此过程中出现的学习到的特征(瓶颈处神经元的输出)通常很有用。例如,它们可以用于构建监督预测模型或用于无监督聚类。 

底线

卷积网络成功的关键在于它们构建复杂的多维特征图(需要大量的计算能力和容量)的能力,从而导致学习到的特征的发展,这些特征形成了数据的低维表示。不同的卷积架构(例如,滤波操作的类型)适用于不同的任务。人工智能社区共享预训练网络,分析师可以绕过所需漫长而复杂的训练过程,以及允许训练和基准测试特定任务的数据集(例如,许多不同类别的通用图像数据集、专门用于面孔的图像、卫星图像、文本数据、语音数据等)。

Peter Bruce founded The Institute for Statistics Education at Statistics.com in 2002. He is a co-author of "Data Mining for Business Analytics" (Wiley), and "Practical Statistics for Data Scientists: 50 Essential Concepts" (O'Reilly,2017), the author of "Introductory Statistics and Analytics: A Resampling Perspective" (Wiley), and the co-developer of Resampling Stats software.

More by Peter Bruce
© . All rights reserved.