深度学习——Batch Norm简介

Batch Normalization(BN)是提高神经网络训练效率的一种正则化方法,通过标准化每一层的输入数据,确保其在同一范围内,从而加速训练并改善模型性能。BN包括计算输入的平均值和方差,然后对数据进行归一化处理。在神经网络的每个线性层之后,BN会对线性方程的输出进行操作,并引入可学习参数γ和β来调整归一化的值。BN可以与Mini-Batch配合使用,在每次迭代中处理一小部分样本,实现更高效的训练过程。
摘要由CSDN通过智能技术生成

深度学习——Batch Norm

前言:为什么要正则化

关于这个问题,举一个生活上的例子。我们知道在工业生产的时候,只有标准化的,流水线的生产方式,效率才是高的。一个流水线上生产的产品,几乎都是一模一样的。为什么要这样?因为这样生产效率高。如果一个流水线上一会儿生产特斯拉,一会儿又生产法拉利,那么这个流水线光折腾不同的零件就够让人折腾了,谈何加快效率?

在神经网络当中也是这样子,如果所有层的输入数据都是同分布的,那么就像一条流水线生产同一种东西那样,效率就会很高。但实际上,经过每一层的运算之后,输出的数据都会有所不同,这些不同的数据也会处在不同的范围之内,范围不同,进一步导致分布的不同,那就没有什么“标准化”可言了。在这种情况下,我们就需要正则化。将各个层的输入数据都统一在同一个范围和分布上,以达到“标准化”。进而增加训练效率。

在神经网络当中,由于有很多Hidden Layer,因此正则化的过程会比较复杂。这当中最为常用的是Batch Norm(简称:BN),除了Batch Norm,还有Layer Norm, Instance Norm,Group Norm等等
在这里插入图片描述

一.单一神经元的正则化

我们假设有这么一个但神经元:
在这里插入图片描述
我们把输入值x1, x2, x3 统称为X,那么对于输入值的正则化,按照下面步骤进行(不难):

  • step1:计算输入值的平均值
    μ = 1 m ∑ i = 1 m x i \mu = \frac{1}{m}\sum_{i=1}^{m} x_{i} μ=m1i=1mxi
  • step2:计算方差
    σ 2 = 1 m ∑ i = 1 m ( x i − μ ) 2 \sigma^2 = \frac{1}{m}\sum_{i=1}^{m}(x_{i}-\mu)^2 σ2=m1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值