十分钟让你了解深度学习

启迪云-高级开发工程师 刘寒寒

概述

机器学习系统被广泛应用于图像物体识别、语言转换为文字、根据用户兴趣推荐新闻或产品、根据搜索提供关联性结果等应用,而这些都用到了一类技术:深度学习。传统机器学习技术需要非常仔细的工程设计以及大量的专业知识,才能将原始数据(例如图像的像素数值)转化为合适的内部表征。表征学习(representation learning)是一种可以让机器自动学习的方式,它能够从原始数据中自动寻找出所需的表征(用于检测或分类)。

深度学习是具有多层结构的表征学习。其利用简单的非线性方式将表征从原始数据开始,将上一层变换为更抽象的下一层。例如,一张图片是由一组像素数值构成,第一层的表征通常是表述了特定位置和方向的边界,第二层则表述了由这些边界构成的一些局部特征,而和位置无关,第三层会将局部特征组合成常见物体的部件,接下来更高的层会代表了常见的物体。深度学习的重要特点就是这些层的特征不是由工程师设计而成,而是由数据学习而成的。

深度学习在解决人工智能的问题上取得了重要进展。例如图像识别和语音识别,并在一些领域上超越了其他机器学习技术。如分子药物预测、构建大脑环路、预测非编码DNA突变的基因表达与疾病等。我们相信深度学习在不远的将来会取得更大的成功,因为它仅需要很少的手动设计,更容易利用日益增长的计算能力和数据。同时正在研发的新学习算法和结构也会让这一过程更加迅速。

监督学习(Supervised learning)

常用的机器学习无论是否为深度学习,采用的均为监督学习技术。假设我们要构建一个图片识别系统,可以识别图片中的马、车、人或宠物。首先我们要收集大量的包含马、车、人和宠物的图片,并在图片中标记它们。在训练时,输入给系统一张图片,经过计算后,输出图片中各个种类的分值。然后通过计算这个分值和目标分值之间的误差,来调整机器系统中参数的数值以使这个误差达到最小。这些可调的参数通常称为权重(weights)。一个深度学习系统可能会包含几百万个参数,训练模型时更是需要数百万张被标记的图片。

为了调整参数,学习算法需要根据误差减少的方向计算出梯度向量。这个过程和下山类似,梯度向量就是下山的最佳方向。在实际过程中,开发人员最常用的方式是随机梯度下降法(stochastic gradient descent, SGD)。这个方法是随机向系统给出一小部分样本,计算输出和误差,并给出梯度向量并调整权重。然后不停的重复这个过程,直至误差不再减小。这种方法在获取一组不错的权重值时,要比传统的经过精心设计挑选的方式快的多。训练完成后,这个系统需要用一些未被用于训练的样本(测试集)去验证其效能。

目前很多机器学习的实际应用,在最上层的特征处理上用的是线性分类器。早在上世纪60年代我们就知道线性分类器只适用于非常简单的领域。但有一些问题,例如图片和语言识别,就超出了这个范围。假设要区分白色的狼和白色的萨摩多。在像素层面,两只不同姿势的萨摩多区别很大,而姿势相同的萨摩多和狼会非常类似。对于线性分类器,或者是任何其他“浅层”分类器,当处理像素时,都无法区分后者。为了让分类器更强大,我们可以采用非线性分类器。传统的非线性分类器需要手动设计特征提取,而这一过程需要大量的工程设计工作和专业知识。这就是深度学习最具优势的地方。

深度学习的结构是多个简单模块的叠加,所有或绝大部分模块是非线性输入-输出映射的主动学习。每个简单模块都会同时增加特征选择性及不变性。一个约5-20层的系统就能够处理非常复杂的功能,例如区分萨摩多和白色的狼,而无论它们处在何种背景、姿势、光照和其他物体下。

反向传播训练多层结构 (Backpropagation to train multilayer architectures)

20世纪50年代,在特征识别的最初阶段,研究者想用可训练的多层结构替代人工设计的特征,即便这个任务很简单,但直到80年代才有了广泛的突破。最终结果证明多层结构可以用简单的反向传播法训练,此方法在70年代和80年代被几个不同的组独立发现并验证。反向传播法仅仅是对权重做微分计算,就可以计算出梯度向量。其中的关键点是从最终的输出反向算出每一层的微分(图1)。

十分钟让你了解深度学习_第1张图片

图1:多层神经网络和反向传播

深度学习通常采用正向网神经络结构,根据输入(例如图片)计算出特定的输出(例如某物体的概率)。从一层传向下一层中通常采用非线性方程,现在最流行的是ReLU(rectified linear unit),也就是半波整流器f(z) = max(z, 0)。在过去几十年,神经网络使用曲线更加光滑的非线性方程,例如tanh(z)或1/(1+exp(-z)),但ReLU的学习速度更快,并且当使用监督式深度网络时不需要无监督的预训练。

在20世纪90年代后期,神经网络和反向传播算法被大部分机器学习团体抛弃,并被计算机视觉和语言识别团体忽视。大家普遍认为没有先验知识的情况下训练可用的、多层的特征识别网络不切实际,并认为简单的梯度下降法会计算出局部最小值,而非全局最小值。实际上,局部最小值在大型网络结构中几乎不会出现。无论起始条件是什么,这个系统最终的结果会非常类似。最近的研究和实际结果都表明局部最小值不是一个普遍性的严重问题。

2006年,深度正向网络的热情被加拿大先进研究所(CIFAR)的一个研究组再次点燃。他们提出一种非监督的学习方式,可以在未标记的数据中训练出特征的识别层。这个工作在识别手写数字或检测行人时非常有效,尤其是当被标记的数据很有限时。加拿大研究组提出的这个方法在语音识别上首次被大规模应用,而图像处理器(GPU)的出现不仅让编程更加容易,也使得网络训练的速度提升了10-20倍。对于小数据集,非监督的预训练可以防止过拟合。据此,我们可以使用少量的已标记数据集依然能得到较好的结果。

然而,有一种特殊的深层正向网络,训练起来更容易,通常结果也比相邻层全连接的网络更好,这就是卷积神经网络(ConvNet)。当神经网络被忽视时,它在实际应用中取得了很大的成功,并在最近被广泛应用于计算机视觉领域。

卷积神经网络 (Convolutional neural networks)

ConvNet被设计用于处理多阵列数据,例如彩色图像是包括了3组二维阵列。ConvNet根据自然信号设计了四个关键点:局部连接、共享权重、池化和多层结构。ConvNet由一系列的结构组成,如图2。ConvNet前几层由两类不同的层组成:卷积层和池化层。简单来说,卷积层使用过滤器有效的检测局部特征,而池化层则通过粗粒化让特征检测更加可靠。这种卷积、池化和非线性转化重复两三次之后,连接的是常见的全连接神经网络层。卷积神经网络的反向传播运算和常见的神经网络一样简单,所有的权重都可以被训练改变。

十分钟让你了解深度学习_第2张图片

图2:卷积网络结构

深度神经网络和很多自然信号一样,采用了层级结构,也就是高层级的特征来自于低层级。在图片中,局部的边缘构成了小的特征,这些小的特征构成了组件,而组件最终构成了整个物体。同样的结构也存在于语言和文字之中。卷积神经网络中的卷积层和池化层是受到了视觉神经网络的启发。视觉神经网络包括简单细胞和复杂细胞,而且其结构LGN-V1-V2-V4-IT也是分层结构。当ConvNet模型和猴子在看同样的图片时,ConvNet的高级单元能够解释猴子IT皮层160个神经元的一般变化。

深度卷积网络的图片理解 (Image understanding with deep convolutional networks)

进入21世纪后,ConvNet被成功的应用在很多方面,包括交通标志识别、面孔识别、自主移动的机器人和无人车。一些公司正在基于ConvNet为汽车开发视觉系统,比如Mobileye和NVIDIA。

尽快有以上成功,但ConvNet还是被主流计算机视觉和机器学习团体所忽视。直到2012年开展的ImageNet比赛,深度卷积网络被应用于100万张图片,从中识别1000多类物体。它取得了巨大的成功,比起其他的对手,它的错误率几乎减半。这个成功源自于高效率的GPU、ReLU、新的规则化技术dropout、通过扭曲图片产生更大量的训练样本。这个成功也给计算机视觉带来了革命性的改变,ConvNet现在已经支配了几乎所有的识别和探索任务,并且在一些任务上的表现和人类接近。最近一个显著的成就就是,结合ConvNet和循环网络模块来给图片配上注释文字(图3)。

十分钟让你了解深度学习_第3张图片

图3:图片文字注释

目前ConvNet的结构一般都采用ReLU,约10-20层,数百万个权重参数,数十亿个连接。由于硬件、软件和算法的不断改进,训练如此大规模网络所需要的时间也从几周减少到了几个小时。绝大多数科技公司,如Google、Facebook、Microsoft、IBM、Yahoo!、Twitter和Adobe,都有基于ConvNet研发视觉系统。与此同时,很多新兴公司从事基于ConvNet研发和部署图片理解的产品和服务。ConvNet相关的芯片也被一些公司,如NVIDIA、Mobileye、Intel、Qualcomm和Samsung,用在智能手机、相机、机器人和自动驾驶汽车项目上。

深度学习的未来(The future of deep learning)

无监督学习在深度学习的复兴之中起到了催化剂的作用,但之后其光芒一直被纯粹的监督学习所掩盖。尽管这篇文章中没有介绍无监督学习,我们还是希望无监督学习在将来获取更多的重视。人类和动物的学习主要是无监督式的,我们理解这个世界是通过观测它,而非被告诉每个物体的名字。

人类视觉是一个主动过程,它使用一个小范围的、高分辨的中心凹,周围是大范围的、低分辨率环绕,以一种智能、基于特定任务的方式去连续观测物体。我们期待未来的视觉研究是终端对终端式的训练,并结合ConvNet和RNN使用强化学习去决定观测哪里。虽然结合深度学习和强化学习的系统还处于初级阶段,但它们已经在分类任务中胜过了被动视觉系统,并在很多电子游戏中取得了令人惊喜的成就。

虽然深度学习和简单推理已经在语音和手写识别方面应用了很长时间,但人工智能最终还是需要结合特征学习和复杂推理才会取得更大的成就。我们需要新的模式去取代仅仅在大数据上进行一些象征性的操作。

本文由作者翻译自Review|Insight-Deep learning

你可能感兴趣的:(十分钟让你了解深度学习)