什么是深度学习?

你需要知道的三件事

深度学习是一种机器学习技术,它教会计算机去做那些对人类来说很自然的事情:通过实例来学习。深度学习是无人驾驶汽车背后的一项关键技术,它使无人驾驶汽车能够识别停车标志,或将行人与路灯柱区分开。它是电话、平板电脑、电视和免提音箱等消费设备语音控制的关键。最近,深度学习受到了很多关注,这是有原因的。它正在取得以前不可能取得的成果。

在深度学习中,计算机模型直接从图像、文本或声音中学习执行分类任务。深度学习模型可以达到最先进的准确性,有时甚至超过人类水平的表现。通过使用一组包含许多层的标记数据和神经网络体系结构来训练模型。

为什么深度学习很重要

深度学习是如何获得如此令人印象深刻的结果的?

一句话,准确性。深度学习的识别精度达到了前所未有的高度。这有助于消费类电子产品满足用户的期望,对于无人驾驶汽车等安全关键的应用程序来说,这是至关重要的。最近在深度学习方面取得的进步已经达到了这样的程度:深度学习在某些任务上比人类做得更好,比如对图像中的物体进行分类。

虽然深度学习在20世纪80年代首次被理论化,但它直到最近才变得有用,主要有两个原因:

  1. 深度学习需要大量的时间带安全标签的数据时。例如,无人驾驶汽车的开发需要数百万张图片和数千小时的视频。
  2. 深度学习需要大量的计算能力. 高性能gpu有一个并行架构,可以有效地进行深度学习。当与集群或云计算相结合时,这使得开发团队能够将深度学习网络的培训时间从几周减少到几小时或更少。

在工作中深度学习的例子

深度学习应用在从自动驾驶到医疗设备的各个行业。

自动驾驶:汽车研究人员正在使用深度学习来自动检测诸如停车标志和红绿灯之类的物体。此外,深度学习被用来检测行人,这有助于减少事故。

航空航天和国防:深度学习用于从卫星上识别目标,定位感兴趣的区域,并识别部队的安全或不安全区域。

医学研究:癌症研究人员正在使用深度学习来自动检测癌细胞。加州大学洛杉矶分校(UCLA)的研究团队构建了一种先进的显微镜,可以生成高维数据集,用于训练一种深度学习应用程序,以准确识别癌细胞。

工业自动化:深度学习通过自动检测人或物在机器不安全距离内,帮助改善重型机械周围工人的安全。

电子学:深度学习正被用于自动化听力和语音翻译。例如,家庭辅助设备可以响应你的声音并知道你的偏好,这些设备由深度学习应用程序提供支持。

深度学习是如何运作的

大多数深度学习方法都会用到神经网络架构,这就是为什么深度学习模型经常被称为深层神经网络

术语“深度”通常指的是神经网络中隐藏层的数量。传统的神经网络只包含2-3个隐藏层,而深度网络可以有多达150个隐藏层。

深度学习模型是通过使用大量标记数据和神经网络架构来训练的,这些架构直接从数据中学习特征,而不需要手动提取特征。

图1:神经网络,由一组相互连接的节点组成的层来组织。网络可以有数十或数百个隐藏层。

最流行的一种深度神经网络被称为卷积神经网络(美国有线电视新闻网转换网络)。CNN将学习到的特征与输入数据进行卷积,并使用2D卷积层,这使得该架构非常适合处理2D数据,比如图像。

CNNs消除了手动操作的需要特征提取,因此你不需要识别用于分类图像的特征。CNN的工作原理是直接从图像中提取特征。相关特征未经过预先训练;他们是在网络训练一系列图像时学会的。这种自动的特征提取使得深度学习模型在对象分类等计算机视觉任务中具有很高的准确性。

图2:具有许多卷积层的网络示例。对每个训练图像应用不同分辨率的滤波器,每个卷积图像的输出作为下一层的输入。金宝搏官方网站

CNNs学习使用数十或数百个隐藏层来检测图像的不同特征。每个隐藏层都增加了学习图像特征的复杂度。例如,第一个隐层可以学习如何检测边缘,而最后一个隐层可以学习如何检测更复杂的形状,这些形状专门针对我们试图识别的对象的形状。

机器学习和深度学习的区别是什么?

深度学习是机器学习的一种特殊形式。机器学习的工作流程是从手动从图像中提取相关特征开始的。然后使用这些特征创建一个模型,对图像中的对象进行分类。利用深度学习工作流,自动提取图像中的相关特征。此外,深度学习执行“端到端学习”——给网络提供原始数据和要执行的任务,比如分类,然后它学习如何自动完成。

另一个关键的区别是深度学习算法是随数据缩放的,而浅层学习是收敛的。浅层学习是指当你向网络中添加更多的例子和训练数据时,机器学习方法在一定的性能水平上停滞不前。

深度学习网络的一个关键优势是,随着数据量的增加,它们通常会不断改进。

图3。比较机器学习方法对车辆分类(左)和深度学习(右)。

在机器学习中,你手动选择特征和分类器来对图像进行分类。通过深度学习,特征提取和建模步骤是自动的。

在机器学习和深度学习之间进行选择

机器学习提供了多种技术和模型,您可以根据您的应用程序、正在处理的数据的大小以及您要解决的问题的类型进行选择。一个成功的深度学习应用程序需要大量的数据(数以千计的图像)来训练模型,以及gpu或图形处理单元,以快速处理您的数据。

在选择机器学习还是深度学习时,要考虑你是否有一个高性能的GPU和大量的标记数据。如果你两者都没有,那么使用机器学习比深度学习更有意义。深度学习通常比较复杂,所以你至少需要几千张图片才能得到可靠的结果。拥有高性能的GPU意味着模型将花费更少的时间来分析所有这些图像。

如何创建和训练深度学习模型

人们使用深度学习执行对象分类的三种最常见的方法是:

从无到有的训练

要从头开始训练一个深度网络,您需要收集一个非常大的标记数据集,并设计一个能够学习特性和模型的网络架构。这对于新应用程序或具有大量输出类别的应用程序来说是很好的。这是一种不太常见的方法,因为有大量的数据和学习速度,这些网络通常需要几天或几周的时间来训练。

转移学习

大多数深度学习应用程序使用迁移学习方法,包括对预先训练好的模型进行微调的过程。从现有的网络(如AlexNet或GoogLeNet)开始,输入包含以前未知类的新数据。在对网络进行了一些调整之后,现在可以执行一个新任务,比如只对狗或猫进行分类,而不是对1000个不同的对象进行分类。这也有需要更少数据的优势(处理成千上万的图像,而不是数百万),因此计算时间下降到分钟或小时。

迁移学习需要一个与现有网络内部的接口,因此可以针对新任务对其进行外科修改和增强。MATLAB®有工具和功能设计来帮助你做转移学习。

特征提取

一个稍微不那么常见的,更专业的深度学习方法是使用网络作为一个工具特征提取器。由于所有层的任务是从图像中学习特定的特征,我们可以在训练过程中的任何时候从网络中提取这些特征。然后可以将这些特性用作a的输入机器学习模型金宝app支持向量机(SVM)

利用gpu加速深度学习模型

培养一个深度学习模式可能需要很长时间,从几天到几周不等。使用GPU加速可以显著加快进程。在GPU上使用MATLAB可以减少训练网络所需的时间,并且可以将图像分类问题的训练时间从几天减少到几个小时。在训练深度学习模型时,MATLAB使用gpu(如果有的话),而不需要您明白如何显式地编写gpu。

图4。深度学习工具箱命令训练自己的CNN从零开始或使用一个预先训练的模型转移学习。

深度学习的应用

预训练的深层神经网络模型可以通过执行转移学习或特征提取来快速地将深层学习应用到你的问题中。对于MATLAB用户,一些可用的模型包括AlexNet、VGG-16和VGG-19,以及使用ImportCacheNetwork导入的Caffe模型(例如,来自Caffe Model Zoo)。

使用AlexNet来识别对象与您的网络摄像头

使用MATLAB、一个简单的网络摄像头和一个深度神经网络来识别你周围的物体。

例如:使用深度学习的对象检测

除了对象识别深度学习也可以用于识别图像或视频中的特定对象目标检测目标检测表示在场景中识别和定位对象,它允许在图像中定位多个对象。

利用MATLAB进行深度学习

MATLAB使深入学习变得容易。借助管理大型数据集的工具和功能,MATLAB还提供了专门的工具箱,用于机器学习、神经网络、计算机视觉和自动驾驶。

只需要几行代码,MATLAB就可以让您在不成为专家的情况下进行深入学习。快速开始,创建和可视化模型,并将模型部署到服务器和嵌入式设备上。

团队使用MATLAB进行深度学习是成功的,因为它让你:

  1. 用几行代码创建和可视化模型。
  2. MATLAB允许您用最少的代码构建深度学习模型。使用MATLAB,您可以快速导入预训练的模型,并在调整训练参数时可视化和调试中间结果。

  3. 在不成为专家的情况下进行深度学习。
  4. 您可以使用MATLAB学习并获得深度学习领域的专业知识。我们大多数人都没有上过深度学习的课程。我们必须在工作中学习。MATLAB使这一领域的学习变得实用和容易。此外,MATLAB使领域专家能够进行深度学习,而不是将任务交给可能不了解您的行业或应用程序的数据科学家。

  5. 自动地标记图像和视频的地面真相。
  6. MATLAB使用户能够在图像中交互地标记对象,并且能够在视频中自动地标记地面真相,以便训练和测试深度学习模型。这种交互式和自动化的方法可以在更短的时间内获得更好的结果。

  7. 将深度学习整合到一个单一的工作流程中。
  8. MATLAB可以将多个域统一到一个工作流中。使用MATLAB,您可以在一个环境中进行思考和编程。它提供了用于深度学习的工具和功能,还提供了一系列与深度学习算法相关的领域,如信号处理、计算机视觉和数据分析。

使用MATLAB,您可以将结果集成到现有的应用程序中。MATLAB自动将您的深度学习模型部署到企业系统、集群、云和嵌入式设备上。

查看更多深入学习功能并获得示例代码

相关产品:下载188bet金宝搏MATLAB,计算机视觉工具箱™,统计和机器学习工具箱™,深度学习工具箱™,自动驾驶工具箱™

学习更多关于深度学习的知识

在本次MATLAB技术讲座中探索深入学习的基础知识。你将了解为什么深度学习变得如此流行,并且你将经历三个概念:什么是深度学习,它如何在现实世界中使用,以及如何开始。
看看如何使用MATLAB,一个简单的网络摄像头,和一个深度神经网络来识别你周围的物体。这个演示使用了AlexNet,这是一个经过训练的深度卷积神经网络,它已经训练了超过一百万张图像。
使用深度学习网络学习语义分割的高级工作流。此外,了解如何图像标签应用程序可以加快您的工作流程地面真相标记在像素级。
使用MATLAB完成四种常见的深度学习任务。
使用MATLAB中的机器学习技术,根据图像的独特特征来识别场景。
本文通过一个简单的对象检测和识别示例,说明了使用MATLAB®进行深度学习是多么容易,即使没有高级计算机视觉算法或神经网络的广泛知识。

相关主题