深度学习是机器学习,教计算机做什么顺其自然人类的一个分支:从经验中学习。机器学习算法使用的计算方法直接从数据“学习”的信息,而不依赖于预定方程模型。深度学习特别适合于图像识别,这是解决问题,如面部识别,运动检测,以及许多先进的驾驶辅助技术,如自动驾驶,车道检测,行人检测,并自主停车重要。
深度学习工具箱™提供简单的MATLAB®用于创建和深神经网络的各层互连命令。实例和预训练的网络可以很容易地使用MATLAB深学习,即使没有先进的计算机视觉算法或神经网络知识。
有关实际的深度学习方法的免费实践介绍,请参见深度学习斜坡弯道.
你想做什么? | 了解更多 |
---|---|
执行迁移学习,用你的数据微调网络 |
提示 对一个预先训练过的网络进行微调以学习一项新任务,通常比训练一个新网络更快、更容易。 |
用预先训练好的网络对图像进行分类 | 预先训练的深度神经网络 |
创建分类或回归新的深层神经网络 | |
调整大小、旋转或预处理图像以进行训练或预测 | 深度学习的图像预处理 |
标签您的图像数据自动基于文件夹名称,或交互式使用一个应用程序 | 图片标志(计算机视觉工具箱) |
为序列和时间序列数据创建深度学习网络。 | |
对图像的每个像素进行分类(例如,道路,汽车,行人) | 使用深度学习开始语义分割(计算机视觉工具箱) |
检测和识别图像中的目标 | 识别,目标检测,语义分割(计算机视觉工具箱) |
文本数据分类 | 使用深度学习对文本数据进行分类 |
分类音频数据用于语音识别 | 基于深度学习的语音指令识别 |
可视化网络学到了什么特征 | |
在CPU、GPU、多个GPU上进行培训,在你的桌面或云中的集群上并行进行培训,并处理内存中无法容纳的大数据集 |
要了解更多关于深度学习应用领域的信息,包括自动驾驶,请参见深度学习的应用.
要选择是使用预先训练的网络还是创建新的深度网络,请考虑表中的场景。
使用预先训练过的网络进行迁移学习 | 创建一个新的深网 | |
---|---|---|
训练数据 | 成百上千的标签图片(小) | 数千到数百万标记的图像 |
计算 | 中等计算(GPU可选) | 计算密集型(需要GPU速度) |
培训时间 | 秒到几分钟 | 几天到几周的时间来解决真正的问题 |
模型的准确性 | 很好,取决于预先训练的模型 | 高,但可以对过度拟合小数据集 |
有关更多信息,请参阅选择网络体系结构.
深度学习使用神经网络直接从数据学习的功能,用的表现。神经网络将多个非线性处理层,使用并行地操作和通过生物神经系统的启发简单元素。深度学习模型可以实现国家的最先进的准确性,对象分类,有时甚至超过人类水平的性能。
您可以使用一组包含许多层(通常包括一些卷积层)的大量标记数据和神经网络架构来训练模型。训练这些模型是计算密集型的,通常可以通过使用高性能GPU来加速训练。这张图展示了卷积神经网络是如何将自动从许多图像中学习特征来分类新图像的各个层结合起来的。
许多深度学习应用程序使用的图像文件,有时数以百万计的图像文件。要为深度学习有效地访问多个图像文件,MATLAB提供imageDatastore
函数。使用这个函数:
自动读取批量图像更快的机器学习和计算机视觉应用中处理
从太大而无法放入内存的图像集合中导入数据
根据文件夹名称自动标签图像数据
这个例子说明了如何使用深度学习,以确定只使用10的MATLAB代码行对现场摄像头的对象。尝试的例子,看看它是多么简单上手与MATLAB深度学习。
运行这些命令得到,如果需要的下载,连接到网络摄像头,并获得预训练神经网络。
相机=摄像头;%连接到相机净= alexnet;%加载神经网络
如果您需要安装摄像头
和alexnet
附加组件时,会出现来自每个功能的消息,并带有一个链接,帮助您使用附加组件浏览器下载免费附加组件。另外,看到深度学习工具箱模型对于AlexNet网络和马铃薯金宝appUSB摄像头支持包.
安装深度学习工具箱模型后对于AlexNet网络,您可以使用它对图像进行分类。AlexNet是一个预先训练过的卷积神经网络(CNN),已经在100多万张图像上训练过,可以将图像分类为1000个对象类别(例如,键盘、鼠标、咖啡杯、铅笔和许多动物)。
运行以下代码来显示和分类实时图像。把网络摄像头对准一个物体,神经网络就会报告它认为摄像头显示的是什么类别的物体。它会一直分类图像,直到你按下Ctrl+C.代码调整网络使用的图像的大小imresize
.
而真IM =快照(照相机);%拍照图像(im);%显示图片Im = imresize(Im,[227227]);%调整图片的alexnet标记=分类(净,IM);%分类图片标题(炭(标签));显示类标签的DrawNow结束
在本例中,网络正确地对咖啡杯进行了分类。用你周围的物体做实验,看看这个网络有多精确。
要观看这个示例的视频,请参见深学习的Matlab代码的11条线路.
要了解如何扩展这个例子,并显示类的概率得分,见使用深度学习分类摄像头图像.
对于深度学习接下来的步骤,您可以使用其他任务预训练网络。解决与转让的学习或者特征提取图像数据的新的分类问题。举例来说,看到使用迁移学习更快地开始深度学习和使用从预训练网络中提取的特征训练分类器.尝试其他预先训练过的网络预先训练的深度神经网络.
迁移学习在深学习应用中常用的。你可以采取预训练网络,并以此为起点,学习新的任务。微调与迁移学习网络是不是从头开始培训更快,更容易。您可以快速使网络学习使用训练图像的数少的新任务。迁移学习的优点是预训练的网络已经学到了丰富的可应用于范围广泛的其他类似任务的功能。
例如,如果你对一个网络进行了数千或数百万张图像的训练,你可以仅使用数百张图像对它进行重新训练,以进行新的目标检测。您可以使用比原始训练数据更小的数据集有效地调整预训练网络。如果你有一个非常大的数据集,那么迁移学习可能不会比训练一个新的网络更快。
迁移学习使您:
将预先训练的网络的学习特征转移到一个新问题上
迁移学习比训练一个新的网络更快更容易
减少训练时间和数据集大小
进行深度学习,而不需要学习如何创建一个全新的网络
有关交互式示例,请参见迁移学习深层网络设计者.
有关编程示例,请参见火车深学习网络分类新形象.
特征提取允许您使用预训练网络的力量,无需投入时间和精力投入到训练。特征提取可以使用深度学习的最快方式。您提取了解到特征从预训练网络,并使用这些功能来训练一个分类,例如,支持向量机(SVM - 需要统计和机器学习工具箱™)。金宝app例如,如果一个SVM使用训练alexnet
在您的训练和验证集上可以达到>90%的准确性,那么使用迁移学习进行微调可能不值得付出努力来获得一些额外的准确性。如果您在一个小数据集上执行微调,那么您也有过拟合的风险。如果SVM不能为您的应用程序实现足够好的精度,那么进行微调是值得的,以寻求更高的精度。
例如,请参见利用预训练网络提取图像特征.
神经网络是本质为并行的算法。您可以通过使用并行计算工具箱™分布跨越多核CPU,图形处理单元(GPU),并与多个CPU和GPU的计算机集群培训采取这种并行的优势。
训练深度网络的计算非常密集,通常可以通过使用高性能GPU来加速训练。如果你没有合适的GPU,你可以在一个或多个CPU核上训练。您可以在单个GPU或CPU上训练卷积神经网络,也可以在多个GPU或CPU核上训练卷积神经网络,也可以在集群上并行训练卷积神经网络。使用GPU或并行选项需要并行计算工具箱。
您不需要多台计算机来解决使用过大而无法装入内存的数据集的问题。你可以使用imageDatastore
功能来处理批数据,而不需要一组机器。但是,如果您有一个可用的集群,那么将您的代码带到数据存储库而不是移动大量的数据可能会很有帮助。
要了解更多关于大型数据集的深度学习,请参见利用大数据进行深度学习.