14.卷积神经网络中的不变性


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1.问题介绍

最近看的2015年前后的几篇语义分割网络中反复提到了一个点,深度卷积神经网络的内置不变性。

2014年11月发表的Fully Convolutional Networks for Semantic Segmentation中作者提到了卷积神经网络具有的平移不变性:

在这里插入图片描述

2014年12月发表的DeepLabV1中,作者指出,深度卷积神经网络(Deep Convolution Nearal Network,DCNN)之所以在图像分类/目标检测上取得非常好的结果,正是由于DCNN具有的不变性,层级越深,其所学习到的特征越抽象,因此其表征能力更强。

在这里插入图片描述

在上面这两篇文章中强调了DCNN具有的不变性,那么什么是DCNN的不变性呢?

2.DCNN的Invariance

DCNN的不变性,Invariance是指当输入发生某些变化时,DCNN模型的输出可以保持不变,一般情况下都会希望模型具有输入不变性,使得输入的图像发生某些变化时,如平移,旋转,视角等变化时,模型仍然能够识别出图像中的对象。

在这里插入图片描述

注意区分不变性Invariance和等变性Equivariance。对于DCNN的不变性是指即便对象在图像中的位置,尺度发生变化,仍然能正确识别出对象的类别。DCNN的等变性是指当输入发生变化时,输出也会产生相映的变化,如人脸检测的热力图,当人脸在输入图像上从一个位置平移到另一个位置时,输出的热力图上的人脸也会相映移动。

3.后记

可以理解卷积神经网络通过使用深层的卷积网络和池化层可增大感受野,使模型具备一定的平移不变性,有文章专门研究图像表征的等变性,不变性和等效果性。

2014年11月发表的论文Understanding image representations by measuring their equivariance and equivalence专门研究了这个问题。

2015年06月发表的Spatial Transformer Networks提出了一种可增强模型平移旋转缩放等空间不变形的模块,文章分析了DCNN的不变性能力有限,缺少对输入数据进行高效空间变换的能力。Spatial Transformer空间变换器,可以在网络中对数据进行显式的平移(translation)/尺度缩放(scale)/旋转(rotation)等空间变换,使得训练得到的模型具有空间不变性。而且,Spatial Transformer是一个可微模块,不需要额外的监督训练,不需要改动传统的优化过程,可直接应用到卷积神经网络中。

2017年03月发表的Deformable Convolutional Networks提出了可变形卷积,能够学习对象的形变特征。具体介绍可以参考9.Deformable CNN

从以上可以看出来,关于DCNN不变性的讨论由来已久,相关的研究也在不断的更新。


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


参考资料

### 卷积神经网络CNN)的主要特点和特性 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的重要代表模型之一。其设计使其特别适用于图像处理任务,并在计算机视觉领域展现出强大的性能[^1]。 #### 局部感受野(Local Receptive Fields) CNN 的每一层神经元只与输入数据的一个局部区域进行连接,这种机制被称为局部感受野。这种设计模仿了生物视觉皮层的工作方式,使得网络能够提取局部特征,如边缘、角点等低级特征,并逐层组合成更复杂的模式。相比全连接网络,局部连接显著减少了参数数量,提高了训练效率[^3]。 #### 权值共享(Weight Sharing) 在同一卷积层中,CNN 使用相同的卷积核(滤波器)对整个输入进行滑动扫描。这意味着所有局部区域共享同一组权重参数,进一步降低了模型复杂度并增强了平移不变性(shift-invariance)。这一特性使得 CNN 能够识别图像中任意位置出现的相同特征,而不受其具体位置影响[^2]。 #### 池化操作(Pooling) 池化层通常紧接在卷积层之后,用于降低特征图的空间维度(宽度和高度),从而减少后续层的计算量和参数数量。常见的池化方法包括最大池化(Max Pooling)和平均池化(Average Pooling)。通过池化操作,CNN 增强了对输入图像的尺度变化和小范围位移的鲁棒性[^4]。 #### 层次化特征提取 CNN 通过堆叠多个卷积层和池化层,逐步从原始像素中提取出层次化的特征表示。浅层网络通常提取边缘、颜色等低级特征,中间层则捕捉纹理、形状等中级特征,深层网络最终形成对象的整体语义信息。这种由局部到全局、由简单到复杂的特征构建方式,使 CNN 在图像分类、目标检测等任务中表现出色[^4]。 #### 自动特征学习能力 不同于传统图像处理方法需要人工设计特征,CNN 具备表征学习能力,能够在训练过程中自动提取适合当前任务的特征表达。这种端到端的学习方式大大提升了模型的泛化能力和适应性。 ```python import torch import torch.nn as nn # 定义一个简单的 CNN 网络 class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3) self.pool = nn.MaxPool2d(kernel_size=2, stride=2) self.conv2 = nn.Conv2d(in_channels=16, out_channels=32, kernel_size=3) self.fc = nn.Linear(32 * 5 * 5, 10) def forward(self, x): x = self.pool(torch.relu(self.conv1(x))) x = self.pool(torch.relu(self.conv2(x))) x = x.view(-1, 32 * 5 * 5) x = self.fc(x) return x ``` 上述代码定义了一个简单的 CNN 结构,展示了卷积层、激活函数和池化层的基本使用。通过这样的结构,网络可以自动提取图像中的多级特征表示。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值