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