首页 > 其他分享 >为什么要归一化?

为什么要归一化?

时间:2023-06-27 16:24:57浏览次数:40  
标签:为什么 训练 梯度 BN 学习 归一化 如上图

为什么要归一化?

BN是Batch Normalization的缩写,该方法的代表性论文是“Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”,论文中关于BN的解释是训练深度神经网络非常复杂,因为在训练过程中,随着先前各层的参数发生变化,各层输入的分布也会发生变化,图层输入分布的变化带来了一个问题,因为图层需要不断适应新的分布,因此训练变得复杂,随着网络变得更深,网络参数的细微变化也会放大。

由于要求较低的学习率和仔细的参数初始化,这减慢了训练速度,并且众所周知,训练具有饱和非线性的模型非常困难。我们将此现象称为内部协变量偏移,并通过归一化层输入来解决该问题。

归一化

如上图中的左图所示,由于两个数据不在同一范围,但它们是使用相同的学习率,导致梯度下降轨迹沿一维来回振荡,从而需要更多的步骤才能达到最小值。且此时学习率不容易设置,学习率过大则对于范围小的数据来说来回震荡,学习率过小则对范围大的数据来说基本没什么变化。如上图中的右图所示,当进行归一化后,特征都在同一个大小范围,则loss landscape像一个碗,学习率更容易设置,且梯度下降比较平稳。

我的理解就是看图,防止不同维度的尺度不一致,在梯度下降的时候被尺度大的维度主导。

标签:为什么,训练,梯度,BN,学习,归一化,如上图
From: https://www.cnblogs.com/daiSir/p/17509188.html

相关文章

  • 为什么要研究籼稻和粳稻亚种根系微生物群的差异?
    研究籼稻和粳稻亚种根系微生物群的差异有助于我们更好地了解水稻根系微生物群落的组成和功能。这些微生物与水稻植株有着密切的相互作用,能够影响水稻的生长发育、养分吸收和抗病能力。通过比较不同亚种根系微生物群的差异,我们可以发现哪些微生物在不同亚种中起到重要作用,为水......
  • 08异步短信发送,注册功能,补充【1.为什么要写media才能访问,2.debug作用,3.ALLOWED_HOSTS
    1异步发送短信#原来的发送短信,是同步 -前端输入手机号---》点击发送短信---》前端发送ajax请求----》到咱们后端接口---》取出手机号----》调用腾讯发送短信---》腾讯去发短信---》发完后----》回复给我们后端发送成功---》我们后端收到发送成功---》给我们前端返回发送成功......
  • 为什么 Keil 中C/C++选项要 define STM32F10X_LD/MD/HD
    原因1:配置相应的中断向量表 原因2:配置相应的寄存器  总结原因:因为所有的stm32f10x 系列的芯片都会用到stm32f10x.h 这个头文件,但是问题的所在是:每种芯片的配置不同(中断向量个数、寄存器个数等等)因此宏条件编译#if!defined 判断这个宏(这个宏就是STM32F10X_LD......
  • 【网络】【HTTP】既然有 HTTP 协议,为什么还要有 WebSocket?
    1  前言平时我们打开网页,比如购物网站某宝。都是点一下「列表商品」,跳转一下网页就到了「商品详情」。从HTTP协议的角度来看,就是点一下网页上的某个按钮,前端发一次HTTP请求,网站返回一次HTTP响应。这种由客户端主动请求,服务器响应的方式也满足大部分网页的功能场景。但......
  • 03 | 事务隔离:为什么你改了我还看不见?
    03|事务隔离:为什么你改了我还看不见?隔离性与隔离级别当数据库上有多个事务同时执行的时候,就可能出现脏读(dirtyread)、不可重复读(non-repeatableread)、幻读(phantomread)的问题,为了解决这些问题,就有了“隔离级别”的概念。SQL标准的事务隔离级别包括:读未提交(readuncommitt......
  • QT为什么只能由主线程操作UI
    QT为什么只能由主线程操作UI背景QT中,每次子线程去更新Ui都要通过信号槽去刷。其实不光是QT,很多GUI程序框架都是这么规定的。主线程:主线程是唯一允许创建QApplication或者QCoreApplication对象的,并且调用exec()启动事件循环的线程。原因直接原因:UI线程负责和用户交互,因此不能......
  • 记录--强制缓存这么暴力,为什么不使用协商缓存
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前段时间在看面经的时候,发现很多份面经中都被问到了强缓存和协商缓存。因此我觉得有必要写一篇文章来好好聊聊这两者。强缓存和协商缓存浏览器缓存是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问......
  • Java学习之mysql为什么可以实现可重复读
    什么是mvccMysql的隔离级别是‘可重复读’,即:事务A在读到一条数据之后,此时事务B对该数据进行了修改操作并提交,那么事务A再读该数据,依然还是原来的内容。它的实现原理是MVCC(Multi-VersionConcurrencyControl)多版本并发控制,MVCC保证当前查询为快照读,所以不受其他事务影响。什......
  • 为什么js引擎是单线程?
    为什么js引擎是单线程?js的主要用途是与用户互动,以及操作DOM,这决定它只能是单线程。例:一个线程要添加DOM节点,一个线程要删减DOM节点,容易造成分歧。为了更好使用多CPU,H5提供了webWorker 标准,允许js创建多线程,但是子线程受到主线程控制,而且不得操作DOM。说说进程与线程的区别与......
  • 「杂文」身为 OIer 的我要在考试前 5 天速通学了一点的《大学物理 C(上)》,我为什么会做
    写在前面欧内的手,好汉!这里是一点大物刷题时的整理,不是知识点的详细梳理。因为笔记早就整理完了,做题的电子就懒得记在本子上了,也为了便于翻阅,于是简单记在这里。因为大物老师实在是太呃呃了,这学期课翘了不少,就算是在场也完全没听过。好像在大物上干的最多的是养进王。说到进......