网站开发专业就业好不好,苗木门户网站模板,顺德网站建设jinqiye,中国交通建设集团有限公司是央企一、ResNet#xff08;总结自csdn文章#xff09;随着网络的加深#xff0c;出现了训练集准确率下降的现象#xff0c;确定这不是由于Overfit过拟合造成的。作者针对这个问题提出了一种全新的网络#xff0c;叫深度残差网络#xff0c;它允许网络尽可能的加深#xff0c…一、ResNet总结自csdn文章随着网络的加深出现了训练集准确率下降的现象确定这不是由于Overfit过拟合造成的。作者针对这个问题提出了一种全新的网络叫深度残差网络它允许网络尽可能的加深其中引入了全新的结构如图1残差指的是什么 其中ResNet提出了两种mapping一种是identity mapping指的就是图1中”弯弯的曲线”另一种residual mapping指的就是除了”弯弯的曲线“那部分所以最后的输出是 yF(x)x。identity mapping顾名思义就是指本身也就是公式中的x而residual mapping指的是“差”也就是y−x所以残差指的就是F(x)部分。 为什么ResNet可以解决“随着网络加深准确率不下降”的问题理论上对于“随着网络加深准确率下降”的问题Resnet提供了两种选择方式也就是identity mapping和residual mapping如果网络已经到达最优继续加深网络residual mapping将被push为0只剩下identity mapping这样理论上网络一直处于最优状态了网络的性能也就不会随着深度增加而降低了。ResNet结构它使用了一种连接方式叫做“shortcut connection”顾名思义shortcut就是“抄近道”的意思。“弯弯的弧线“这个就是所谓的”shortcut connection“也是文中提到identity mapping这张图也诠释了ResNet的真谛真正在使用的ResNet模块并不是这么单一文章中就提出了两种方式这两种结构分别针对ResNet34左图和ResNet50/101/152右图一般称整个结构为一个”building block“。其中右图又称为”bottleneck design”目的一目了然就是为了降低参数的数目第一个1x1的卷积把256维channel降到64维然后在最后通过1x1卷积恢复整体上用的参数数目1x1x256x64 3x3x64x64 1x1x64x256 69632而不使用bottleneck的话就是两个3x3x256的卷积参数数目: 3x3x256x256x2 1179648差了16.94倍。 对于常规ResNet可以用于34层或者更少的网络中对于Bottleneck Design的ResNet通常用于更深的如101这样的网络中目的是减少计算和参数量实用目的。如果F(x)和x的channel个数不同怎么办因为F(x)和x是按照channel维度相加的channel不同怎么相加呢针对channel个数是否相同要分成两种情况考虑如下图实线的的Connection部分(”第一个粉色矩形和第三个粉色矩形“)都是执行3x3x64的卷积他们的channel个数一致所以采用计算方式 yF(x)xyF(x)x 虚线的的Connection部分(”第一个绿色矩形和第三个绿色矩形“)分别是3x3x64和3x3x128的卷积操作他们的channel个数不同(64和128)所以采用计算方式 yF(x)WxyF(x)Wx 其中W是卷积操作用来调整x的channel维度的 两种Shortcut Connection方式实例左图channel一致右图channel不一样ResNet50和ResNet101Resnet网络结构的设计遵循两种设计规则1对于相同的输出特征图尺寸层具有相同数量的滤波器2如果特征图大小减半则滤波器的数量加倍以便保持每一层的时间复杂度。这里把ResNet50和ResNet101特别提出主要因为它们的出镜率很高所以需要做特别的说明。给出了它们具体的结构 上面一共提出了5中深度的ResNet分别是183450101和152首先看表2最左侧我们发现所有的网络都分成5部分分别是conv1conv2_xconv3_xconv4_xconv5_x之后的其他论文也会专门用这个称呼指代ResNet50或者101的每部分。 实现部分的 tricks图片resize短边长random.randint(256,480)裁剪224224随机采样含水平翻转减均值标准颜色扩充[2]conv和activation间加batch normalization帮助解决vanishing/exploding问题minibatch-size:256learning-rate: 初始0.1, error平了lr就除以10weight decay0.0001momentum0.9没用dropout[3]二、ResNet V2总结自csdn文章下面1-5的结构哪个是我们常用的ResNet结构其中weight指conv层BN指Batch Normalization层ReLU指激活层addition指相加 根据ResNet的描述似乎以上五组都符合那么2016年ResNet原文是哪一个结构呢以及其他四组结构也都work么针对第一个问题ResNet原文中使用的结构是11的特点有两个1BN和ReLU在weight的后面2最后的ReLU在addition的后面对于特点1属于常规范畴我们平时也都这个顺序Conv-BN-ReLU对于特点2为什么ReLU放在addition后面呢按照常规不是应该是图3这种么那么我们接下来引出的问题就是图3的结构work么对于每个图右侧部分我们称作“residual”分支左侧部分我们称作“identity”分支如果ReLU作为“residual”分支的结尾我们不难发现“residual”分支的结果永远非负这样前向的时候输入会单调递增从而会影响特征的表达能力所以我们希望“residual”分支的结果应该在-∞ ∞这点也是我们以后设计网络时所要注意的。对于图3不OK的情况那如果把BN也挪到addition后面呢如图2同时也保证了“residual”分支的取值范围这里BN改变了“identity”分支的分布影响了信息的传递在训练的时候会阻碍loss的下降这里大家肯定又有个问题为什么“identity”分支发生变化会影响信息传递从而影响训练呢到此也就彻底回答了图2的结构为何会阻碍反向传播时的信息。在分析图4和图5之前我们引出一个概念”Post-activation”和”Pre-activation”其中Post和Pre的概念是相对于weight(conv)层来说的那么我们不难发现图(1), (2), (3)都是”Post-activation”图(4), (5)都是”Pre-activation”那么两种模式哪一个更好呢这里我们就用实验结果说话。 上图是5种结构在Cifar10上的实验结果一共实验了两种网络ResNet110和ResNet164注这里直接摘抄了原文的图片本人并没有真实的试验过 从实验结果上我们可以发现图(4)的结构与ResNet原结构伯仲之间稍稍逊色然而图(5)的结构却好于ResNet原结构。图5的结构好的原因在于两点1反向传播基本符合假设信息传递无阻碍2BN层作为pre-activation起到了正则化的作用最后我们通常把图5的结构称作ResNetV2把ResNetV1和ResNetV2结构再次show