赞
踩
ResNet 声名鹊起的一个重要原因是它提出了残差学习的思想。一个残差学习模块包含多个卷积层,这些卷积层对这个残差学习模块的输入数据进行变化,同时原始输入信息跳过这些卷积层直接传导至后面的层中,最终将它们的整体作为输入,用激活函数激活,得到这个残差学习模块的输出结果。从本质上而言,ResNet 学习的就是输出结果和输入结果之间的差值,即残差,因此 ResNet 又称残差网络。
传统的卷积神经网络或者全连接网络,在信息传递时,或多或少会存在信息丢失、损耗等问题,同时还会导致梯度消失或梯度爆炸,使得很深的网络无法训练。ResNet 通过提出残差学习的思想,在一定程度上解决了这个问题。通过将输入信息“绕道”传导至输出,极大地保护了信息的完整性。整个网络只需要学习输入、输出和残差部分,简化了学习的目标和难度。
瓶颈结构指的是通道数的变化,即原通道数减少再增大。1×1 卷积有调整通道数的作用(或者说降低和升高特征维度的作用),实现通道数减少和增大。
假设输入 feature map 的维度为 256 维,要求输出维度也是 256 维。有以下两种操作:
- 左图:直接使用两个 3×3 的卷积核。单次卷积操作可描述为:256 维的输入直接经过一个 3×3×256 的卷积层,输出一个 256 维的 feature map,则单次卷积操作参数量为 256×3×3×256 = 589824 。进一步可知,左图两次卷积操作总的参数数目为 3×3×256×256×2 = 1179648。
- 右图:先经过 1×1 的卷积核,再经过 3×3 卷积核,最后经过一个 1×1 卷积核。 256 维的输入先经过一个 1×1×64 的卷积层,再经过一个 3×3×64 的卷积层,最后经过 1×1×256 的卷积层,其总参数量为 256×1×1×64 + 64×3×3×64 + 64×1×1×256 = 69632。
- 对比以上两种方式可知,后者的参数量远小于前者(前者约为后者的16.94倍)。Bottleneck 的核心思想还是利用多个小卷积核替代一个大卷积核,利用 1×1 卷积核替代大的卷积核的一部分工作。
作用
1×1 的 fliter 用于降低/升高特征维度。观察上右图可知,1×1 卷积操作并未改变 feature map 的尺寸,而是改变了通道数目。
目的
(1)减少参数的数量,从而减少计算量,且在降维之后可以更加有效、直观地进行数据的训练和特征提取;
(2)提高神经网络的深度,一般情况下深度可以体现网络性能。
1.深度学习入门 | 第六章:经典卷积神经网络:ResNet
2. 初试markdown-Bottleneck瓶颈型结构
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。