安徽鲲鹏建设集团有限公司网站,电商网站设计的流程,wordpress会员小图标,wordpress.shop前言
在人工智能的浪潮中#xff0c;深度学习已经成为了推动计算机视觉、自然语言处理等领域突破的关键技术。在这众多技术中#xff0c;ResNet#xff08;残差网络#xff09;无疑是一个闪耀的名字。自从2015年Kaiming He等人提出ResNet架构以来#xff0c;它不仅在图像…前言
在人工智能的浪潮中深度学习已经成为了推动计算机视觉、自然语言处理等领域突破的关键技术。在这众多技术中ResNet残差网络无疑是一个闪耀的名字。自从2015年Kaiming He等人提出ResNet架构以来它不仅在图像识别领域取得了革命性的进展更影响了后续神经网络设计的诸多方面。
那么什么是ResNet简而言之ResNet是一种深度卷积神经网络CNN其核心创新在于引入了“残差学习”的概念通过残差块residual block的设计优雅地解决了深度网络训练中的退化问题。这种结构允许网络通过简单的恒等映射来学习复杂的表示有效地促进了更深网络的训练。
让我们先看看网络退化问题 在作者论文中提及随着网络层数的不断加深模型的准确率起初会不断的提高最后达到饱和值之后随着网络深度的不断增加模型准确率不但不会继续增加反而会出现大幅度降低的现象。如上图模型训练以及验证的过程中56层的error比20层的还要高这是由于之前的网络模型随着网络层不断加深会造成梯度爆炸和梯度消失的问题。
随着深度学习技术的不断进步ResNet及其变体已经广泛应用于多种视觉任务包括但不限于图像分类、物体检测、语义分割等。ResNet的成功不仅体现在它的性能上更在于它为后来的网络架构设计提供了灵感诸如DenseNet、Inception等都受到了ResNet设计的启发。 论文地址https://arxiv.org/pdf/1512.03385.pdf
亮点
1、提出Residual模块
2、使用Batch Normalization加速训练丢弃dropout
3、残差网络易于收敛、很好的解决了退化问题、模型可以很深准确率大大提高
ResNet模型结构
1、残差学习
结构1Identity Block输入和输出的dimension是一样的用于增加网络的深度可以串联多个 结构2Conv Block输入和输出的dimension是不一样的用于改变网络的维度不能连续串联 2、ResNet模型 论文展示的ResNet-layer模型 BottleNeck中就是咱们先前学习的残差块啦往往第一个BottleNeck中是Conv Block之后是Identity Block串联例如BottleNeck × 3中 第一个残差块是Conv Block剩下两个是Identity Block
因为CNN最后都是要把输入图像一点点的转换成很小但是depth很深的feature map一般的套路是用统一的比较小的kernel比如VGG都是用3*3但是随着网络深度的增加output的channel也增大学到的东西越来越复杂所以有必要在进入Identity Block之前用Conv Block转换一下维度这样后面就可以连续接Identity Block. 当是Conv Block时3 × 3 卷积核中的stride 2从而实现将特征图大小减半当是Identity Block3 × 3 卷积核中的stride 1不改变特征图大小
不过在原论文中第一个1 × 1卷积层的步长是2第二个3 × 3卷积层步长是1
但在pytorch官方实现过程中第一个1 × 1卷积层的步长是1第二个3 × 3卷积层步长是2这样能给在imagenet的top1上提升大概0.5%的准确率
BN层使用注意事项 代码
我回去翻翻 找到了立马上传
水平有限有错希望大家能指正
点赞或收藏能鼓励作者不断更新哟~ 参考链接
【DL系列】ResNet网络结构详解、完整代码实现-CSDN博客
4.ResNet50 网络结构_resnet50网络架构-CSDN博客
庖丁解牛-Resnet50 深度剖析细致讲解深入理解-CSDN博客