ResNet精读笔记(1)

news2024/11/17 20:37:49

introduction部分提出了几个问题

1.构建一个好的网络 =? 把层堆起来吗

哈哈 跟堆汉堡一样 

这里呢 我们都知道 当网络的层数变多之后 加深了 deep了 但是

就会带来 梯度消失或者爆炸的问题

这里 实在找不到好的图 

本质上因为当层数多了之后 反向传播的计算里面是不是 有连乘啊 那就会导致 

要么算的很小 接近0 而接近0就意味着梯度消失 

要么就接近无穷大那就是梯度爆炸 而解决这问题,

1.初始化要做好一点

权重不要太大 也不要太小

2.中间加入BN层

可以使得校验每个层之间的那些输出和他的梯度的那些均值和方差

在深的网络是可以训练的(避免一些层特别大或是特别小)

我们发现使用这些trick就是可以收敛了

但是

面临第二个难点时,当我们的网络变深了,我们的性能变差了==精度变差

20->50 变差 很明显(这里图中可以看出错误率变高了 很明显)

但是这里并不是因为层数变深模型变复杂导致的过拟合

这是因为你的训练误差也变高了 (这里的训练误差和测试误差都很差)

overfitting的意思是 你的训练精度很高(训练误差变得很低 )但是你的测试精度低了(测试误差变得很高)中间有比较大的区别

也就是说我们发现啊 这个网络用了 BN 用了归一初始化确实work 让最后梯度下降收敛了

但是最后并没有得到一个好的结果 也就是对于最终的结果来说 不怎么有效啊

考虑一个架构浅一点的网络 和一个比较深的版本

注意:比较深的版本  在浅的网络加一些层

我们想一下 如果我们浅的架构很好的话 按道理 深的网络 不应该变差

因为深的架构加的层 都是学到的

(identity mapping)input x output 也是x

把一些权重学成简单的 n 分之一 使得我们的输入和输出 是一一对应的关系

理论上权重确实可以学成这个样子

但是

实际上 臣妾办不到  采用随机梯度下降 深的 层学到表较好的(浅的层学习表现好的层的复制)

而上面的那些层由于identity mapping  

整理一下 我们构建的深的网络 前20层是学的比较好的 后14层是identity mapping  

这样其实效果肯定会好(有这个最优解) 但是我们发现这个SGD(随机梯度下降)办不到,找不到一个最优解

所以 这篇文章 给出了一个解决方案 

identity mapping 不会变差 ——————deep residual learning 框架

RPReplay_Final1673156538

输出 = 输出+输入

shortcut connection ——indentity mapping

1.不会增加任何你需要学习的参数,不会增加模型复杂度

2.加法也不会增加计算的复杂度

3.网络可以被训练

4.在caffe可以直接实现

解释了residual在干嘛

而追溯residual 在机器学习和统计里面比较多 线性模型最早的解法 靠residual 来迭代

那么残差连接如何处理你的输入和输出的形状是不同的情况

1.补0填充

2.投影(1*1的卷积在空间维度上不做任何的change,主要是可以改变channel的维度)

而高宽通常会变成原来的一半 所以给1*1卷积的步长设为2

实验部分

细节1:把短边随机的采样到256和480

随机放到比较大 有一个好处:当切割的时候,会增加随机性

RGB上做颜色增强 BN

没有全连接层 所以没有dropout

10-crop test image 

给一张图片 在里面随机的按照一定规则去采样10个图片在每个子图上做预测

最后将结果做平均

就到这吧,我要休息了,88

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

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

相关文章

嵌入式:万字详解通信接口设计

文章目录UART接口UART的工作原理UART的功能和组成S3C2410A的UARTUART 操作(1)数据发送(2)数据接收(3)自动流控制(4)非自动流控制(a)接收数据操作(…

【C++】模拟实现List的正向和反向迭代器(iterator、reverse_iterator)

文章目录1、搭建List的基本框架2、List中iterator和const_iterator3、反向迭代器revser_iterator1、搭建List的基本框架 STL中List容器底层是一个双向带头循环链表。 这里简单搭建一个List,下面我们不断完善。 思路: 1、List作为一个双向带头链表&…

excel函数公式:常用高频公式应用总结 下篇

公式6:根据身份证号码计算出生日期要从身份证号码中得到出生日期,这种问题对于从事人资行政岗位的小伙伴一定不陌生,公式也比较简单:TEXT(MID(A2,7,8),"0-00-00")就能得到所需结果,如图所示:要明…

vue+xlsx实现表格的导入导出:

文章目录一、vue前端使用xlsx和 xlsx-style 导出excel,并修改样式:1、改造后效果:2、实现:3、引入库xlsx-style4、excelUtil.js文件二、前端xlsx插件怎么设置导出的excel列宽自适应?2-1、效果2-2、效果三、xlsx插件,导…

Java语法六:线程安全以及死锁

前言: 接下来我们要了解一下,线程安全的集合类有哪些?什么是死锁以及怎么避免死锁问题。 1.多线程环境使用哈希表 1.1:HashTable 只是简单的把关键方法加上synchronized关键字。 public synchronized V put(K key, V value) p…

(1分钟速览)最近邻搜索--激光SLAM常用必杀技

学习kdtree的数据结构,和二叉树的思想大体上算是比较相似的。参考博客:https://blog.csdn.net/dive_shallow/article/details/113136145建树,一个递归的操作。这里的删除操作很好理解,分左子树和右子树两种情况。如果是左子树那么…

Go语言设计与实现 -- 内存对齐机制

什么是内存对齐 为了能让CPU可以更快的存取到各个字段,Go编译器会帮你把struct结构体做数据的对齐。所谓的数据对齐,是指内存地址是所存储数据的大小(按字节为单位)的整数倍,以便CU可以一次将该数据从内存中读取出来。…

每天五分钟机器学习:推荐系统中所有用户的损失函数是什么?

本文重点 我们分析机器学习算法都是从损失函数的角度来说的,为了找到最佳的参数θ,可以最小化损失函数,那么本节课程我们将学习基于内容的推荐系统的损失函数是什么? 数据集 我们将每一个电影称为样本,每个电影有两个特征x1、x2,其中x1表示该电影为恐怖片的程度,x2表…

测试开发 | 跨平台设备管理方案 Selenium Grid

Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它旨在提供一种在多…

SSL证书的类型

SSL证书类型分3类:DV OV EV.域名型(DV)SSL证书: 信任等级一般,只需验证网站的真实性便可颁发证书保护网站。企业型(OV)SSL证书: 信任等级强,须要验证企业的身份,审核严格&#xff0c…

VS2017基于CLR运行环境的VC++.NET界面编程(数据库为mysql)

此篇献给暨南大学珠海校区还在用VS2013编写VC++.NET界面程序的苦逼们! 文章分为四个部分: 1、运行环境的搭建 2、数据库的连接 3、控件介绍 4、程序编写示例 程序效果演示视频和程序源码及数据库文件附于文末。 一、运行环境的搭建 VS自从2013版本后淘汰VC++.NET,编写界面…

恒星物联河道流量监测站——雷达流量计

一、产品概述 河道流量监测站是一款采用一体化设计的河道流量智能监测设备,设备由河道雷达流量计、遥测终端机、太阳能供电系统组成。雷达流量计采用先进的K波段平面雷达技术,通过非接触的方式测量水体的流速和水位,根据内置的软件算法&…

TCP协议重点总结(万字总结-附实例)

文章目录前言一、网络的原生情况二、TCP协议2.1 TCP的特点2.2 TCP协议段格式2.3 TCP原理2.3.1 确认应答机制(可靠机制)2.3.2 序列号2.3.3 超时重传机制(可靠机制)2.3.4 连接管理机制(可靠机制)2.3.5 滑动窗…

RabbitMQ的简介和简单使用

同步调用异步调用MQRabbitMQ的使用docker拉取docker pull rabbitmq:3-management启动容器docker run \-e RABBITMQ_DEFAULT_USERitcast \ (账号)-e RABBITMQ_DEFAULT_PASS123321 \ (密码)--name mq \--hostname mq1 \-p 15672:156…

开发工具中SpringBoot使用外置Tomcat启动 (亲测有效)-第458篇

历史文章(文章累计450) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 SpringBoot添加外部jar包及打包(亲测有…

评测5款国内外免费远控,谁是最好用第一名?

远程控制应用不少人都有了解使用过,尤其是会常用电脑进行工作的群体,比如程序员、设计师、运维、文员等岗位。在隔离居家远程办公时,通过家里的手机、平板或电脑跨系统、跨设备操控公司所用的办公电脑,就能及时处理工作内容&#…

前端使用lottie-web,使用AE到处的JSON动画贴心教程

Lottie简介 官方介绍:Lottie是一个库,可以解析使用AE制作的动画(需要用bodymovie导出为json格式),支持web、ios、android、flutter和react native。 在web端,lottie-web库可以解析导出的动画json文件,并将其…

02_FreeRTOS移植

目录 获取FreeRTOS源码 FreeRTOS源码内容 FreeRTOS内核 Demo文件夹 Source文件夹 portable文件夹 FreeRTOS移植 移植步骤 移植详解 实验源码: 获取FreeRTOS源码 FreeRTOS官网:https://www.freertos.org/ FreeRTOS源码内容 FreeRTOS内核 Demo文件夹 Demo文件夹里面就…

《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享(15)

《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第四章:Protein Binding Leads to Biological Actions (蛋白质的结合会产生生物作用) 如果我们想要对一个结合过…

Java 泛型中的通配符详解

目录 1、如何定义和使用上界通配符? 2、如何定义和使用无界通配符? 3、如何定义和使用下界通配符? 4、如何使用通配符定义泛型类或接口之间的子类型关系? 5、通配符的捕获和辅助方法 6、通配符使用指南 在泛型代码中&#x…