什么是卷积神经网络?
你需要知道三件事
使用cnn进行深度学习很受欢迎,原因有三个:
- CNN消除了人工特征提取的需要——这些特征是由CNN直接学习的。
- cnn能产生高度精确的识别结果。
- cnn可以为新的识别任务重新训练,使您能够在已有的网络上进行构建。
cnn为揭示和学习图像和时间序列数据中的关键特征提供了一种最佳架构。cnn在以下应用中是一项关键技术:
- 医学成像cnn可以检查数千份病理报告,以直观地检测图像中癌细胞的存在或不存在。
- 音频处理:关键字检测可以在任何带麦克风的设备上使用,当某个单词或短语被说出来时,可以检测出来(“嘿,Siri!”)。无论在什么环境下,cnn都能准确地学习和检测关键字,而忽略所有其他短语。
- 停车标志检测:自动驾驶依靠cnn来准确检测标识或其他物体的存在,并根据输出做出决定。
- 合成数据生成:使用生成对抗网络(GANs),新图像可用于深度学习应用,包括人脸识别和自动驾驶。
了解更多
卷积神经网络可以有几十或几百个层,每个层学习检测图像的不同特征。对不同分辨率的训练图像进行滤波处理,将卷积图像的输出作为下一层的输入。过滤器可以从非常简单的特征开始,如亮度和边缘,然后增加复杂性,以唯一定义对象的特征。
特征学习,分层和分类
像其他神经网络一样,CNN由输入层、输出层和中间的许多隐藏层组成。
这些层执行修改数据的操作,目的是学习特定于数据的特征。最常见的三个层是:卷积、激活或ReLU和池。
- 卷积将输入图像通过一组卷积滤波器,每个卷积滤波器激活图像中的某些特征。
- 整流线性单元(ReLU)通过将负值映射为零并保持正值,允许更快、更有效的训练。这有时被称为激活,因为只有激活的特征被带入下一层。
- 池通过执行非线性下采样简化输出,减少网络需要学习的参数数量。
这些操作在数十或数百层中重复,每层学习识别不同的特征。
共同的权重和偏见
像一个传统神经网络, CNN拥有具有权重和偏差的神经元。模型在训练过程中学习这些值,并在每个新的训练示例中不断更新它们。然而,在cnn的情况下,对于给定层中的所有隐藏神经元,权值和偏差值是相同的。
这意味着所有隐藏的神经元都在图像的不同区域检测相同的特征,如边缘或斑点。这使得网络能够容忍图像中物体的平移。例如,一个经过训练的识别汽车的网络将能够识别图像中任何位置的汽车。
分类层
在学习了许多层的特征之后,CNN的体系结构转向分类。
倒数第二层是一个完全连接的层,它输出一个K维向量,其中K是网络能够预测的类的数量。这个向量包含任何被分类图像的每一类的概率。
CNN体系结构的最后一层使用一个分类层(如softmax)来提供分类输出。
您还可以直接在应用程序中训练网络,并使用准确性、损失和验证指标图来监控训练。
使用预训练模型进行迁移学习
对预训练的网络进行微调转移学习通常比从零开始训练更快更容易。它需要最少的数据和计算资源。迁移学习是利用一类问题的知识来解决类似的问题。你从一个预先训练好的网络开始,用它来学习一项新任务。迁移学习的一个优点是,预先训练的网络已经学习了一组丰富的特征。这些特性可以广泛应用于其他类似的任务。例如,您可以使用数百万张图像训练网络,然后只使用数百张图像对其进行重新训练,以进行新的对象分类。
硬件加速与gpu
卷积神经网络在数百、数千甚至数百万张图像上进行训练。当处理大量数据和复杂的网络架构时,gpu可以显著加快训练模型的处理时间。
了解更多
应用程序使用有线电视新闻网
对象检测
目标检测是对图像和视频中的目标进行定位和分类的过程。计算机视觉工具箱™提供训练框架,使用YOLO和Faster R-CNN创建基于深度学习的对象检测器。
关键字检测
语音到文本的一个示例应用程序是关键字检测,它识别某些关键字或短语,并可以将它们用作指令。常见的例子是唤醒设备和打开灯。
语义分割
在语义分割中使用了cnn,用对应的类标签来识别图像中的每个像素。语义分割可用于自动驾驶、工业检验、地形分类和医疗成像等应用。卷积神经网络是构建语义分割网络的基础。
MATLAB为所有的深度学习提供了工具和功能。使用cnn来增强信号处理、计算机视觉或通信和雷达方面的工作流程。