ResNet那些不解之谜

摘要

残差网络更容易优化,并且可以从显著增加的深度中获得准确性。在ImageNet数据集上,我们对剩余的网进行评估,其深度为152层,比VGG网41层更深,但仍可以保证有较低的复杂度。

 

解决问题:

1)网络深度加深,会产生梯度消失和爆炸。利用规范化的初始化和Batch Normalization解决,使得具有数十层的网络通过随机梯度下降(SGD)方法可以开始收敛。

2)会产生网络退化的现象,不是由于过拟合导致,训练误差也会越大。

 

ResNet到底在解决一个什么问题!

ResNet学习的是残差函数F(x) = H(x) – x。这个感觉和梯度提升树很像,学习的是差值。

其实当batch normalization出现之后,梯度消失和爆炸的问题已经基本上被解决了,但是网络层数加深之后还是会出现效果差的情况,其实ResNet主要解决的是网络的退化问题,关于网络的退化,有以下几种解释感觉说的过去。

 

第一种解释:当网络越深的时候,反传回来的梯度相关性越来越差,最后接近白噪声。我们认为,图像具有局部相关性,因此梯度应该也具有类似的相关性,这样的更新才有意义,如果接近白噪声,那其实就可以认为做随机扰动。自然效果就越来越差了。

 

第二种解释:引入残差之后对参数的变化更加的敏感。原本的网络只是学习一个从输入到输出的映射,现在学习的是输入和输出之间的差值。

普通的映射 F(x)= H(x)

H(5)= 5.1 和 H(5)= 5.2 ,这里的变化只有2%。

残差之后的映射  H(x)=  F(x)+ x;

 F(x) =  H(x)- x;

F(5)= 0.1 和 F(5)= 0.2;这里的变化有100%,这种变化是很大的。

第三种解释:(也是原文中的解释)现在我们要训练一个深层的网络,它可能过深,假设存在一个性能最强的完美网络N,与它相比我们的网络中必定有一些层是多余的,那么这些多余的层的训练目标是恒等变换,只有达到这个目标我们的网络性能才能跟N一样。

对于这些需要实现恒等变换的多余的层,要拟合的目标就成了H(x)=x,在传统网络中,网络的输出目标是F(x)=x,这比较困难,而在残差网络中,拟合的目标成了x-x=0,网络的输出目标为F(x)=0,这比前者要容易得多。

 

原文中的解释:

In thispaper, we address the degradationproblem(退化问题) by introducing a deep residuallearning framework. Instead of hoping each few stacked layers directly fit a desiredunderlying mapping, we explicitly let these layers fit a residual mapping.Formally, denoting the desired underlying mapping as H(x)(我们需要学习的映射), we let the stackednonlinear layers(堆叠的分线性层)fit another mapping of  F(x) := H(x)− x. The original mapping isrecast into F(x) + x. We hypothesize that it is easier to optimize the residual mapping than tooptimize the original, unreferenced mapping. To the extreme, if an identity mapping were optimal(恒等映射是最优的), it would be easier to push theresidual to zero than to fit an identity mapping by a stack of nonlinearlayers.

 

第四种解释:也是我自己一直以来理解的一种,就是类似LSTM的思想,加入一个carry gate,让数据能够传到后面去,不至于由于网络越来越深,到了后面学习不到有效的特征了。所以加入一个shortcut,让数据一直往下传,让每一层都能读到有效的特征。

 

ResNet正向传播的两种结构!

1)输入输出维度相同,可以直接相加。

2)特征图维度输出是输入的1/2,特征图通道数输出是输入的两倍。

a、 直接用0来做pading,效果可能不是太好,0填充的维度确实没有残差学习

b、加入一个1*1的卷积Ws, 让Ws和输入做stride=2卷积操作。其实相当于让feature map降2倍分辨率,同时1*1的卷积还可以将通道数映射为需要的大小,使得最后的结果能够直接相加。(反正就是通过一个1*1的卷积,使得两条路的结果保持一致,最后能够加在一起)(作者最后选用的是b

c、所有都采用投影。

分析得到虽然c的效果最好,但为了减少内存/时间复杂度和模型大小,不使用c。

ResNet减少参数的数量!


左边两个3x3x256的卷积,参数数目:3x3x256x256x2 = 1179648。(这里感觉左边的图应该画256-d的,这样两边才是等价的)。 

右边:第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,整体上用的参数数目:1x1x256x64 + 3x3x64x64 +1x1x64x256 = 69632。

 

差了16.94倍。

Resnet为什么要用x而不用 x/2!

第一种解释:

第二种解释:

 



<think>好的,用户想了解除了ResNet18之外还有哪些常见的CNN架构或变体。首先,我需要回忆一下常见的CNN模型,然后结合提供的引用内容,特别是引用中提到的ResNeXt和DPN,还有像VGG、GoogLeNet、DenseNet这些经典模型。 首先,ResNet18本身是ResNet系列的一个较浅版本,所以应该先介绍ResNet系列的其他深度版本,比如ResNet-34、ResNet-50、ResNet-152,这在引用1里提到了。然后,根据引用2,ResNeXt是ResNet的一个变体,使用基数(cardinality)的概念,也就是分组卷积,来提升性能。引用3提到DPN结合了ResNet和DenseNet的特点,这也是一个重要的变体。 接下来,用户可能需要了解其他基础架构,比如LeNet-5,这是最早的CNN之一,用于手写数字识别。然后VGG网络,特别是VGG16和VGG19,以其重复的3x3卷积块闻名。GoogLeNet的Inception模块也应该提到,因为引用1里提到ResNet主体架构类似GoogLeNet,但更简单。 另外,DenseNet应该被包含进来,因为引用3中提到了它与ResNet的关系。DenseNet通过密集连接促进特征重用,可能是一个对比点。MobileNet和ShuffleNet专注于轻量化,适用于移动设备,这也是用户可能关心的应用场景。 需要确保回答的结构清晰,分点列出每个模型,并简要说明其特点,同时引用相关的引用内容。比如在ResNeXt和DPN部分,直接引用提供的引用2和3。同时,用户问题中提到的“其他CNN架构或变体”需要覆盖经典和现代的模型,以及变体。 可能还要注意是否需要区分变体和不同家族的模型。比如ResNet的变体包括ResNeXt、DPN,而其他如VGG、Inception属于不同的架构。此外,像EfficientNet这种通过复合缩放提升效率的模型,虽然不在引用中,但属于常见架构,应该包含进去。 最后,确保使用正确的中文表达,避免术语错误,并且按照用户的要求,生成相关问题。问题应该围绕这些模型的比较、特点、应用场景等方面,帮助用户进一步探索。</think>### 常见CNN架构及变体 除了ResNet18之外,以下是一些重要的卷积神经网络架构及其变体,按照发展脉络和技术特点分类说明: --- #### 1. **经典基础架构** - **LeNet-5** 最早的CNN之一,用于手写数字识别,包含卷积层、池化层和全连接层,为后续模型奠定基础。 - **AlexNet** 2012年ImageNet竞赛冠军,首次使用ReLU激活函数和Dropout,证明深度网络的有效性。 - **VGGNet** 通过堆叠个$3×3$卷积核替代大尺寸卷积核(如$5×5$或$7×7$),形成统一的模块化设计,典型代表为VGG16和VGG19[^1]。 --- #### 2. **路径与模块化设计** - **GoogLeNet(Inception系列)** 提出Inception模块,通过并行不同尺寸的卷积核(如$1×1$、$3×3$、$5×5$)融合尺度特征,并利用$1×1$卷积降维。 - **ResNet(残差网络)** 引入残差连接(Residual Connection)解决梯度消失问题,ResNet-18/34/50/152等不同深度版本广泛应用。其变体**ResNeXt**通过“基数”(Cardinality)概念增加并行分支数量,提升特征表达能力[^2]。 --- #### 3. **轻量化与高效架构** - **MobileNet** 使用深度可分离卷积(Depthwise Separable Convolution)大幅减计算量,适合移动端部署。 - **ShuffleNet** 结合通道混洗(Channel Shuffle)和分组卷积,进一步优化计算效率。 - **EfficientNet** 通过复合缩放(Compound Scaling)统一调整网络深度、宽度和分辨率,实现精度与效率的平衡。 --- #### 4. **密集连接与混合架构** - **DenseNet** 每层与后续所有层直接连接,促进特征复用,缓解梯度消失问题。 - **Dual Path Network(DPN)** 结合ResNet的残差学习和DenseNet的特征复用,通过双路径结构提升性能[^3]。 --- #### 5. **注意力机制增强** - **SENet** 引入通道注意力机制(Squeeze-and-Excitation模块),动态调整通道权重。 - **Transformer-based CNN** 如Vision Transformer(ViT)和Swin Transformer,将自注意力机制引入图像领域。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值