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