Deep Residual Learning for Image Recognition--论文笔记

news2024/11/23 19:44:28

论文笔记

论文来源:

Deep Residual Learning for Image Recognition

代码来源

还没上传

1论文摘要的翻译

深度神经网络更难训练。我们提出了一个残差学习框架,以简化比以前使用的网络深度大得多的网络的训练。我们明确地将层重新表述为参考层输入的学习残差函数,而不是学习未参考的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以从相当大的深度中获得精度。在ImageNet数据集上,我们评估了深度高达152层的残差网络——比VGG网络深度8倍[41],但仍然具有较低的复杂性。这些残差网络的集合在ImageNet测试集上的误差达到3.57%。该结果在ILSVRC 2015分类任务中获得第一名。我们还介绍了100层和1000层的CIFAR-10分析

表征的深度对于许多视觉识别任务至关重要。仅由于我们的极深表示,我们在COCO对象检测数据集上获得了28%的相对改进。深度残差网络是我们参加ILSVRC & COCO 2015竞赛的基础1,我们还在ImageNet检测、ImageNet定位、COCO检测和COCO分割的任务中获得了第一名

背景

问题

  • 学习更好的网络就像堆叠更多的层一样简单吗
    == 这个问题已经通过规范化初始化和中间规范化层得到了很大程度的解决,这使得具有数十层的网络能够开始收敛随机梯度下降(SGD)与反向传播。==
  • 当更深的网络能够开始收敛时,一个退化问题就暴露出来了:随着网络深度的增加,精度趋于饱和(这可能不足为奇),然后迅速退化。适当深度的模型上增加更多的层会导致更高的训练误差,如下图所示
    在这里插入图片描述

这里提出一个网络架构优化的思路
当我们考虑一个较浅的体系结构,它在上面添加了更多的层。通过构造更深的模型存在一个解决方案:添加的层是身份映射,其他层是从学习的较浅模型复制的。这种构造解的存在表明,较深的模型不会比较浅的模型产生更高的训练误差。

2论文的创新点

  • 提出了一个残差学习框架 来解决退化问题,同时比以前使用的网络深度大得多 而训练更方便。

3 论文方法的概述

映射方法

形式上,我们将期望的底层映射表示为H(x),我们让堆叠的非线性层适合F(x)的另一个映射:= H(x) - x。原始映射被重新转换为F(x)+x。我们假设优化残差映射比优化原始的、未引用的映射更容易。在极端情况下,如果一个恒等映射是最优的,将残差推至零要比用一堆非线性层拟合一个恒等映射容易得多。

shortcut connections

短路连接是那些跳过一个或多个层的连接
在这里插入图片描述

3.1残差学习

让我们把H(x)看作是由几个堆叠层(不一定是整个网络)拟合的结果,其中x表示这些层的第一层的输入。如果假设多个非线性层可以渐近逼近复杂函数s,则等价于假设它们可以渐近逼近残差函数,即H(x)−x(假设输入和输出具有相同的维数)。因此,我们不是期望堆叠层近似于H(x),而是明确地让这些层近似于残差函数F(x):= H(x) - x。因此,原始函数变为F(x)+x。尽管这两种形式都应该能够渐进地逼近所需的函数(如假设的那样),但学习的难易程度可能有所不同。

3.2 通过Shortcut 来进行身份映射

  • 我们对选取的堆叠层采用残差学习,公式如下
    y = F ( x , W i ) + x y = F(x, {W_i}) + x y=F(x,Wi)+x ,如下图所示。
    在这里插入图片描述
    如果 x x x维度与 F F F维度不同则采用线性投影 W W W来匹配维度 y = F ( x , W i ) + W s x y = F(x, {W_i}) + W_sx y=F(xWi)+Wsx

  • 残差函数F的形式是灵活的。本文中的实验涉及到一个函数F,它有两层或三层(图5),而更多的层是可能的。下图对比了残差块两层,三层的情况
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8c74e4536a264cc7ab27a4082f9ea7ca.pn

3.3网络架构

  • Plain Network :
    我们的plain baseline(中间)主要受到VGG网原理的启发(左)。卷积层大多具有3×3滤波器,并遵循两个简单的设计规则:(i)对于相同的输出特征图大小,各层具有相同数量的滤波器;(ii)如果特征图大小减半,则滤波器的数量增加一倍,以保持每层的时间复杂度。我们通过步长为2的卷积层直接执行下采样。网络以一个全局平均池化层和一个带有softmax的1000路全连接层结束。图3(中)加权层总数为34层。
  • Residual Network
    在上述Plain Network的基础上,我们插入shortcut connections(右),将网络转换为对应的残差版本。
    • 当输入和输出维度相同时,可以直接使用标识快捷方式。
    • 当维度增加时(图中的虚线快捷方式),我们考虑两种选择:
      • 快捷方式仍然执行标识映射,增加维度时填充额外的零项。这个选项不引入额外的参数;
      • 中的投影快捷方式用于匹配维度(通过1×1卷积完成)。
    • 对于这两个选项,当快捷键跨越两个大小的特征映射时,它们的步幅为2。

在这里插入图片描述

3.4 实现

  • 数据集
    • 图像在[256,480]中随机采样其较短的一面以进行缩放
    • 从图像或其水平翻转中随机采样224×224裁剪,并减去每像素平均值。
    • 使用标准颜色增强。
  • 每次卷积之后和激活之前采用批归一化(BN)。
  • 初始化权重,并从头开始训练所有的plain/residual网络。
  • SGD的小批量大小为256。学习率从0.1开始,当误差趋于平稳时除以10,模型的训练次数可达60 × 104次。
  • 使用0.0001的权重衰减和0.9的动量。不使用dropout。

在测试中,采用标准的10种作物测试进行比较研究,这里为了获得最佳结果,采用了[41,13]中的全卷积形式,并在多个尺度上平均得分(图像被调整大小,使较短的一面在{224,256,384,480,640}中)

4 论文实验

4.1 ImageNet Classification

  • 数据集:ImageNet 2012 classifi-
    cation dataset
    Plain Networks 我们首先评估了18层和34层的普通网。34层平面网如图3(中)所示。18层的平面网也是类似的形式。请参见下表了解详细的体系结构。
    Residual Networks 评估18层和34层残余网(ResNets)。基线架构与上面的普通网络相同,除了向每对3×3过滤器添加一个快捷连接外,如上图所示。在第一个比较中,我们对所有shortcut connection使用标识映射,对增加维度使用零填充(选项A)。因此,与普通对应项相比,它们没有额外的参数。
    在这里插入图片描述
    下表的结果表明,较深的34层plain net比较浅的18层plain net具有更高的验证误差。为了揭示原因,在下图中,我们比较了它们在训练过程中的训练/验证误差。而对于残差网络,首先,残差学习的情况正好相反——34层的ResNet比18层的ResNet好2.8%。更重要的是,34层的ResNet显示出相当低的训练误差,并且可以推广到验证数据。这表明在这种情况下,退化问题得到了很好的解决,我们设法从增加的深度中获得精度增益。
    在这里插入图片描述
    在这里插入图片描述

4.2

  • 数据集:CIFAR-10 dataset
    plain/residual architectures 和上面一致

我们比较n ={3,5,7,9},得出20层、32层、44层和56层网络。图6(左)显示了plain network的性能。深plain network增加,深度越深,训练误差越大。这种现象与ImageNet(上图4,左)和MNIST上的情况类似,表明这种优化难度是一个基本问题
在这里插入图片描述

5 总结

ResNet网络通过使用残差模块,解决了增加CNN深度引起的性能退化问题。通过构建更深的卷积神经网络,提取更高层次的特征,使其拥有更高的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

概念艺术3D三维虚拟展览系统让更多人一同领略艺术的无穷魅力

经过多年的技术积累,华锐视点3D云展平台为各位提供的网上3D书画展厅,是一个集逼真视觉体验与沉浸式感官享受于一体的线上艺术殿堂。通过先进的Web3D实时渲染技术,打造全景3D立体场景,让您仿佛置身于实体展厅之中,感受那…

报名倒计时两周|2024 OpenTiny 开源之夏项目直播解读回顾

5月16日,OpenTiny 开源社区成功举办了以《OpenTiny 开源之夏项目解读直播》为主题的直播活动。此次直播中,华为云的高级前端工程师曾令卡、华为云的高级前端工程师伍其和与10位开源之夏技术专家携手组成项目导师团,面向广大开发者一同深入探讨…

QT加载CAD文件(一)QCAD

近期为了加载.dxf格式的文件简单学习了下QCAD和LibreCAD编译和二次开发,QCAD 是一个免费、开源的计算机辅助绘图二维工具, 目前开源的二维CAD有QCAD、LibreCAD等,LibreCAD可以说是QCAD的分支版本。 一、QCAD 官网网址:https://www.qcad.org…

spring boot整合j2cache 关闭二级缓存

我们整合了 j2cache 的项目启动 日志会输出 一级缓存 二级缓存 一级是 EhCacheProvider 二级是 SpringRedisProvider 如果 我们不想用二级缓存 在 j2cache.properties 中 加上 j2cache.12-cache-open配置 值为 true/false true是启用二级缓存 false 是不起用 默认 true 所以 …

低价焕新用户体验生态 京东向上增长通道宽了

5月16日,京东对外发布了其2024年第一季度财报。整体来看,相当不错,营收与净利润双双超预期。一季度,京东集团收入达到2,600亿元人民币(约360亿美元),同比增长7.0%,尤其是在持续补贴和…

Golang net/http标准库常用方法(三)

大家好,针对Go语言 net/http 标准库,将梳理的相关知识点分享给大家~~ 围绕 net/http 标准库相关知识点还有许多章节,请大家多多关注。 文章中代码案例只有关键片段,完整代码请查看github仓库:https://github.com/hltfa…

工具分享:VsCode注释神器,koro1FileHeader

他是有官方Wiki的。 https://github.com/OBKoro1/koro1FileHeader/wiki/ 项目在GitHub上开源。以下摘录部分wiki,用作介绍分享在这里插入代码片 如何找到setting.json设置模板 简单的输入命令 打开VSCode命令面板: mac: command p window: ctrl p输入> Ope…

windows查看mysql的版本(三种方法)

方法一:在win r 打开 cmd,在cmd命令状态下:mysql --help 回车即可 方法二:在mysql客户端窗口状态下:输入status并回车即可 在计算机开始菜单搜索以上应用打开即可进入mysql客户端窗口。 方法三:在mys…

[技术报告]InternLM2 Technical Report

摘要 像ChatGPT和GPT-4这样的大型语言模型(llm)的进化引发了人们对人工通用智能(AGI)出现的讨论。然而,在开源模型中复制这种进步一直是一个挑战。本文介绍了InternLM2,这是一个开源的大语言模型&#xff…

项目9-网页聊天室2(登录)

0.前端知识储备 Ajax请求中的async:false/true的作用 - front-gl - 博客园 (cnblogs.com) 01.前端页面展示 02.后端代码 2.1 CONTROLLER RequestMapping("/login")public Result login(String username, String password, HttpSession httpSession){User user …

零基础PHP入门(一)选择IDE和配置环境

配置环境 官网下载安装包,windows https://windows.php.net/download#php-8.3 我是下载的最新版,也可以切换其他版本 https://windows.php.net/downloads/releases/archives/ 下载好压缩文件后,双击解压到一个目录 D:\soft\php 复制ph…

指针变量加1为什么地址加了4?

#include <stdio.h> #include <stdlib.h> int main() {int a 1;int* ptr;ptr &a;printf("ptr is: %p\n", ptr);ptr;printf("ptr1 is: %p\n", ptr);return 0; }在上述代码中&#xff0c;首先定义了一个int类型的变量a&#xff0c;和一个i…

西门子CPU与汇川伺服通信与控制

西门子CPU与汇川620F伺服通信与控制 一、西门子CPU与汇川620F伺服通信与控制1、器件准备2、伺服软件设置3、PLC添加汇川伺服描述文件4、PLC编程调试5、总结 二、西门子s7-1500限位信号接到伺服的方法1、通过默认报文获取限位信号2、添加自定义报文获取限位信号3、总结 三、西门…

什么是DDoS流量清洗?

随着互联网的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;其中分布式拒绝服务&#xff08;DDoS&#xff09;攻击尤为引人关注。为了有效应对这一威胁&#xff0c;流量清洗服务应运而生&#xff0c;成为网络安全领域的一项重要技术。 流量清洗服务是一种专门针对DDoS…

Linux gurb2简介

文章目录 前言一、GRUB 2简介二、GRUB 2相关文件/文件夹2.1 /etc/default/grub文件2.2 /etc/grub.d/文件夹2.3 /boot/grub/grub.cfg文件 三、grubx64.efi参考资料 前言 简单来说&#xff0c;引导加载程序&#xff08;boot loader&#xff09;是计算机启动时运行的第一个软件程…

AtCoder ABC352 A-D题解

比赛链接:ABC352 Problem A: 签到题。 #include <bits/stdc.h> using namespace std; int main(){int N,X,Y,Z;cin>>N>>X>>Y>>Z;if((X<Z && Z<Y) || (Y<Z && Z<X))cout<<"YES"<<endl;else…

微服务雪崩问题、Sentinel(请求限流、线程隔离、服务熔断)、Seata分布式事务

文章目录 前言一、微服务保护二、Sentinel2.1 微服务整合2.2 簇点链路2.3 请求限流2.4 线程隔离2.5 服务熔断 三、分布式事务3.1 Seata3.1.1 Seata架构3.1.2 部署TC服务3.1.3 微服务集成Seata 3.2 XA模式3.3 AT模式 前言 微服务之间为什么会雪崩&#xff1f;怎么解决雪崩问题&…

使用 Supabase 的 Realtime + Storage 非常方便呢

文章目录 &#xff08;一&#xff09;Supabase&#xff08;二&#xff09;Realtime&#xff08;消息&#xff09;&#xff08;2.1&#xff09;Python 消息订阅&#xff08;2.2&#xff09;JavaScript 消息订阅 &#xff08;三&#xff09;Storage&#xff08;存储&#xff09;&…

如何撰写EI会议的投稿信?

撰写EI会议的投稿信&#xff08;Cover Letter&#xff09;是向会议组织者介绍你的论文和研究工作的一个重要环节。以下是撰写投稿信的一些关键步骤和建议&#xff1a; 投稿信的结构 信头 你的信息&#xff1a;包括姓名、职位、单位名称、通讯地址、电子邮件和电话号码。日期&am…

LeetCode198:打家劫舍

题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存…