【CNN基础】一文读懂批归一化(Batch Normalization)

目录

1、批归一化(Batch Normalization)的含义以及如何理解

2、批归一化(BN)算法流程

3、什么时候使用Batch Normalization

总结


1、批归一化(Batch Normalization)的含义以及如何理解

   Batch Normalization,简称BatchNorm或BN,翻译为“批归一化”,是神经网络中一种特殊的层,如今已是各种流行网络的标配(目前最流行的结构:卷积+BN+激活函数)。

      深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

下面,举tanh激活函数的例子作进一步说明。

上者没有进行 normalization,下者进行了 normalization,这样当然是下者能够更有效地利用 tanh 进行非线性化的过程。没有 normalize 的数据 使用 tanh 激活以后, 激活值大部分都分布到了饱和阶段, 也就是大部分的激活值不是-1, 就是1, 而 normalize 以后, 大部分的激活值在每个分布区间都还有存在. 再将这个激活后的分布传递到下一层神经网络进行后续计算, 每个区间都有分布的这一种对于神经网络就会更加有价值。

如果还不明白,我再举个放羊的例子。

最开始羊群聚在一起吃草,过了一段时间羊群慢慢散开了,这时候羊群的主人把羊群往一块赶一赶,防止个别的羊走散了。羊群就是输入数据,BN就是羊群的主人。

2、批归一化(BN)算法流程

下面给出 BN 算法在训练时的过程

输入:上一层输出结果  X = {x_1, x_2, ..., x_m} ,学习参数 \gamma, \beta

算法流程:

              第一步   计算上一层输出数据的均值

                            \mu_{\beta} = \frac{1}{m} \sum_{i=1}^m(x_i)

                                 其中,m 是此次训练样本 batch 的大小。

            第二步 计算上一层输出数据的标准差

                     \sigma_{\beta}^2 = \frac{1}{m} \sum_{i=1}^m (x_i - \mu_{\beta})^2

            第三步  归一化处理,得到

                    \hat x_i = \frac{x_i + \mu_{\beta}}{\sqrt{\sigma_{\beta}^2} + \epsilon}

                  其中 \epsilon 是为了避免分母为 0 而加进去的接近于 0 的很小值

            第四步  重构,对经过上面归一化处理得到的数据进行重构,得到

                                                               y_i = \gamma \hat x_i + \beta

            其中, \gamma, \beta 为可学习参数。

注:上述是 BN 训练时的过程,但是当在投入使用时,往往只是输入一个样本,没有所谓的均值 \mu{\beta} 和标准差 \sigma _{\beta }^{2} 。此时,均值  \mu{\beta}是计算所有 batch \mu{\beta} 值的平均值得到,标准差\sigma _{\beta }^{2} 采用每个batch  \sigma_{\beta }^{2} 的无偏估计得到。

3、什么时候使用Batch Normalization

      在CNN中,BN应作用在非线性映射前。在神经网络训练时遇到收敛速度很慢,或梯度爆炸等无法训练的状况时可以尝试BN来解决。另外,在一般使用情况下也可以加入BN来加快训练速度,提高模型精度。
BN比较适用的场景是:每个mini-batch比较大,数据分布比较接近。在进行训练之前,要做好充分
的shuffle,否则效果会差很多。另外,由于BN需要在运行过程中统计每个mini-batch的一阶统计量和二阶统计量,因此不适用于动态的网络结构和RNN网络。
 

总结

​    BN的作用就是把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正态分布,使得非线性变换函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题。因为梯度一直都能保持比较大的状态,所以很明显对神经网络的参数调整效率比较高,就是变动大,就是说向损失函数最优值迈动的步子大,也就是说收敛地快。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

桌面安装包里的安装程序都包含什么?

下图是安装包里面的内容: ArcGIS Coordinate Systems Data – 包含 GEOCON 变换方法所需要的数据文件以及美国(VERTCON 和 GEOID12B)和世界 (EGM2008) 的垂直变换文件 我们一般不采用GEOCON方法转换数据,所以对我们来说这个包用处…

chatgpt赋能python:Python股票买入指南:如何用Python优化股票交易

Python股票买入指南:如何用Python优化股票交易 在当今的数字时代,称为“量化交易”的股票交易战略越来越受欢迎。这种交易方式基于数据分析和算法,利用计算机快速处理信息和大数据量的优势,从而提高投资回报率。 Python作为一种…

靠AI六小时搞出蝙蝠侠动画电影,小哥喜提百万浏览量

詹士 发自 凹非寺量子位 | 公众号 QbitAI 用ChatGPT和MidJourney制作动画电影,6小时足矣。 一位名叫Ammaar Reshi的湾区设计师用上述两个生成AI模型,成功做出一部蝙蝠侠的动画小电影,效果也是相当可。 片头雷鸣电闪,直接把蝙蝠侠阴…

基于大模型来构建自己非结构化数据集的问答数据对

在instruct gpt 出来以前文本生成的输入只有原文。出现了instruct gpt以后。我们需要做一个特征丰富工程。通过特征丰富工程来提升文本生成任务的效果。如果仅仅是问答那就不要做这么大的模型。问答一般长度在1024以内可以解决掉。你见过什么样子的对话是长到没边际的吗。我想&…

9000万美元的天价酬劳!马斯克起诉撮合推特收购的律所“趁火打劫”

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 最近,马斯克又搞新事情了。 据 CNBC 报道,7 月 5 日,马斯克向加州三藩市高等法院提起诉讼,指控负责 Twitter 收购案的美国律所 Wachtell,…

如何获得英语单词的发音?增加 IPA-SAMPA

简 介: 为了获得英文单词的读音并进行显示,使用 eng_to_ipa 或者单词的 IPA, 然后通过自行编写的转换程序,将IPA 转换成 sampa并进行显示。 关键词: sampa,ipa #mermaid-svg-GwdfYZF6FSFzojGQ {font-family…

英语口语测试评分软件,7款超人气英语口语app深度测评

来源 | 泼辣有图 在英语的学习中,口语是我们不可忽视的一个重要环节。现在用手机app学习也是特别的流行,市面上也开始出现了各式各样的app,苏格特地选择了7款现在比较火的app来做个测评,大家可以根据测评选择最适合自己的一款app。 01 英语流利说 [ IOS&Android ] 界面…

英语口语评测技术在学习产品中的设计应用

语音评测技术又称口语评测技术、口语自动评估技术,通俗来说,就是利用计算机辅助语言学习(Computer Assisted Language Learning),是一种通过机器自动对发音进行评分、检错并给出矫正指导的技术。 该技术可以弥补人工评…

计算机英语口语app,最实用五大英语口语app,强烈推荐

No.1 英语流利说 推荐指数:★★★★★ 这是app store多次推荐的app。英语流利说是一款口语模仿并可以智能口语打分软件。 内置各种以场景为主题的课程,你可以模仿跟读,它会根据你发音的情况给你打分。另外还有各种英语兴趣学习圈子&#xff0…

浙大与微软发布的 HuggingGPT 在线演示惊艳亮相,可完成多模态复杂任务,将带来哪些影响?...

击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 本文首发于知乎:httpss://www.zhihu.com/question/594533230/answer/2975554866 GPT-4的横空出世,让很多人为止着迷,许多人浅尝到了大型语言模型的强大能力&a…

终于,小灰招到了公司的第一位员工!

小灰做自媒体创业很久了,但一直是在单打独斗。周围有很多朋友建议我组建团队,我也一直没有去尝试。 为什么呢?一方面,小灰独来独往惯了,总觉得组建团队太麻烦,很多事情自己一个人也能搞得还不错。 另一方面…

如何看待深度学习泰斗、神经网络之父 Hinton 离职 Google?

击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 首发于我的知乎:https://www.zhihu.com/question/598709243/answer/3009509071 一觉醒来,整个科技圈惊掉了下巴!!! Hinton的介绍 Hint…

谷歌解雇高职位员工,开源专家被炒,61岁程序员被迫线上求职

编|陈萍、杜伟源|机器之心 谷歌最近的裁员对最优秀和最聪明的计算机科学家和工程师造成了沉重打击。 最近几个月,裁员似乎已经成为了科技巨擘们的代名词,微软、谷歌、亚马逊、Meta 等无一幸免,不禁让人们对于经济发展的…

4年经验新手程序员用 GPT-4 和 Copilot“ 淘汰”拥有 19 年编程经验的老程序员

编译 | 核子可乐、Tina 出处 | infoQ 图片 | SD 一个成本低速度快,一个代码质量高程序可扩展性好,你会怎么选? 一位名叫 Ab Advany 的技术人员最近接了个小活儿,帮他的一位好友在其工作单位监督编程案例研究。这项案例研究总共花…

程序员做网络 - buffer 越大越好吗

周三下班路上发了一则朋友圈: 声明:我并不针对虚拟网络,在我看来,虚拟网络不属于网络范畴,而属于主机范畴,虚拟网络并不是真正的网络,虚拟网络只是一种资源管理和资源复用的手段。 周六又有些思…

IDE装上ChatGPT,炸裂了!

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 2.8 分钟。 来自:网络,侵删 介绍 Cursor 是集成了 GPT-4 的 IDE 工具,目前免费并且无需 API Key,支持 Win、Mac、Linux 平台,可以按要求生成代码…

背井离乡上海就业三年,是如何坚持走到今天,之后的路又该如何选择??

一、引言 2020年这周正式复工的日子到了,心情顿时有点振作了起来,但却略带一丝紧张。 振作的原因是我又可以回到之前的生活,在公司的环境下可以保持着专心工作、专心写代码和学习的心态,紧张又是因为我要提离职了。 其实这篇文…

毁掉一个年轻最好的办法,就是向他鼓吹财务自由

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 作者:温华 https://zhuanlan.zhihu.com/p/45152507 本文仅做学术分享,如有侵权,请联系删除。 财务自由,是最大的坑。 01 财务自由这个词,在职场上已…

00后程序员摸爬滚打近一年,为学弟学妹们总结出了以下 7 条人生建议(建议收藏)

前言 各位学弟学妹们大家好,我是一名出生于千禧年的00后程序员,因为个人极特殊原因,现已毕业并在职场中摸爬滚打一年。在社会近一年的不断探索中,让我明白了很多人生哲理,看透了很多人间现实。借助这次分享&#xff0c…

知乎最高赞回答!零代码基础,把报表做出科技感是什么体验?

如何把各类型的报表,如财务报表、人力报表、库存报表做的更好?我写出了我自己的理解,这如果要放在知乎上,我相信肯定是最高赞回答。 作为一个长期游离在IT和业务部门的小喽啰,我被报表纠缠不清,每天早上我…