卷积神经网络或CNN,是深度学习的网络架构。它直接从图像中学到。CNN由几个图层组成,该层处理和转换输入以产生输出。
您可以训练CNN来完成图像分析任务,包括场景分类、目标检测和分割以及图像处理。为了理解cnn是如何工作的,我们将介绍三个关键概念:局部接受域、共享权重和偏见、激活和汇聚。
最后,我们将简要讨论培训用于图像分析的三种方法。
所以让我们从本地接受领域的概念开始。在典型的神经网络中,输入层中的每个神经元连接到隐藏层中的神经元。然而,在CNN中,只有一个小区域的输入层神经元连接到隐藏层中的神经元。这些区域被称为局部接受领域。
局部接收字段在图像上翻译,以从输入层创建特征映射到隐藏的层神经元。您可以使用卷积有效地实现此过程。这就是为什么它被称为卷积神经网络。我们将讨论的第二个概念是关于共享权重和偏见。
与典型的神经网络一样,CNN具有重量和偏差的神经元。该模型在培训过程中学习这些值,并且它将其与每个新培训示例连续更新。然而,在CNNS的情况下,对给定层中的所有隐藏神经元的权重和偏置值是相同的。
这意味着所有隐藏的神经元在图像的不同区域中检测到相同的特征,例如边缘或斑点。这使得网络容忍图像中对象的翻译。例如,训练识别猫的网络将能够在猫在图像中进行。
我们的第三个也是最后一个概念是激活和汇集。激活步骤使用激活函数对每个神经元的输出进行变换。整流线性单元(ReLU)是一种常用的激活函数。它获取一个神经元的输出并将其映射到最大值。
或者如果输出是负的,函数将其映射为0。您可以通过应用池步骤进一步转换激活步骤的输出。池化通过将小区域神经元的输出压缩为单个输出来降低特征图的维数。这有助于简化以下层,并减少模型需要学习的参数数量。
现在让我们一起把它拉起来。使用这三个概念,我们可以配置CNN的层。一个CNN可以有数十或数百个隐藏层,每个层都学习检测图像中的不同特征。在这个feature map中,我们可以看到每一个hidden layer都会增加学习到的图像feature的复杂度。
例如,第一个隐藏层学习如何检测边缘,最后一个学习如何检测更复杂的形状。就像在一个典型的神经网络中,最后一层连接每个神经元,从最后一层隐藏神经元到输出神经元。这将产生最终输出。使用cnn进行图像分析有三种方法。
第一种方法是从头开始训练CNN。这种方法是高度精确的,尽管它也是最具挑战性的,因为您可能需要数十万标记的图像和大量的计算资源。
第二种方法依赖于迁移学习,它基于的思想是,你可以用一种问题的知识来解决一个类似的问题。例如,您可以使用一个CNN模型,它已经被训练识别动物,以初始化和训练一个新模型,以区分汽车和卡车。
这种方法比第一种方法需要更少的数据和计算资源。对于第三种方法,您可以使用预先训练的CNN来提取特征,以训练机器学习模型。例如,一个已经学会如何检测图像边缘的隐藏层与来自许多不同领域的图像广泛相关。这种方法需要的数据量和计算资源最少。
我希望这个视频对你有用。欲了解更多信息,请访问MathWorks.com/deep-learning。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。