【BN层的作用】论文阅读 | How Does Batch Normalization Help Optimization?

news2024/9/28 11:21:36

前言:15年Google提出Batch Normalization,成为深度学习最成功的设计之一,18年MIT团队将原论文中提出的BN层的作用进行了一一反驳,重新揭示BN层的意义
2015年Google团队论文:【here】
2018年MIT团队论文:【here】

How Does Batch Normalization Help Optimization?

原文观点

15年那篇论文里提出BN对网络起的作用是,减少了中间协变量偏移的影响 Internal Covariate Shift(ICS)。神经网络每一层在更新了权重之后的输出的分布是变化的,因此中间协变量也会有变化,通过将线性映射之后的输出“白化”,即控制均值为0,和方差恒为1,可以有效的将每一层网络学习的输入控制在一个相同的分布下,因此更有利于网络的学习。

反驳论点

这篇论文首先对原文引出的概念提出了两点质疑

第一,BN层的成功真的在于减少了中间协变量偏移吗?

Does BatchNorm’s performance stem from controlling internal covariate shift?

作者这里为了证明BN层的成功不在于减少了ICS,设计了三组参照实验,第一组不加BN,第二组加BN,第三组加了BN层之后又加上一个随机白噪声,有着不同的均值和方差,作者旨在通过第三组实验,模拟加了BN层但是ICS更高的场景

这三组实验在VGG的网络上的表现如下
在这里插入图片描述
可以看到,加了BN层但是ICS更高的第三组实验比,标准实验(不加BN)取得更好的训练效果,中间变量均值偏移和方差偏移的可视化如下,可以看到:“噪声”网络比标准网络的ICS更高
在这里插入图片描述
因此,这组实验可以证明,BN层可以帮助网络的训练,但并不在于ICS的减少,即不在于每一层的分布保持一致

作者紧接着提出了第二个质疑,即BN层的添加是否有减少ICS呢?即有没有一个更广泛的中间协变量偏移的概念(而不是均值方差的偏移),来证明与BN层网络的关系

第二,BatchNorm真的能减少ICS吗

Is BatchNorm reducing internal covariate shift?

本文作者认为,参数更新会导致这个损失函数最小化问题本身改变,这和原论文的作者直觉一致,但原论文作者从结果的分布来捕捉这样的现象,这没有触及到问题的本质。如果要挖掘这样的优化问题的本质,应该从优化参数的梯度去入手,因此提出了一种新的方式定义ICS,即用更新前和更新后的每一层参数的梯度的二范数来表示偏移。因此,梯度变化可以代表在每一次参数更新后,在这一层的损失图上的一个跨越
在这里插入图片描述
大概类似于这样的损失图上,如果ICS很大,在每一层的optimize landsacpe上的位置跨越就很大,导致梯度的变化很大
在这里插入图片描述
而结果也是令人震惊,加了BN层的ICS反而更大了,如下图右边
在学习率很大的时候,梯度的变化都是震荡得比较剧烈的,在学习率比较小的时候,不加BN的标准网络的梯度变化非常小(体现在接近1的余弦角度和很小的l2距离)
在这里插入图片描述
(这里我的理解是,由于不加BN的优化landscape不够光滑,如果梯度变化过大会导致掉到局部最优或者是进入平坦区域)BN使优化landscape变光滑了,每一次调整的梯度变大,因此也很快收敛

BN为什么工作

作者给出直接的观点,加了BN重新调整了网络的训练参数,使优化的landscape变得光滑
在这里插入图片描述
由于没法进行全局的landscape的可视化,作者通过几个参数来代表优化landscape的光滑程度
损失函数的变化
梯度的变化
β平滑度
在这里插入图片描述

在这里插入图片描述
在VGG和DNN中加了BN都有改善

同时,作者还发现,BN不是唯一可以进行平滑optimization landscape的方式,再进行了不同正则化之后,网络的损失和梯度也能实现平滑
在这里插入图片描述
在这里插入图片描述

理论分析

作者还给出了BN为什么能实现平滑optimization landsacpe的公式推导
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

很早期的标杆性论文,对理解BN层的作用很有帮助

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

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

相关文章

谷粒学苑第六天

谷粒学苑第六天 https://hyy-0212.oss-cn-hangzhou.aliyuncs.com/%E5%A4%B4%E5%83%8F.jpg AccessKey看私密文件 后端: idea导入项目后文件颜色不对解决方法 解决:https://blog.csdn.net/m0_37735176/article/details/88916844 后端 私有转为公有&am…

C语言——字符串函数与内存函数

目录 前言 一. 函数介绍 1.1 strlen 1.2 strcpy 1.3 strcat 1.4 strcmp 1.5 strncpy 1.6 strncat 1.7 strncmp 1.8 strstr 1.9 strtok 1.10 strerror 1.11 字符分类函数 1.12 memcpy 1.13 memmove 1.14 memcmp 二. 函数的模拟实现 2.1 模拟实现strlen 2.2 模拟实现st…

阿里测试员晒薪资条,看完真的扎心了...

前几天,有位老粉私信我,说看到某95后学弟晒出阿里的工资单,他是真酸了…想狠补下技术,努力冲一把大厂。 为了帮到他,也为了大家能在最短的时间内做面试复习,我把软件测试面试系列都汇总在这一篇文章了。 …

Windows10 把两张图片合并成一张图片

Windows10把两张图片合并成一张图片 文章目录Windows10把两张图片合并成一张图片1. 背景2. "画图"实现多图拼接1. 背景 相比截图功能,在 Google 的 Chrome 浏览器上,整页截屏功能仍需要安装额外的插件才能完成,这一点 微软的 bing…

【K3s】第18篇 详解 Kubernetes 调度器工作原理

目录 1、概述 2、kube-scheduler 3、kube-scheduler 调度流程 4、支持两种方式配置调度器的过滤和打分行为 4.1 调度策略 4.2 调度策略 5、总结 1、概述 在 Kubernetes 中,调度 是指将Pod放置到合适的节点上,以便对应节点上kubelet能够运行这些 P…

ChatGPT来临,架构师何去何从?

你好,我是李运华。 最近科技圈大火的事件就是ChatGPT的全球火热流行。这款由OpenAI公司在2022年11月底推出的聊天机器人,创造了史上消费应用最快达成1亿用户的历史,在推出仅仅两个月后,月活跃用户估计已达1亿,成为历史…

dbever连接kerberos认证的hive

文章目录一、本地安装kerberos客户端二、本地kerberos客户端登录三、dbever连接hive一、本地安装kerberos客户端 下载地址:https://web.mit.edu/kerberos/dist/index.html 安装:下一步或者自定义安装即可 安装后会自动生成配置文件:C:\Pro…

强化学习RL 01: Reinforcement Learning 基础

目录 RL理解要点 1. RL数学基础 1.1 Random Variable 随机变量 1.2 概率密度函数 Probability Density Function(PDF) 1.3 期望 Expectation 1.4 随机抽样 Random Sampling 2. RL术语 Terminologies 2.1 agent、state 和 action 2.2 策略 policy π 2.3 奖励 reward …

利用GPT-3 Fine-tunes训练专属语言模型

利用GPT-3 Fine-tunes训练专属语言模型 文章目录什么是模型微调(fine-tuning)?为什么需要模型微调?微调 vs 重新训练微调 vs 提示设计训练专属模型数据准备清洗数据构建模型微调模型评估模型部署模型总结什么是模型微调&#xff0…

cesium: 绘制线段(008)

第008个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中绘制线段,左键点击开始绘制,右键点击取消绘制 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共139行)相关API参考:专栏目标示例效果 配置方式 1)…

Win11的两个实用技巧系列清理磁盘碎片、设置系统还原点的方法

Win11如何清理磁盘碎片?Win11清理磁盘碎片的方法磁盘碎片过多,会影响电脑的运行速度,所以需要定期清理,这篇文章将以Win11为例,给大家分享的整理磁盘碎片方法相信很多用户都会发现,随着电脑使用时间的增加&#xff0c…

一文了解 requestAnimationFrame

requestAnimationFrame 的基本使用 requestAnimationFrame 是什么 window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏…

想要实现无人机控制算法二次开发,一定不要错过这个matlab工具包

什么是Matlab工具包 Matlab工具包提供了无人机位置环控制算法、Simulink示例程序,通过Matlab ROS Toolbox建立Matlab(Simulink)与ROS之间的通信链路,Prometheus项目中将提供转为Matlab设计的控制接口,同时将继承Prome…

Scala-特质

特质 特质的混入用法 特质的叠加 特质和抽象类的区别 特质自身类型 特质 Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同 的特质(特征)时,就可以…

ELK + Kafka 测试

配置file beat输出到 Kafkalogstash服务器从kafka获取数据并输出到es集群在es集群上查看索引kibana界面添加索引查看数据1.配置file beat输出到 Kafka 1.1 Filebeat机器配置数据采集和输出目标 做好域名解析 # vim /usr/local/filebeat/filebeat.yml # 修改输出目标为kafka…

CRM客户管理系统哪个好用?盘点前十名!

CRM客户管理系统排行?盘点前十名! CRM客户管理系统是一种集成多种功能的软件系统,可以帮助企业跟进和管理客户关系、提高销售业绩、优化营销策略等。对于企业来说,选择一款适合自己的CRM系统非常重要,因为它能够直接影…

使用kotlin编写html dsl框架

前排提醒,这个框架就是我写着玩的,如果您已经会使用vue或其他前端框架,这篇文章可能对您没有什么意义。即使您不会如上提到的框架,也不要对该框架报有过高的期待,该框架更多的是,我自己的自娱自乐。 这里还…

新闻格式的演变及其对我们消费新闻方式的影响

这些年来,我们消费新闻的方式发生了翻天覆地的变化,从印刷报纸和广播新闻时代到 24 小时新闻频道和数字新闻平台时代。随着新闻媒体的发展,新闻呈现的格式也发生了变化。今天,新闻格式在新闻如何被受众传播和理解方面起着至关重要…

工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪

焊接已发展为制造业中的一种重要的加工方法,广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂,焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时,…

不到3天给公司省下近10万,低代码是真给老板省钱

早上领导开组会提了个似曾相识的需求,客户想要一个点餐系统。需求是用户登录后可以直接享有会员权益,还要提供外卖管理系统、配送系统、数据中台、BI数据分析、系统托管等O2O解决方案。 这是餐饮业典型的业务场景,如果缺乏必要的数字化工具支…