经典模型ResNet分析

提出背景         

        深度学习发展至今,越来越多的人使用非常深的网络来提取图像特征。虽然越深的网络提取图像特征的能力越好,但是也常常会遇到一个问题:“当层数加深时,网络的表现越来越差。”

        上图中明显可以看出56层的网络比20层网络的训练效果要差,许多人第一反应就是过拟合,但事实并不如此,因为过拟合现象的训练集准确度会很高,但是从图中可以看出56层网络的训练集准确度同样很低。很显然可知的是,随着层度加深,会出现梯度消失或梯度爆炸的问题,使得深度模型很难训练,但是已经存在BatchNorm等手段缓解这一问题,因此如何解决深度网络的退化问题是神经网络发展的下一个方向。

        那么该如何解决深度网络的退化问题呢?何凯明大神想出了一个“残差网络”,残差神经网络的一大优势就是恒等映射,使得梯度更容易地流动到浅层的网络当中去而且这种“skip connection”能带来更多的好处。

解决网络退化问题的方法

GoogleNet采用稀疏结构来一定量减缓这一影响
卷积分解(Factorizing Convolutions)
        大尺寸的卷积核可以带来更大的感受野,但也意味着会产生更多的参数,比如5x5卷积核的参数有25个,3x3卷积核的参数有9个,前者是后者的25/9=2.78倍。因此,GoogLeNet团队提出可以用2个连续的3x3卷积层组成的小网络来代替单个的5x5卷积层,即在保持感受野范围的同时又减少了参数量
        ResNet是通过引入残差来缓解梯度消失/爆炸的现象,但是只能说是缓解,本质上还是存在的。只是由于从loss到输入的有效路径变短了,而求导的时候可以直接加上shortcut的终点层的delta。

ResNet

残差块(Residual Building Block)截图如下:

        提出了两种映射:identity mapping(恒等映射),residual mapping(残差映射)。

         identity mapping(恒等映射)指的是右侧标有x的曲线;

        residual mapping(残差映射),残差指的是F(x)部分。最后的输出是F(x)+x。

        F(x)+x的实现可通过具有”shortcut connections”的前馈神经网络来实现。shortcut connections是跳过一层或多层的连接。图中的”weight layer”指卷积操作。如果网络已经达到最优,继续加深网络,residual mapping将变为0,只剩下identity mapping,这样理论上网络会一直处于最优状态,网络的性能也就不会随着深度增加而降低。

        残差块有两种设计方式,如下图所示:左图针对较浅的网络,如ResNet-18/34;右图针对较深的网络,又称为”bottleneck” building block,如ResNet-50/101/152,使用此方式的目的就是为了降低参数数目。

        文中给出了5种不同层数的ResNet,论文截图如下所示:可见,ResNet-18/34是进行两层卷积的残差,ResNet-50/101/152是进行三层卷积的残差,分别对应于上图中的残差块的两种设计方式。ResNet-18/34对应的每个残差块的卷积kernel大小依次是3*3、3*3,ResNet-50/101/152对应的每个残差块的卷积kernel大小依次是1*1、3*3、1*1。

 关于34、50这些层数是怎么计算的?

       34、50层等数字是如何计算出来的:以34层为例,1个卷积(conv1)+3残差块*2个卷积(conv2_x)+4个残差块*2个卷积(conv3_x)+6个残差块*2个卷积(conv4_x)+3个残差块*2个卷积(conv5_x)+最后的1个全连接层=34。这里的层仅指卷积层和全连接层,其它类型的层并没有计算在内。

        以上就是残差网络的一个思想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值