卷积神经网络(CNN 或 ConvNet)是一种直接从数据中学习的深度学习网络架构。
CNN 特别适合在图像中寻找模式以识别对象、类和类别。它们也能很好地对音频、时间序列和信号数据进行分类。
通过示例快速入门
特征学习、层和分类
CNN 由一个输入层、一个输出层和中间的多个隐藏层组成。
这些层会执行运算以更改数据,目的是学习特定于数据的特征。卷积层、激活层(即 ReLU 层)和池化层是三种最常见的层。
- 卷积层将一组卷积滤波器应用于输入图像,每个滤波器激活图像中的特定特征。
- 修正线性单元 (ReLU) 层将负值映射到零,同时保持正值不变,让训练更快、更高效。该层有时也称为激活层,因为只有激活的特征才会传递给下一层。
- 池化层执行非线性下采样,减少网络需要学习的参数个数,从而简化输出。
这些操作在数十层或数百层上反复进行,每一层都学习识别不同的特征。
共享权重和偏置
与传统神经网络不同的是,CNN 具有共享的权重和偏置值。这些值对于给定层中的所有隐藏神经元均相同。
这意味着所有隐藏神经元会在图像的不同区域检测相同的特征,例如边缘或斑点。因此,网络容许图像中的目标有一定的平移。例如,对于一个汽车识别网络,无论汽车出现在图像何处,网络都能进行识别。
分类层
通过多个层学习特征后,CNN 的架构转向分类。
倒数第二层是一个全连接层,它输出一个 K 维向量(其中 K 是网络能够预测的类的数量),并包含图像被分到各个类的概率。
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 机器学习快速入门。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)