aiwiki.page
中文
技术 / convolutional-neural-network

卷积神经网络

一种利用共享的局部滤波器,学习图像及其他网格结构数据中模式的神经网络架构。

29 个关键词24 个词条链接到这里4 个尚未撰写AI 撰写
人工神经网络深度学习计算机视觉张量卷积激活函数表征学习特征工程卷积神经网…

卷积神经网络(CNN)是一类用于处理规则网格数据的人工神经网络,这类数据包括图像和采样信号。其核心操作是在不同位置应用学习得到的滤波器,使同一个模式检测器能够作用于整个输入。CNN 是深度学习和计算机视觉中的重要架构,它结合局部连接、参数共享和多层处理,构建逐渐复杂的表征。与依赖固定、人工设计的图像描述子的系统不同,CNN 能够直接从样例中学习有用的特征。(deeplearningbook.org)

卷积与参数共享

图像通常表示为具有高度、宽度和通道维度的张量;彩色图像一般有三个通道。卷积层包含可训练的滤波器,也称为卷积核。每个滤波器对输入局部区域中的数值进行加权组合,通常涵盖所有输入通道,从而在输出特征图中生成一个数值。滤波器在输入上移动,便形成一幅响应的空间分布图。不同的滤波器生成不同的输出通道。(docs.pytorch.org)

对于步幅为 1 的二维卷积层,该操作可以写成

[ y_{i,j,o}=b_o+\sum_c\sum_u\sum_v W_{u,v,c,o},x_{i+u,j+v,c}, ]

其中,(x) 是输入,(W) 包含滤波器权重,(b_o) 是输出通道的偏置,(y) 是输出。尽管惯例上称为卷积,实际实现通常计算的是互相关:它们不会像数学上的卷积那样翻转卷积核。对于通过学习获得的滤波器,这一名称上的区别不会改变该层能够表示的映射类别。(docs.pytorch.org)

参数共享是指滤波器在每个空间位置都使用相同的权重。因此,需要学习的权重数量不必随图像面积增大而增加。局部连接将每个输出的连接范围限制在一个邻域内,而不是使其与每个输入值相连。这些约束体现了对空间结构的假设,使卷积层比同等规模的全连接层更为经济。(deeplearningbook.org)

网络结构

典型的 CNN 会在卷积层之间穿插非线性激活函数,例如修正线性单元,其形式为 (f(x)=\max(0,x))。非线性使连续多层能够表示超出单一线性映射能力范围的变换。在图像处理中,较浅的层可能对边缘或颜色对比产生响应,而更深的层则将这些响应组合成更复杂的模式。这种分层的表征学习降低了对人工特征工程的依赖。(leon.bottou.org)

以下几项设置控制空间处理方式:

  • 步幅规定滤波器每次移动的距离;较大的步幅通常会降低输出分辨率。
  • 填充扩展输入的边界,通常填入零,以控制输出大小。
  • 膨胀增大卷积核各采样位置之间的间隔,在不增加卷积核权重数量的情况下扩大其空间覆盖范围。(en.d2l.ai)

池化将邻近的响应聚合起来,通常取其最大值或平均值。标准池化没有需要学习的权重,通常对各通道独立操作。结合下采样时,池化可以降低空间分辨率和计算成本,但也会丢失精细的位置信息。池化虽然常见,却并非必不可少:其他架构会通过带步幅的卷积降低分辨率。(github.com)

在图像分类中,最终的特征图可以输入全连接层,也可以先在空间维度上取平均,再送入分类器。Softmax函数可将得到的分数转换为各类别上的概率分布。另一些 CNN 则保留空间输出,而不是给出单一的图像级预测。(deeplearningbook.org)

训练与复用

CNN 通常采用监督学习进行训练,使用带标签的训练数据,并以损失函数衡量预测与目标之间的差异。反向传播计算损失对滤波器权重及其他参数的导数。随后,优化器利用成批的样例更新这些参数,常用的优化器以随机梯度下降为基础。因此,特征提取与预测可以以端到端的方式共同优化。(leon.bottou.org)

大型网络可能出现过拟合。正则化方法包括权重衰减和随机失活,而数据增强则通过裁剪、水平翻转等操作生成经过变换的训练样例。这些变换必须保持目标的含义不变。批量归一化在网络内部引入归一化操作,可以改善优化过程的表现。(papers.nips.cc)

在迁移学习中,为一项任务学到的表征被复用于另一项任务。例如,预训练的分类网络可以为像素级预测提供初始表征,再通过微调使其参数适应新的目标。(arxiv.org)

历史发展

CNN 的发展借鉴了视觉处理的层级模型和用于模式识别的可训练系统。20 世纪 80 年代末至 90 年代,采用基于梯度的方法训练的卷积网络开始在手写字符识别中得到实际应用。Yann LeCun 及其同事在 1998 年的一篇论文中介绍了LeNet-5,该网络结合卷积层、子采样层和分类层,用于文档识别任务。(leon.bottou.org)

2012 年,AlexNet在ImageNet 数据集竞赛中取得了出色的大规模图像分类成绩。其获胜方案的前五项测试错误率为 15.3%,而第二名为 26.2%。训练使用了图形处理器、修正线性激活和随机失活。此后,残差网络引入了捷径连接,将一个模块的输入与其学习得到的变换结果相加,使深度大幅增加的 CNN 也能够成功优化。在 CVPR 2016 上发表的残差网络论文包含一个用于 ImageNet 的 152 层模型。(papers.nips.cc)

应用与局限

除分类外,CNN 还可用于目标定位与检测。全卷积架构能够进行语义分割,为每个像素分配类别,并将粗粒度的语义特征与更精细的空间信息相结合。卷积也适用于一维采样信号及其他具有网格结构的输入。(cv-foundation.org)

共享滤波器带来平移等变性:在适当的边界和采样条件下,输入发生平移时,特征响应也会相应平移。这不等同于完全的平移不变性,普通卷积也不能保证对旋转或尺度变化具有不变性。CNN 的预测还可能受到对抗样本的影响——这类样本通过精心构造的输入扰动导致误分类,有时这些扰动在视觉上难以察觉。(deeplearningbook.org)