ResNet (深度残差网络)

news2024/9/22 13:43:36

 ResNet 算法概述

解决的核心问题:网络的退化现象

网络层数在变深之后,性能不如浅层时候的性能 。注意:网络退化既不是梯度消失也不是梯度爆炸。

那是如何解决退化现象的呢?引入残差模块

把模型的输入分成两条路:右边 的支路 为跳跃链接,将输入进行恒等映射。左边的结构为两层神经网络,这个模块的含义是不需要输入去拟合底层真正的分布,而是在输入的基础上进行哪些修改,只要拟合残差就行。(加了残差模块只会比原来的更好)

 真正的残差模块是很多层堆叠起来的。如上图所示

残差:真实值和预测值之间的偏差

问题:能不能无限层数的进行对堆叠?

论文中进行了对比试验,堆叠了1202层。用CIFAR-10数据集,最后呈现的效果是出现过拟合,作者将其原因归结为该数据集过小。(好比是中科院院士去做小学数学题)如下图所示

 下图是有一个普通的线性网络,输入x想拟合成H(x)的分布,之前的网络是依据堆叠的网络去进行拟合。

 但是残差网络是在现象网络的基础上加了一个分支,如下图所示:

 上面的这个网络不再是x去拟合H(x),而是x拟合F(x),假如输入足够好,那残差就为0 ,如果输入不是很理想,那残差可以在x的基础上进行优化,也就是堆叠的网络只负责在x的基础上进行优化即可。最后进行残差和输入逐元素相加(H\left ( x \right )=F\left ( x \right )+x)。

如果两者的元素结构不一样怎么办?在论文中提出了三种解决方法:

(1)在下采样时,对多出来的分支通道用0做填充(里面的元素全部为0)

(2)在下采样时,对分支通道做1×1的卷积,把维度调成成和残差块一样.

 (3)不管是在下采样还是普通卷积操作的时候,在分支通道里做1×1卷积

最后证明,不管是卷积还是padding,对分支通道不做任何处理时最好的。

所有的卷积块是3×3的,下采样的步长为2 ,不用pooling。分支路径是没有要学习的参数的,所以ResNet要学习的参数两和计算量和原来的线性网络是没有区别的。

在数据集CIFAR-10上,无残差模块的网络随着层数的加深,训练效果相对浅层的效果差,但是加了残差模块的随着网络层数的加深,训练效果相对于浅层的效果要好很多,收敛速度会更快,在优化上没有什么困难。如下图所示:

在论文中实验了不同层数的ResNet ,从下图可以看出模型越深,误差越小

 

 为什么ResNet能解决网络退化,背后的机理是什么?

 角度1:

补充上述: 恒等映射的梯度是1,意味着把深层的出入到底层,把底层的传入到深层,在传统的线性网络中,特别是用sigmoid函数,就会出现中间商赚差价,梯度逐渐变小,最后得到的梯度基本为0。

角度2: 

 补充上述:第一条,前面的模型与标签值之差。如下图的解释:

 上图中左右两边的解释是一样的,左图所示:第一个分类器开始进行分类,将蓝色球和红色球划分出来,但是经过分类器1最后得到的结果是有一些分类出现了错误。及时这样的分类结果不是很理想,可以用分类器2来修正上一个分类器1的分类错误,也就是将分类出错的球变大,然后在进行分类,但是这个2也会出错,那将错误的用分类器3进行修正拟合,最终将这几个模型放在一起,那么弱分类器就变成了强分类器,并且能够拟合出分线性的决策边界。

所以角度2中的第一条:残差网络的分支也是在修正上一层的误差,如果上一层的输出足够好,那么残差就为0.如果不够好就去修正这个残差。

第二条:长短时记忆网络他是一种循环网络,用来处理序列数据的

 遗忘门:最上面的横线就是遗忘门,贯穿了每一个模块,下面的一些是残差。

Relu激活函数也是一种残差。重要的时候输出,不重要的时候就抹平。

角度3:

 补充上述:恒等映射,意思是输入和输出是一样的函数很难用传统的线性模型来实现。

角度4:

角度5:

 角度6:

 Deep Residual Learning for Image Recognition—论文精读

 视频链接:ResNet论文精读:Deep Residual Learning for Image Recognition_哔哩哔哩_bilibili

 

 

 

 

 

 

 

 

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

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

相关文章

SQL 大全(四)|数据库迁移升级时常用 SQL 语句

作者 | JiekeXu 来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT) 如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA) 大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看SQL 大全(四)|数据库迁移…

由浅入深了解 深度神经网络优化算法

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 导言 优化是从一组可用的备选方案中选择最佳方案。优化无疑是深度学习的核心。基于梯度下降的方法已经成为训练深度神经网络的既定方法。 在最简单的情况下,优化问题包括通过系统地从允许集合中…

Jenkins+GitLab+Docker搭建前端自动化构建镜像容器部署

前言 🚀 需提前安装环境及知识点: 1、Docker搭建及基础操作 2、DockerFile文件描述 3、Jenkins搭建及基础点 🚀 目的: 将我们的前端项目打包成一个镜像容器并自动发布部署,可供随时pull访问 一、手动部署镜像及容器 1…

6-《网络面试》

6-《网络面试》 1.http是什么?http的工作机制?http报文?1.1 http工作机制:1.2 URL和http报文 2. HTTP请求方法和状态码3.Get和Post的区别4.HTTP的Header解析1.text/html2.x-www-form-urlencoded3.multipart/form-data4.applicatio…

中断相关概念并利用中断实现按键点亮LED灯

一.中断相关概念 什么是中断? 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的 程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 什么是EXTI? 外部…

【vue上传文件——hash】

vue上传文件 要求:只能上传视频,先计算文件的hash值,hash值一样则不需要上传,不一样在执行上传 分析:因为el-upload没有找到合适的属性,本次用的是原生的input的type属性为file上传 代码: html: 通过点击选取文件按钮调用input上传 js 第一步:点击上传文件先效验是否…

windows下免U盘安装manjaro

建议 建议先看这个https://www.bilibili.com/read/cv23161386/ 背景 新到了一块硬盘,想把这台主机做成双系统的,windowsmanjaro系统。 为什么选择manjaro? win中的虚拟机已经有了日常使用的ubuntu。体验一下manjaro。ubuntu用来开发办公要…

python 之 logging的使用

一、日志模块 import logginglogging.debug("调试日志") logging.info(消息日志) logging.warning("告警日志") logging.error(错误日志) logging.critical(严重错误日志)debug(调试)级别用于输出调试信息,这些信息主…

JDK源码阅读环境搭建

本次针对jdk8u版本的搭建 1.新建项目 新建java项目JavaSourceLearn ,这里我创建的是maven 2.获取JDK源码 打开Project Structure 找到本地JDK安装位置将src.zip解压到项目java包中 整理下项目结构,删除用不到的目录 提示: 添加源码到项目之后首次运行…

【BBQ: A Hand-Built Bias Benchmark for Question Answering 论文精读】

BBQ: A Hand-Built Bias Benchmark for Question Answering 论文精读 InformationAbstract1 Introduction2 Related Work3 The Dataset3.1 Coverage3.2 Template Construction3.3 Vocabulary4 Validation5 Evaluation6 Results7 Discussion8 Conclusion9 Ethical Consideration…

keepalived+nginx搭建高可用kubeadm1.25

实验环境 系统都是centos 7 IP地址主机名称192.168.0.1k8s-master01192.168.0.2k8s-master02192.168.0.3k8s-master03192.168.0.230k8s-vip192.168.0.4k8s-node01192.168.0.5k8s-node02 所有节点修改主机名称 cat <<EOF >> /etc/hosts 192.168.0.1 k8s-master0…

python 容器

容器 Python中&#xff0c;可包含其他对象的对象&#xff0c;称之为“容器”。容器是一种数据结构。 常用的容器主要划分为两种&#xff1a;序列&#xff08;如&#xff1a;列表、元祖等&#xff09;和映射&#xff08;如&#xff1a;字典&#xff09;。序列中&#xff0c;每个…

国考省考行测:百分点和百分数,相对量和绝对量的比较

国考省考行测&#xff1a;百分点和百分数 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xff0c;我讲一起屡屡申论和行测的重要知识…

MyBatis扩展

目录 单元测试 spring boot的单元测试 spring boot的单元测试的使用 1.在要测试的类里,右键点击生成 2.点击test 3.配置测试的信息,点击ok 4.在生成的测试类里,加注解,写测试代码 5.运行单元测试 6.查看测试结果 追加测试方法 断言 MyBatis 单表传参查询 MyBatis获取…

YOLO V3 SPP ultralytics 第二节:根据yolo的数据集,生成准备文件和yolo的配置文件

目录 1. 介绍 2. 完整代码 3. 代码讲解 3.1 生成 my_train_data.txt和my_val_data.txt 3.2 生成 my_data.data 文件 3.3 生成 my_yolov3.cfg 3.4 关于my_data_label.names文件 1. 介绍 根据 第一节 的操作&#xff0c;已经生成了下图中圆圈中的部分&#xff0c;而本…

又一个2W+的答题抽奖活动,复盘复盘总结总结

又一个2W的答题抽奖活动&#xff0c;复盘复盘总结总结 前段时间太忙了&#xff0c;现在才有时间对一些活动进行复盘总结&#xff0c;这里先对其中一个答题抽奖活动进行复盘总结一下。遇到的一些问题、分析以及其解决方案。 答题抽奖 参与者每答对一道题既可获得相对应的分数&…

什么是 Schnorr 签名?

在密码学中&#xff0c;Schnorr 签名是由 Schnorr 签名算法生成的数字签名。 与大多数区块链不同&#xff0c;BTC自其早期以来基本保持不变&#xff0c;大多数升级都是有限的&#xff0c;并旨在增强网络的效率而不是功能。BTC协议的更新是非常罕见的&#xff0c;并且通常用于技…

华为云赋能云:聚焦产数融合,深化数字赋能

编辑&#xff1a;阿冒 设计&#xff1a;沐由 假如你是一家制造企业的老板&#xff0c;一定会觉得近期的日子不太好过&#xff1a;国家统计局最新公布的数据显示&#xff0c;4月份制造业采购经理指数&#xff08;PMI&#xff09;为49.2%&#xff0c;较上月下降了2.7个百分点。 市…

I/O控制方式

目录 一、程序查询方式 1.程序查询流程 2.程序查询接口结构 3.案例习题 四、优缺点 二、程序中断方式 1.中断的概念 2.流程图 3.案例习题 三、DMA方式 1.DMA传送过程 2.DMA与主存交换数据的三种方式 3. 与中断程序处理的区别 4.案例习题 一、程序查询方式 1.程序…

C++中pair用法

博主简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的人。 博主主页&#xff1a;陈童学哦 所属专栏&#xff1a;CSTL 前言&#xff1a;Hello各位小伙伴们好&#xff01;欢迎来到本专栏CSTL的学习&#xff0c;本专栏旨在帮助大家了解…