深度学习

通过 MATLAB 完成深度学习

深度学习是机器学习的一个分支,其使用多个非线性的处理层直接从数据中学习有用的特征表现形式。深度学习模型可以在对象分类时达到高水平的精确度,有时甚至超出人类的表现。该模型通过使用大量的带标签数据以及包含许多层的神经网络架构得到训练。

深度学习可以用来解决各种问题,包括:

  • 图像分类
  • 语音识别
  • 自然语言处理

训练深度学习模型

深度学习模型的准确性主要取决于用于训练该模型的数据量。最准确的模型可能需要使用几千个甚至几百万个样本,因此训练这种模型需要花很长的时间。深度学习模型训练好以后,便可用于实时应用,例如用于高级驾驶辅助系统 (ADAS) 中进行行人侦测。

使用卷积神经网络进行图像分类

卷积神经网络 (CNN) 是目前比较热门的一种深度学习架构。神经网络由不同的层构造而成,包含一系列互连的节点。CNN 对学习到的特征和输入数据进行卷积运算,并使用二维卷积层,使此架构非常适合用来处理二维数据(如图像)。

通过 CNN 的数据处理流程经过训练后可以执行图像分类任务。滤波器会应用到不同分辨率的各个训练图像,且每个卷积图像的输出会用作下一层的输入。滤波器可以从非常简单的特征提取开始,例如亮度和边缘,然后随着层的推进移至更复杂的形状。

迁移学习

训练 CNN 需要相当大量的数据,因为对于典型的图像分类问题,其需要学习几百万个权值。从头开始训练 CNN 的另一个常见做法是使用预先训练好的模型自动从新的数据集提取特征。这种方法称为迁移学习,是一种应用深度学习的便捷方式,其无需庞大的数据集以及长时间的训练。

从头创建 CNN 与使用预先训练的模型之复杂性和准确性之比较。

使用 GPU 进行硬件加速

训练深度学习模型可能会花费很长的时间,可能是几天,也可能是几周。使用 GPU 加速可以显著提升处理速度。使用 GPU 可以减少训练网络所需的时间,并且可以将图像分类问题所需的训练时间从几天缩短到几个小时。

Neural Network Toolbox 决定是从头训练您自己的 CNN 还是使用预先训练好的模型进行迁移学习。

有关如何训练和使用深度学习模型的更多信息,请参阅 MATLAB®Computer Vision System Toolbox™Statistics and Machine Learning Toolbox™Neural Network Toolbox™


示例和方式


软件参考

See also: 机器学习, 对象检测, 对象识别, 特征提取, 图像识别, 模式识别