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

2023-10-27

残差网络:

为什么需要残差网络:

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

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

从信息论的角度讲,由于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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

残差网络、Dropout正则化、Batch Normalization浅了解 的相关文章

随机推荐

  • C3P0连接池的断开自动重联功能

    问题背景 Java后台日志发现Error updating database Cause com mysql jdbc exceptions jdbc4 CommunicationsException Communications link
  • 跨域问题(CORS / Access-Control-Allow-Origin)

    1 前言 最近在项目中 调用Eureka REST接口时 出现了CORS跨越问题 Cross origin resource sharing 在此与大家进行分享 避免多走些弯路 项目前端 http localhost 9000 通过Ajax
  • python对Json文件的操作

    深层嵌套的Json 使用方式 传递的是json转成str后的json data finder JsonPathFinder json data 寻找所有的cursor字段 path list finder finder find all c
  • React:阻止默认事件

    在html页面中直接通过return false即可阻止默认事件 a href 点击 a 而在react中需要使用e preventDefault function PreventDe return a href console log 阻
  • C++11 -- lambda表达式

    文章目录 lamaba表达式的引入 lambda表达式语法 lamabda达式各部分说明 捕获列表说明 lamaba表达式底层原理探索 lamaba表达式的引入 在C 11之前 如果我们想对自定义类型Goods排序 可以根据姓名 价格 学号
  • git 代码不同版本的对比(IDEA)

    一 和远程文件进行对比 开发过程中我们经常需要在版本的基础上对比和上个版本的代码的区别 那 使用IDEA工具如何对比提交的不同的版本代码呢 打开我们项目的代码 以GIT版本控制为例 找到需要比较的类 右键点击类会弹出如下的选项 选择git
  • 攻防世界ctf-misc-新手联系区-1

    攻防世界ctf misc 新手联系区 1 签到题 比较简单 Most flags are in the form flag xxx for example flag th1s s a d4m0 4la9 flag th1s s a d4m0
  • excel求方差和标准差的函数_Excel标准差_计算函数Stdev和StdevP的使用方法

    Excel标准差 计算函数Stdev和StdevP的使用方法 Excel标准差核算共有六个函数 它们分别用于核算样本标准差和整体标准差 其间一些函数只能核算数值 另一些函数除能核算数值外还能核算文本和逻辑值 另外 假如要求核算满足指定条件的
  • STM32F1----TIM_GENERAL

    1 通用定时器PWM模式初始化流程 lt 1 gt 建立GPIO 时基 输出比较结构体 GPIO InitTypeDef GPIO InitStructure TIM TimeBaseInitTypeDef TIM TimeBaseStru
  • 软件项目管理 3.5.敏捷生存期模型

    前言 大家好 这节我们学习敏捷模型 前面介绍的几种生存期模型在实际应用过程中遇到的一些挑战 有时不能很好地适应需求的快速变化 为此软件界比较流行敏捷生命期模型 一 敏捷模型 敏捷宣言 价值观 原则 和通用实践之间的关系 敏捷模型符合敏捷宣言
  • CNN的重点整理

    1 常用的非线性激活函数 sigmoid tanh relu等等 前两者sigmoid tanh比较常见于全链接层 后者relu常见于卷积层 这里先简要介绍下最基础的sigmoid函数 btw 在本博客中SVM那篇文章开头有提过 sigmo
  • 染色——差分数组板子题

    问题描述 有编号为0到M 的 M 1 个格子 现在有N个操作 x y 表示将从x 到 y的格子染色 问一共有多少个格子被染色 输入 第一行两个整数 分别表示N和M 接下来有N行 每行两个整数 分别表示x和y 输出 输出一个整数 表示有多少个
  • [YOLO专题-12]:YOLO V5 - ultralytics支持的5种不同规模的模型类型比较

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122294915 目录 1 概述 2
  • VR引擎哪家强?主流VR开发引擎大起底

    转载自 http www hiavr com news tech 22826 html ref myread 在VR浪潮面前 Unreal Unity CryENGINE各大游戏引擎纷纷跟进 都决心抓住这个绝无仅有的机会 一举奠定自己的江湖
  • AutoML-A survey of the state-of-the art翻译+总结

    AutoML A Survey of the State of the Art Abstract 深度学习 DL 技术已经渗透到我们生活的各个方面 给我们带来了极大的方便 然而 为特定任务构建高质量的DL系统高度依赖于人类的专业知识 这阻碍
  • Docker 镜像基本命令操作

    目录标题 Docker 镜像基本命令操作 一 Docker 安装 二 镜像操作 Docker 镜像基本命令操作 一 Docker 安装 Docker要求运行在Centos 7上 要求系统为64位 系统内核版本3 10以上 1 uname a
  • 鸿蒙os更新名单,鸿蒙系统首批升级名单 华为鸿蒙系统升级机型名单时间表

    2021年6月2日 在这天华为公布了一直津津乐道的鸿蒙系统 并且推出了HarmonyOS2百机升级计划 一共是分为四个阶段来进行升级 很多朋友还不清楚升级的机型名单和时间都是多少 下面就来为大家分享一下 第一批升级名单 6月2日就可以升级
  • 单电源运放滤波器设计

    在很多情况中 为了阻挡由于虚地引起的直流电平 在 运放的输入端串入了电容 这个电容实际上是一个高通滤波器 在某种意义上说 像这样的单电源运放电 路都有这样的电容 设计者必须确定这个电容的容量必须要比电路中的其他电容器的容量大 100倍以上
  • 模拟开关选型、多路复用器选型

    只列举常用的 芯片均出自TI ADI SGM Nexperia等 国产只考虑CH 泌恒 个人整理 tb均能买到 如有纰漏欢迎纠错
  • 残差网络、Dropout正则化、Batch Normalization浅了解

    残差网络 为什么需要残差网络 残差网络的目的是为了解决深度神经网络在训练过程中遇到的退化问题 即随着网络层数的增加 训练集的误差反而增大 而不是过拟合 残差网络的优点有以下几点 残差网络可以有效地缓解梯度消失或爆炸的问题 因为跳跃连接可以提