学习视频: 6.1 ResNet网络结构,BN以及迁移学习详解_哔哩哔哩_bilibili6.2 使用pytorch搭建ResNet并基于迁移学习训练_哔哩哔哩_bilibili

1.ResNet

论文全名:Deep Residual Learning for Image Recognition

简单的堆叠卷积层和池化层,会出现梯度消失或梯度爆炸问题。而且,随着层数加深,模型的性能反而变差了,论文中称之为退化问题(degradation problem),论文中提出残差结构解决退化问题。

网络亮点:

1. 可达到超深的网络结构(突破1000层)

2. 提出residual模块 

3. 使用Batch Normalization加速训练(丢弃dropout)

图1:两种残差结构,左图用于ResNet-34,右图用于ResNet-50/101/152,该图来自论文

注意:1. 主分支与 shortcut (论文中这么称呼的) 的输出特征矩阵的 shape 必须相同,才能进行相加。2. 右图中的 1x1 的卷积核是用来降维和升维的,可以减少参数量。

此外,GoogLeNet 是在 channel 这个维度进行拼接,而 ResNet 是在所有维度相加。

图2: ResNet 网络结构,来自论文

注意:除了18层和34层的conv2_x中的所有残差模块全是实线的,其余的第一个残差模块是虚线,剩下的残差模块是实线。

图3:ResNet18和ResNet34的虚线模块和实线模块参考图,来自学习视频

图4:ResNet50、101、152的虚线模块和实线模块参考图,来自学习视频

图5:ResNet34网络结构图,自己画的,s是stride,p是padding【】是这一层后的输出尺寸

图6:ResNet50网络结构图,自己画的,s是stride,p是padding【】是这一层后的输出尺寸

图7,补充

2.Batch Normalization

Batch Normalization是一个batch_size中的所有图片的featuremap的每个通道都满足均值为0,方差为1的规律,均值μ和方差δ2是向量,第一个值是第一个通道的均值和方差,第二个值是第二个通道的均值和方差。。

up主的这篇博客讲的很通俗易懂:Batch Normalization详解以及pytorch实验_pytorch batch normalization-CSDN博客

图8:来自博客,BN的计算过程,讲的很清晰

均值和方差是正向传播中计算得到的,γ和β是反向传播中学习得到的,没有最后一个式子,均值为0方差为1,加上最后一个式子,方差为γ,均值为β

图9:BN的使用注意事项,来自博客

3.迁移学习

迁移学习能够快速训练出一个理想的结果,当数据集比较小的时候也能训练出理想的效果,但要注意,使用别人的预训练模型参数,要注意别人的预处理方式

图10:来自学习视频

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐