0
点赞
收藏
分享

微信扫一扫

经典网络模型1——ResNet 详解与复现

经典网络模型1——ResNet 详解与复现

Residual Network

简称 ResNet (残差网络),何凯明团队于2015年提出的一种网络;
在 ImageNet 比赛 classification 任务上获得第一名;
目前在检测,分割,识别等领域里得到了广泛的应用;

🔗 论文地址:Deep Residual Learning for Image Recognition

ResNet


残差网络

对于一个网络,如果简单地增加深度,就会导致梯度弥散或梯度爆炸,我们采取的解决方法是正则化;
随着网络层数进一步增加,又会出现模型退化问题,在训练集上的准确率出现饱和甚至下降的现象;

特点: 通过利用内部的残差块实现跳跃连接,解决神经网络深度加深带来的 模型退化 问题:

residual block

residual block

在之前的网络结构中采用的输入输出函数为:F(x)output1 = xinput
在残差网络中利用残差模块使输入输出函数为:F(x)output2 = F(x)output1 + xinput

xinput 直接跳过多层 加入到最后的输出 F(x)output2 单元当中,解决 F(x)output1 可能带来的模型退化问题


residual block

residual block
浅层网络: 采用的是左侧的 residual block 结构(18-layer、34-layer)
深层网络: 采用的是右侧的 residual block 结构(50-layer、101-layer、152-layer)

很有意思的是,这两个设计具有参数量:
左侧: (3 X 3 X 64)X 64 +(3 X 3 X 64)X 64 = 73728
右侧: (1 X 1 X 64)X 64 +(3 X 3 X 64)X 64 +(1 X 1 X 64)X 256 +(1 X 1 X 64)X 256 = 73728

可以对比 34-layer50-layer 发现它们的参数量分别为 3.6 X 1093.8 X 109


ResNet50 详解

以下以 ResNet50 为代表进行介绍:
ResNet50
它是由 4 个 大block 组成 ;
每个 大block 分别由 [3, 4, 6, 3]小block 组成 ;
每个 小block 都有 三个 卷积操作 ;
在网络开始前还有 一个 卷积操作 ;
层数:(3+4+6+3)X 3 + 1 = 50 layer

其中每个 大的 block 里面都是由两部分组成:Conv BlockIdentity Block
Conv Block :输入和输出维度不相同,不能串联,主要用于 改变网络维度
Identity Block :输入和输出维度相同,可以串联,主要用于 加深网络层数

Conv Block 结构框图:

Conv Block

Identity Block 结构框图:

Identity Block

ResNet50 [3, 4, 6, 3]可以表示为:
conv2_xConv Block + Identity Block + Identity Block
conv3_xConv Block + Identity Block + Identity Block + Identity Block
conv4_xConv Block + Identity Block + Identity Block + Identity Block + Identity Block + Identity Block
conv5_xConv Block + Identity Block + Identity Block

ResNet50 结构框图:

ResNet50


ResNet50 复现

# Here is the code :


ResNet50 结构框图

ResNet50

举报

相关推荐

0 条评论