残差网络、Dropout正则化、Batch Normalization浅了解

news2024/11/15 22:20:58

残差网络:

为什么需要残差网络:

残差网络的目的是为了解决深度神经网络在训练过程中遇到的退化问题,即随着网络层数的增加,训练集的误差反而增大,而不是过拟合。残差网络的优点有以下几点:

  • 残差网络可以有效地缓解梯度消失或爆炸的问题,因为跳跃连接可以提供一条更短的反向传播路径,使得梯度可以更容易地流动到较浅的层。
  • 残差网络可以提高网络的表达能力,因为残差块可以近似任何复杂的函数,而且可以通过增加网络深度来提高模型性能,而不会降低训练效率。
  • 残差网络可以更容易地优化,因为残差块可以看作是对恒等映射的微小扰动,这样可以使得网络的初始化更接近于最优解,而且可以使用较大的学习率来加速收敛。

从信息论的角度讲,由于DPI(数据处理不等式)的存在,在前向传输的过程中,随着层数的加深,Feature Map包含的图像信息会逐层减少,而ResNet的直接映射的加入,保证了 L+1 层的网络一定比 L层包含更多的图像信息。

基于这种使用直接映射来连接网络不同层直接的思想,残差网络应运而生。

什么是残差网络:

残差网络是一种深度神经网络,它的特点是在每个卷积层后面添加了一个跳跃连接,使得输入可以直接加到输出上,形成一个残差块。

残差块:

残差网络是由一系列残差块组成的(下图)。一个残差块可以用表示为:

 残差块分成两部分直接映射部分和残差部分。 h(xl) 是直接映射,反应在图1中是左边的曲线; F(xl,Wl) 是残差部分,一般由两个或者三个卷积操作构成,即图1中右侧包含卷积的部分。

上图中的Weight在卷积网络中是指卷积操作,addition是指单位加操作。

在卷积网络中, xl 可能和 xl+1 的Feature Map的数量不一样,这时候就需要使用 1×1 卷积进行升维或者降维(下图)。这时,残差块表示为:

 其中 h(xl)=Wl′x 。其中 Wl′ 是 1×1 卷积操作,但是实验结果 1×1 卷积对模型性能提升有限,所以一般是在升维或者降维时才会使用。

Dropout正则化:

为什么要正则化:

在深度学习领域中,众所周知所有的神经网络都可能会发生过拟合的现象,即模型容易过拟合。而过拟合通过采集海量数据,并配合Dropout正则化等方法也可以有效避免。

什么是正则化:

Dropout就是在每层神经网络中随机去掉一部分的神经元,在训练过程中,被去掉的神经元不参与前向传播和后向传播,即该神经元对神经网络的权重更新没有贡献,从而减少了参数之间的共适应,提高了网络的泛化能力。

Dropout正则化的作用有以下几点:

  • Dropout正则化可以有效地缓解梯度消失或爆炸的问题,因为它降低了网络的复杂度,使得梯度可以更容易地流动到较浅的层。
  • Dropout正则化可以增强网络的表达能力,因为它相当于对网络进行了集成学习,即每次训练时使用的是网络的一个子集,而测试时使用的是所有子集的平均,这样可以提高网络的鲁棒性和稳定性。
  • Dropout正则化可以更容易地优化,因为它相当于对网络添加了一个正则项,即每个权重乘以一个伯努利分布的随机变量,这样可以防止权重过大或过小,从而避免过拟合或欠拟合。

Batch Normalization(批量归一化):

为什么需要Batch Normalization:

深度学习中,在训练过程中,网络层数增多,权重在不断更新,导致激活层输出(输入)的分布会一直变化,可能无法一直保持zero mean unit variance分布,会有梯度消失和梯度爆炸的问题产生。这时候可以通过Batch Normalization也可以避免。

什么是Batch Normalization:

Batch Normalization是一种用于深度神经网络的技术,它可以加速网络的训练,提高模型的泛化能力,防止梯度消失或爆炸,减少对初始化和正则化的依赖。Batch Normalization的原理是对每个mini-batch中的数据进行归一化处理,使得每个神经元的输入服从标准正态分布,然后再通过可学习的缩放和平移参数来恢复数据的原始分布。Batch Normalization的作用有以下几点:

  • Batch Normalization可以降低数据之间的相关性,减少内部协变量偏移,使得每层的输入分布更加稳定,从而加快网络的收敛速度。
  • Batch Normalization可以增强网络的表达能力,因为它相当于对每层的输入添加了噪声,增加了数据的多样性,起到了一定的正则化作用,防止过拟合。
  • Batch Normalization可以缓解梯度消失或爆炸的问题,因为它使得每层的输入分布接近标准正态分布,避免了数值过大或过小导致的梯度变化剧烈。
  • Batch Normalization可以减少对初始化和正则化的依赖,因为它使得网络对权重和偏置的初始值不敏感,也使得网络可以使用更大的学习率和更少的Dropout。

参考文章:详解残差网络 - 知乎

https://www.baidu.com/link?url=7YpsN6GhUbDwH2vaLjI6GVLC7zjN-OSt1kmbjdNtsozBOf6nOZeZe5T7m529lLFR8bTvwaE32Hi3gPU5cY8FP_&wd=&eqid=aa78e975000062e40000000664ed64bc

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

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

相关文章

上门服务系统|上门服务软件开发|上门服务改善生活质量的便捷之选

随着现代生活的快节奏和社交距离的需求,我们越来越渴望能够以更便捷、高效的方式获得我们所需的服务。为了满足这一需求,我们公司开发了一款创新的上门服务系统,旨在将便利与质量相结合,为您提供无与伦比的体验。 无论您是忙碌的白…

惠普NS1020激光打印机碳粉警告提示及添加碳粉方法

本文也适用于惠普NS1020、1020c 和 1020w 系列打印机。 通过碳粉量指示灯检查碳粉量。 如果碳粉量是满的或指示器显示 1,可选择添加一个碳粉或者忽略不添加。如果碳粉量指示灯显示 2或 2 和碳粉量警告感叹号图标 ,则表示碳粉量不足或严重不足&#xff0…

ORACEL 账户被锁定、无监听

现象1:oracle数据库账号被锁定 OA页面情况:OA系统可以正常登录,但是表单查不出数据 PL SQL 连接情况:有明确的提示,oracle账号被锁。 Tomcat控制台情况:有明确提示账号被锁 解决办法 在命令行中输入就可…

批量身份证图片转Excel,核验真伪,保留头像,只需一款软件

你是否曾经遇到过需要将大量员工的身份证图片转化为Excel表格的情况?这种情况可能会让你感到无从下手。但是,现在有了金鸣表格文字识别电脑客户端,一切都将变得轻松便捷。 首先,你只需要前往金鸣识别官网下载并安装金鸣表格文字识…

企业网络设备监控工具

如今,组织在运营业务方面面临着日益激烈的竞争和日益复杂的问题,在这种情况下,拥有以最高效率运行的网络基础设施不再是奢侈品。相反,对于任何希望在各自领域成为领跑者的组织来说,这是必要的。网络基础设施中每个网络…

python爬虫14:总结

python爬虫14:总结 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好…

查看edge浏览器插件的安装位置

C:\Users\zhang\AppData\Local\Microsoft\Edge\User Data\Default\Extensions 这是我的目录,把中间的的替换成你的电脑用户名就可以了 你也可以先输入目录的部分名称,下拉找对应的目录

docker部署前端项目保姆级教程

本地启动docker(有不会启动的吗?下载docker(小海豚)双击起来就行) 准备阿里云账号(免费) 没有就去注册一个,记住密码后面要用到 官网地址:阿里云登录 - 欢迎登录阿里云…

基于OpenCV+LPR模型端对端智能车牌识别——深度学习和目标检测算法应用(含Python+Andriod全部工程源码)+CCPD数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境OpenCV环境Android环境1. 开发软件和开发包2. JDK设置3. NDK设置 模块实现1. 数据预处理2. 模型训练1)训练级联分类器2)训练无分割车牌字符识别模型 3. APP构建1)导入OpenCV库…

SAP_ABAP_OLE_EXCEL批导案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、OLE_EXCEL批导 1.1 下载按钮 1.2 选择EXCEL上传,解析EXCLE数据, Call屏幕。 1.3 实现效果 1.4…

git学习笔记 | 版本管理 - 分支管理 - 常见场景

文章目录 git学习笔记Git是什么仓库常见的命令commit 备注规范在文件下设置git忽略文件 .gitignore 版本管理git log | git reflog 查看提交日志/历史版本版本穿梭 git resetgit reset HEAD <file> git checkout -- fileName 丢弃工作区的修改git revertGit恢复之前版本的…

IP对讲终端SV-6005带一路2×15W或1*30W立体声做广播使用

IP对讲终端SV-6005双按键是一款采用了ARMDSP架构&#xff0c;接收网络音频流&#xff0c;实时解码播放&#xff1b;配置了麦克风输入和扬声器输出&#xff0c;SV-6005带两路寻呼按键&#xff0c;可实现对讲、广播等功能&#xff0c;作为网络数字广播的播放终端&#xff0c;主要…

《孤注一掷》背后的技术对抗

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 朱峰 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦midjourney 产品统筹 / bobo 录音间 / 声湃轩北京站 这两天主播们都看完了《孤注一掷》&#xff0c;抛开剧情里面的细节不讲&#xff0c;这部“反诈宣传片”给了大家…

从C过渡到C ++的3个理由

几十年来&#xff0c;嵌入式软件工程师之间一直在争论他们应该使用C还是C 。根据2020年嵌入式市场调查&#xff0c;在大多数情况下&#xff0c;微控制器制造商提供的软件都以C语言提供&#xff0c;实际上&#xff0c;有56&#xff05;的嵌入式软件是用C语言编写的。但是&#x…

基于社交网络算法优化的BP神经网络(预测应用) - 附代码

基于社交网络算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于社交网络算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.社交网络优化BP神经网络2.1 BP神经网络参数设置2.2 社交网络算法应用 4.测试结果&#xff1a;5…

显示GPU进程所属docker 容器

一台服务器&#xff0c;每个人在上面run一个容器&#xff0c;跑各自的代码&#xff0c;虽然通过nvidia-smi可以看到每个进程占用的GPU&#xff0c;但是不好找进程对应的容器id&#xff0c;就没法确认到底是谁占用了较多GPU。 常规操作 通过 nvidia-smi 查看进程占用GPU情况&a…

[C/C++]指针详讲-让你不在害怕指针

个人主页&#xff1a;北海 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C/C&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;大家一起学习交流&#xff01;&#x1f9…

【Vuex状态管理】Vuex的基本使用;核心概念State、Getters、Mutations、Actions、Modules的基本使用

目录 1_应用状态管理1.1_状态管理1.2_复杂的状态管理1.3_Vuex的状态管理 2_Vuex的基本使用2.1_安装2.2_创建Store2.3_组件中使用store 3_核心概念State3.1_单一状态树3.2_组件获取状态3.3_在setup中使用mapState 4_核心概念Getters4.1_getters的基本使用4.2_getters第二个参数4…

c++ boost::json

Boost社区12月11日发布了1.75版本&#xff0c;在之前&#xff0c;​​Boost使用Boost.PropertyTree解析​​JSON​​​&#xff0c;​​XML​​​&#xff0c;​​INI​​​和​​INFO​​​格式的文件。但是由于成文较早及需要兼容其他的数据格式&#xff0c;相比较于其他的​…

怎么自学嵌入式?

嵌入式开发&#xff0c;简直就是一个无穷无尽的知识海洋&#xff01;你永远都学不够&#xff01;当然啦&#xff0c;这并不意味着你得花个三五年才能掌握。如果你只是想找嵌入式开发的工作&#xff0c;其实只需花三五个月有针对性地学习&#xff0c;就可以完全hold住。本文就给…