卷积神经网络(cnn 或 convnet)是一种直接从数据中学习的深度学习网络架构。
cnn 特别适合在图像中寻找模式以识别对象、类和类别。它们也能很好地对音频、时间序列和信号数据进行分类。
cnn 的工作原理
一个卷积神经网络可以有数十层乃至数百层,每层都学习检测图像的不同特征。将不同分辨率的滤波器应用于每个训练图像,每个卷积后图像的输出会成为下一层的输入。滤波器可以从非常简单的特征开始,例如亮度和边缘,然后越来越复杂,直到可以唯一定义目标的特征为止。
通过示例快速入门
特征学习、层和分类
cnn 由一个输入层、一个输出层和中间的多个隐藏层组成。
这些层会执行运算以更改数据,目的是学习特定于数据的特征。卷积层、激活层(即 relu 层)和池化层是三种最常见的层。
- 卷积层将一组卷积滤波器应用于输入图像,每个滤波器激活图像中的特定特征。
- 修正线性单元 (relu) 层将负值映射到零,同时保持正值不变,让训练更快、更高效。该层有时也称为激活层,因为只有激活的特征才会传递给下一层。
- 池化层执行非线性下采样,减少网络需要学习的参数个数,从而简化输出。
这些操作在数十层或数百层上反复进行,每一层都学习识别不同的特征。
共享权重和偏置
与传统神经网络不同的是,cnn 具有共享的权重和偏置值。这些值对于给定层中的所有隐藏神经元均相同。
这意味着所有隐藏神经元会在图像的不同区域检测相同的特征,例如边缘或斑点。因此,网络容许图像中的目标有一定的平移。例如,对于一个汽车识别网络,无论汽车出现在图像何处,网络都能进行识别。
分类层
通过多个层学习特征后,cnn 的架构转向分类。
倒数第二层是一个全连接层,它输出一个 k 维向量(其中 k 是网络能够预测的类的数量),并包含图像被分到各个类的概率。
cnn 架构的最后一层使用分类层来提供最终分类输出。
cnn 为何重要
cnn 架构非常适合用来揭示和学习图像和时间序列数据中的关键特征。cnn 是以下应用中的关键技术:
医学成像:cnn 可以检查成千上万份病理报告,以视觉方法检测图像中是否存在癌细胞。
音频处理:只要设备带有麦克风,就可以进行关键字检测,检测到用户说出的特定字词(如“嘿 siri”)。cnn 可以在各种环境下准确地学习和检测关键字,同时忽略所有其他字词。
目标检测:自动驾驶依靠 cnn 来准确检测标志或其他目标的存在,并根据输出作出决策。
合成数据生成:使用生成对抗网络 (gan) 可以生成新图像,用于深度学习应用,包括人脸识别和自动驾驶。
何时使用 cnn?
当您有大量复杂数据(例如图像数据)时,可以考虑使用 cnn。您还可以使用 cnn 处理针对网络结构预处理过的信号或时间序列数据。
请参见以下使用 cnn 处理信号的示例:
考虑使用预训练模型
使用 cnn 时,工程师和科学家们更喜欢从一个预训练的模型开始,使用新数据集来让该模型学习和识别其中的特征。
您可以使用 googlenet、alexnet 和 inception 等模型作为起点,利用专家构建的、经过验证的架构来探索深度学习。
新深度学习模型和示例
查看所有可用模型列表,并按类别探索新模型。
用 matlab 实现 cnn
借助 matlab® 和 deep learning toolbox™,您能够设计、训练和部署 cnn。
设计和训练网络
使用深度网络设计器,您可以导入预训练模型或从头构建新模型。
您还可以直接在该 app 中训练网络,并使用准确度、损失和验证指标图来监控训练。
使用预训练模型进行迁移学习
通常来说,使用迁移学习对预训练网络进行微调比从头开始训练更快、更轻松。它只需要很少的数据和计算资源。迁移学习使用某一类问题的相关知识来解决与之类似的问题。该方法以一个预训练网络作为起点,利用它学习新任务。迁移学习的优点是预训练网络已学习了一系列丰富的特征。例如,以一个基于数百万个图像训练过的网络为起点,只需再用几百个图像重新训练,网络就能对新目标进行分类。
使用 gpu 进行硬件加速
卷积神经网络是基于数百、数千甚至数百万个图像进行训练的。在对大量数据和复杂网络架构进行处理时,gpu 可以显著缩短训练模型所需的处理时间。
相关主题
matlab 快速入门
matlab 实现深度学习
了解 matlab 针对深度学习提供的支持。
教程和示例
matlab 机器学习快速入门。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 mathworks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- (español)
- (english)
- (english)
欧洲
- (english)
- (english)
- (deutsch)
- (español)
- (english)
- (français)
- (english)
- (italiano)
- (english)
- (english)
- (english)
- (deutsch)
- (english)
- (english)
- switzerland
- (english)
亚太
- (english)
- (english)
- (english)
- 中国
- (日本語)
- (한국어)