深度学习
深度学习是一种机器学习技术,教授计算机执行人类与生俱来的活动:从示例中学习。深度学习是无人驾驶汽车背后的关键技术,使它们能够识别停车标志,或区分行人与路灯杆。它是手机、平板电脑、电视机和免提扬声器等消费类设备实现语音控制的关键。深度学习近来获得了大量关注,理由也很充分。深度学习正在实现以前不可能实现的成果。
在深度学习中,计算机模型直接从图像、文本或声音中学习执行分类任务。深度学习模型可以达到最先进的精确度,有时甚至超出人类的表现。该模型通过使用大量的标签化数据以及包含许多层的神经网络架构得到训练。
如何创建和训练深度学习模型
人们使用深度学习来执行对象分类的三种最常见的方法如下:
从头开始训练
要从头开始训练深度网络,您需要收集庞大的标签化数据集,并设计用于学习特征和模型的网络架构。这适合新应用程序以及将具有大量输出类别的应用程序。由于需要处理大量数据且学习速率低下,导致这种方法不太常用,这类网络通常需要花费数天乃至数周的时间进行训练。
迁移学习
大多数深度学习应用程序使用迁移学习方法,该过程涉及对预先训练的模型进行微调。您从现有网络(如 AlexNet 或 GoogLeNet)起步,并输入包含以前未知的类的新数据。对网络做出一些改进后,现在可以执行新任务,例如仅对狗或猫进行分类,而不是对 1000 个不同的对象进行分类。还有一项优势是需要的数据少得多(处理数千张图片而不是数百万张图片),因此计算时间下降到数分钟或数小时。
迁移学习需要用于访问现存网络内部的接口,因此可以针对新任务进行精确的修改和增强。MATLAB® 包含旨在帮助您进行迁移学习的工具和功能。
特征提取
一种不太常见、更加专业化的深度学习方法是使用网络作为特征提取器。由于所有层的任务都是从图像中学习某些特征,因此我们可以在训练过程中随时将这些特征从网络中提取出来。然后可以将这些特征用作机器学习模型(如 支持向量机 (SVM))的输入。
利用 GPU 加速深度学习模型
训练深度学习模型可能会花费很长的时间,可能是几天,也可能是几周。使用 GPU 加速可以显著提升处理速度。将 MATLAB 与 GPU 结合使用可以减少训练网络所需的时间,并且可以将图像分类问题所需的训练时间从几天缩短到几个小时。在训练深度学习模型时,MATLAB 会使用 GPU(如果可用),而不需要您了解如何另行对 GPU 进行编程。
图 4.Deep Learning Toolbox 决定是从头训练您自己的 CNN 还是使用预先训练好的模型进行迁移学习。
深度学习的重要性
深度学习如何获得如此惊人的成果?
简而言之,精确。深度学习在比以往更高的层次上实现了识别精确性。这有助于消费电子产品满足用户期望,并且对于无人驾驶汽车等安全关键应用至关重要。深度学习最近已经发展到在一些任务(如对图像中的对象分类)中胜过了人类。
虽然深度学习理论最初创立于上世纪八十年代,但有两个主要原因导致其直到近期才发挥作用:
1、深度学习需要大量的标签化数据。例如,无人驾驶汽车开发需要数百万张图片和数千小时的视频。
2、深度学习需要巨大的计算能力。具有并行架构的高性能 GPU 对于深度学习很有效。与集群或云计算相结合时,开发团队能够将深度学习网络的训练时间从数周缩短至数小时或更少。
深度学习应用示例
从自动驾驶到医疗设备的各种行业使用了深度学习应用程序。
自动驾驶:汽车研发人员正在使用深度学习来自动检测物体,如停车标志和红绿灯。此外,深度学习还用于探查行人,这有助于减少交通事故。
卷积神经网络(CNN 或 ConvNet)是最流行的深度神经网络类型之一。CNN 卷积通过输入数据学习到的特征,并使用二维卷积层,使此架构非常适合用来处理二维数据(例如图像)。
CNN 无需使用手动特征提取,因此不需要识别用于对图像进行分类的特征。CNN 通过直接从图像提取特征来运作。不预先训练相关特征;网络在对一组图像进行训练时学习相关特征。这种自动化的特征提取使深度学习模型能够为计算机视觉任务(如对象分类)提供高精确度。
图 2:具有大量卷积层的网络示例。以不同的分辨率对每个训练图像应用滤波器,且每个卷积图像的输出会用作下一层的输入。
CNN 使用数十或数百个隐藏层检测图像的不同特征。每个隐藏层都增加了所学习的图像特征的复杂度。例如,第一个隐藏层可以学习如何检测边缘,而最后一个隐藏层学习如何检测更复杂的形状,特别是针对我们正在尝试识别的对象的形状。
机器学习与深度学习有什么区别?
深度学习是一种特殊的机器学习形式。机器学习工作流程起始于从图像手动提取的相关特征。然后使用这些特征创建对图像中的对象进行分类的模型。在深度学习工作流程中,自动从图像提取相关特征。此外,深度学习还执行“端到端学习”,即为网络提供原始数据和分配要执行的任务(如分类),而神经网络学习如何自动执行此操作。
另一个主要区别是深度学习算法会随数据发散,而浅层学习则会收敛。浅层学习是指当您向网络添加更多示例和训练数据时,在一定性能水平上趋于稳定的机器学习方法。
深度学习网络的一个主要优势在于,随着数据量增加,它们经常会持续改进。
图 3.将对车辆进行分类的机器学习方法(左)与深度学习(右)进行比较。
在机器学习中,手动选择用于对图像进行分类的特征和分类器。在深度学习中,特征提取和建模步骤是自动化的。
在机器学习和深度学习之间作出选择
机器学习提供了多种技术和模型,您可以根据应用程序、所处理数据的规模以及想要解决的问题类型进行选择。成功的深度学习应用程序需要海量数据(数千张图片)来训练模型,以及 GPU(图形处理单元)来快速处理您的数据。
在机器学习和深度学习之间进行选择时,考虑您是否拥有高性能 GPU 和大量标记化数据。如果您不具备其中任何一项,则使用机器学习代替深度学习可能更明智。深度学习通常更复杂,因此您至少需要几千张图片才能获得可靠的结果。拥有高性能 GPU 意味着该模型将花费更少的时间来分析所有这些图像。
航空和国防:深度学习用于识别人造卫星照片中的物体以定位关注的区域,以及为部队确定安全或非安全区域。
医学研究:癌症研究人员正在使用深度学习自动检测癌细胞。加州大学洛杉矶分校的团队建造了一种高级显微镜,能产生高维的数据集,用来训练深度学习应用程序以准确地识别癌细胞。
工业自动化:深度学习通过自动检测处于机械不安全距离内的人员或物体,帮助改善在重型机械附近作业的工人的安全性。
电子学 (CES):深度学习正被用于自动听说翻译。例如,响应您的语音并了解您的偏好的家庭助理设备,即是装载了基于深度学习的应用程序。