深度学习基础—Batch Norm

news2024/9/20 16:53:01

        对于一个神经网络我们知道,归一化输入特征是加速网络训练的技巧之一,因为归一化后,损失函数的图像就会由狭长变得更圆,那么这是否启发我们,在深度更深模型中,对各层的输出进行归一化,有益于下一层的学习?毕竟上一层的输出是下一层的输入。这就是Batch Norm的核心作用。

        由于每一层的参数更新后,对于同一输入,输出的分布就会发生改变(这称之为Covariate shift:内部协变量偏移),这带来的影响是下一层需要不断适应上一层输出的分布,从而导致下一层与上一层之间的联系紧密(有点过拟合的意思),通过归一化就可以加强层与层之间的独立性,从而加速网络的学习。

1.Batch Norm的计算方式


        在此先讲讲Batch Norm和Mini-batch之间的关系。Mini-batch是Mini-batch梯度下降法的训练集的最小划分子集,而Batch Norm需要在Mini-batch上运行,即需要计算每一个Mini-batch的均值、方差,然后进行归一化。

深度学习基础—梯度问题与Mini-batch 梯度下降icon-default.png?t=N7T8http://t.csdnimg.cn/EBmIH

(1)计算Mini-batch 的均值

        其中,m为Mini-batch 上样本的数量。

(2)计算Mini-batch 的方差

        其中,m为Mini-batch 上样本的数量,注意是先平方再求和。

(3)归一化

        其中,z[l]是本层的输入经过w和b的计算结果,分母的ℇ是很小的一个数,防止分母为0。通过这样可以将z[l]归一化,从而化为均值为0,方差为1的分布。

(4)线性组合

        其中,γ和β是网络的参数,即和w、b一样需要经过训练更新值,从而适应网络。当γ=步骤(3)的分母,β=μ时,本步的结果是一个恒等式。

        为了加强网络的学习能力,使用这两个参数来改变分布的平均值。如果没有这两个参数,那么相当于所有的都暴力归一化,而我们知道类似sigmoid激活函数的图像如下,在靠近0的位置图像近似等于线性函数,那么网络的表达能力就会大大减弱,因此通过这两个网络参数加强网络的学习能力。

2.Batch Norm在网络中的具体应用

        如上图所示的网络,在没有进行归一化前,每层隐含层的计算是在下图中去除红框的剩余部分,g(z)是激活函数。在权重的线性组合后,激活函数前添加归一化的计算(为什么不在激活函数后添加,这点一直饱受争议,这里选择这种方式,无论是哪种方式,只要能对网络训练有帮助,就是不错的方法)。

        对于每一层隐含层,向前传播就是按照上图的流程进行计算,直到计算出损失,向后传播的过程中,可以使用优化算法:mini-batch梯度下降、动量梯度下降、Adam等等,对参数γ和β进行和w、b一样的更新方式。这里简化流程,使用mini-batch梯度下降,算法流程如下:

for i = 1......t{
    对X{i}向前传播
        在每个隐含层计算z[l],并用BN归一化
    计算带有正则项的损失函数
    向后传播,计算dw、db、dγ、dβ
        更新参数:w:=w-a*dw;
                 b:=b-a*db;
                 γ:=γ-a*dγ;
                 β:=β-a*dβ;
}

        实际上,在网络的训练过程中,参数b和参数β发生了冲突,两者的作用相似。因为z=w*x+b,计算的平均值μ中就包含常数b,那在归一化步骤(3)中分子又减去了平均值,即减去了b。同时在步骤(4)中添加了参数β,此时b不发挥作用,发挥作用的是β。因此,实际训练中,为了减少参数个数,可以选择去除参数b,那么在优化算法是也可以不再优化这个参数。

3.Batch Norm在测试集的具体应用

        在测试集中,为了预测某个样本的输出结果,需要单独处理样本。这样就引入一个问题,单个样本的均值和方差没有意义,因此使用Batch Norm起不了作用,这就需要我们估计平均值和方差,于是可以使用指数加权移动平均值算法来进行估计。

        在训练网络的时候,我们可以运用指数加权移动平均值获得整个训练集的各层平均值μ[t][l]、方差σ[t][l]和z[t][l](t为Mini-batch的序号,l为层的序号),在测试的时候,用这些估值计算z[t][l]norm,从而计算测试样本的输出。这样做的本质其实是实现测试集和训练集来自同一分布的要求,因为在训练集都实现了Batch Norm,所以也要在测试集实现Batch Norm。        

4.如何理解Batch Norm

        (1)Batch Norm可以对每一层的输出进行归一化,这样每一层的输入就更加稳定,从而可以选择较大的学习率加速网络的训练。

        (2)减少过拟合风险,提高模型泛化能力,同时让各层保持相对独立,提高学习能力。这就像抄作业,学霸每次给的作业如果详细程度不一样,比如这次给详细版,下次只给有关键词的,那么学渣就会特别依赖学霸,因为学渣无法从抄作业中获取如何解题的思路。但是如果学霸每次都给学渣详细版或简略版作业,由于作业风格一致,学渣就能从多次作业中找到作业的风格(至少可以学会些如何解题的规律或模版),从而提高学渣独立思考的能力。

        (3)类似dropout,dropout随机消除神经元,从而为网络添加噪音,让神经元不再相互依赖。而Batch Norm由于对均值的缩放和在mini-batch上计算,也会为网络添加噪音,同时让各层相对独立,不再相互依赖。因此有一定的正则化效果,减轻过拟合。但是不要把这种方法当做正则化的手段,而是加速学习的技巧。

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

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

相关文章

PythonStudio 控件使用常用方式(三十一)TUpDown

PythonStudio是一个极强的开发Python的IDE工具,官网地址是:https://glsite.com/ ,在官网可以下载最新版的PythonStudio,同时,在使用PythonStudio时,它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

从零到一:Spring Boot 与 RocketMQ 的完美集成指南

1.Rocket的概念与原理 RocketMQ 是一款由阿里巴巴开源的分布式消息中间件,最初用于支持阿里巴巴的海量业务。它基于发布-订阅模型,具备高吞吐、低延迟、高可用和强一致性的特点,适用于消息队列、大规模数据流处理等场景。以下是对 RocketMQ …

docker连接宿主机redis,提示Connection refused

目录 一、测试环境 二、问题现象 三、问题总结 一、测试环境 centos 7 redis-5.0.14 docker-26.0.1 二、问题现象 服务器重启后docker连接宿主机redis,提示Connection refused Reconnecting, last destination was /172.25.xxx.x:6379 …

4种回收站数据恢复方法,让数据快速恢复!

回收站里的重要数据怎么突然就消失得无影无踪了?别慌!别慌!在这里,为您精心准备了4种回收站数据恢复方法,这五种回收站数据恢复方法都是经过实际测试的,完全可以帮我们找回那些被删除的数据! 回…

高杰:远程工作8年,平衡了工作与生活,但仍然对收入感到焦虑

这是《开发者说》的第14期,本期我们邀请的开发者是高杰,毕业于上海交大,因拆迁搬家到了郊区,忍受不了长时间的通勤,开始走上远程工作的道路,至今从事远程开发8年有余,他应该是国内最早从事远程工…

C语言提高(2)

calloc void *calloc(size_t namber,size_t size); 功能:在内存动态存储区中分配namber块长度为size字节的连续区域。calloc自动将分配的内存置0 namber:所需内存单元数量 size:每个内存单元的大小(单位:字…

第二证券:融券余额,较历史高位下降逾九成!

在多种要素归纳影响下,近年融券余额和转融券余额持续下降,其间融券余额已较前史高位下降逾九成,而转融券余额年内降幅也已逾越九成。 有专家在接受证券时报记者采访时认为,融券和转融券余额大幅减少减轻了商场兜销压力&#xff0…

OV SSL证书:让您的网站与众不同

在当今高度竞争的数字世界中,拥有一个安全、可信的网站对于吸引和保留客户至关重要。组织验证(OV)SSL证书不仅可以为网站提供强大的加密保护,还能通过验证组织的真实身份来增强用户的信任感。本文将探讨OV SSL证书如何帮助您的网站…

背包问题有前提

前言&#xff1a;这个有大前提的背包感觉不能用二进制拆分&#xff0c;不然搞不清楚 注意三维的顺便&#xff0c;第一维度是枚举物品&#xff0c;第二维度是倒序枚举空间&#xff0c;第三维度是枚举数量 题目地址 #include<bits/stdc.h> using namespace std;#define …

XSS-Jquery.html()+DOM破坏

目录 靶场网址&#xff1a;​ https://xss.pwnfunction.com/challenges/ww3/ ​ 分析代码&#xff1a; Jquery.html()解析原理&#xff1a; DOM-clobbering JS作用域&作用域链 ​编辑 靶场网址&#xff1a;​ https://xss.pwnfunction.com/challenges/ww3/ ​ 分析代…

全液冷服务器革命:CPU、内存、PCIe高效散热新方案

在国家十四五规划大力发展数字经济的背景下&#xff0c;数据中心作为算力的核心载体&#xff0c;其基础设施成为支撑数字经济的“数字底座”&#xff0c;但同时也面临巨大的碳排放压力。随着芯片与服务器功耗的上升&#xff0c;单机柜功率密度不断增大&#xff0c;传统风冷散热…

RF自动化环境安装+自动化实例解析

RF定义&#xff1a; 通用型的 自动测试框架&#xff0c; 绝大部分的软件的的自动化系统都可以采用它。 特点&#xff1a; 测试数据文件&#xff08;Test Data&#xff09;对应一个个的测试用例。测试数据文件里面使用的功能小模块叫关键字&#xff0c;由测试库&#xff08;T…

【生日视频制作】教师节中秋节国庆节红色直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】

红色直升飞机生日视频制作教程AE模板改文字广软件告生成器素材 怎么如何做的【生日视频制作】教师节中秋节国庆节红色直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频…

字节跳远,AI绘梦:我的自由之旅,从编码到画布的奇幻转变

一、告别字节&#xff0c;开启未知旅程 在字节跳动的那些日子里&#xff0c;我经历了职场的起伏&#xff0c;也见证了公司的飞速发展。然而&#xff0c;高强度的工作节奏和不断攀升的业绩压力&#xff0c;让我开始思考生活的意义。最终&#xff0c;我做出了一个大胆的决定——裸…

Leetcode面试经典150题-300.最长递增子序列

解法都在代码里&#xff0c;不懂就留言或者私信 面试的话普通的动态规划解法就够了&#xff0c;如果要出彩&#xff0c;看看我提交的最终的解 class Solution {/**解题思路分析&#xff1a;这个题的普通解法是标准的动态规划对于每一个位置的值&#xff0c;看看前面所有的比它…

[数据集][目标检测]流水线物件检测数据集VOC+YOLO格式9255张26类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;9255 标注数量(xml文件个数)&#xff1a;9255 标注数量(txt文件个数)&#xff1a;9255 标注…

分析Facebook在区块链技术中的应用与前景

随着数字技术的飞速发展&#xff0c;区块链作为一种具有去中心化、安全性高、透明度强等特点的技术&#xff0c;逐渐引起了各大科技公司的关注。Facebook&#xff08;现Meta&#xff09;也不例外&#xff0c;其在区块链技术上的探索不仅显示了对未来技术趋势的敏锐洞察&#xf…

周易测算系统开发:融合古典智慧与现代技术的创新实践

一、引言 周易&#xff0c;作为中国古代文化的瑰宝&#xff0c;蕴含着深邃的哲学思想与预测智慧&#xff0c;其独特的六十四卦体系及爻变原理&#xff0c;自古以来便被人们用于探索自然规律、人生哲理及未来趋势。随着科技的飞速发展&#xff0c;将周易智慧与现代计算机技术相结…

虚幻5|AI行为树,跟随task(非行为树AI)

这个可以不需要行为树 1.打开ai的角色蓝图后&#xff0c;添加一个函数&#xff0c;命名为跟距离改变速度 并用tick调用 2.编辑函数

python实现自动化生成pdf报告

easypdf使用手册 1. 项目介绍1.1 关于1.2 easypdf 有什么优势1.2 easypdf 可以用来做什么1.3 项目框架1.4 项目教程视频 2. 安装项目环境2.1 安装Python32.2在Windows上安装Python32.3 在Mac上安装Python32.4 在Linux上安装Python32.5 在Windows上安装Pycharm2.6 在Mac上安装Py…