【深度学习】神经网络中,BatchNormalization(批量归一化)层

在神经网络中,BatchNormalization(批量归一化)层计算每一批数据的均值和方差是其核心操作,下面详细介绍其计算方法。

计算均值和方差的基本公式

假设输入数据是一个形状为 (m, n) 的矩阵,其中 m 是批量大小(即一批数据中样本的数量),n 是特征的数量。

均值计算

均值是每一个特征维度上所有样本值的平均值。对于第 j 个特征维度,其均值 μ j \mu_j μj 的计算公式为:
μ j = 1 m ∑ i = 1 m x i j \mu_j = \frac{1}{m} \sum_{i=1}^{m} x_{ij} μj=m1i=1∑mxij

这里, x i j x_{ij} xij 表示第 i 个样本的第 j 个特征值。也就是说,对于每一个特征维度,将该维度上所有样本的值相加,再除以样本数量 m,就得到了该特征维度的均值。

方差计算

方差衡量的是数据相对于均值的离散程度。对于第 j 个特征维度,其方差 σ j 2 \sigma_j^2 σj2 的计算公式为:
σ j 2 = 1 m ∑ i = 1 m ( x i j − μ j ) 2 \sigma_j^2 = \frac{1}{m} \sum_{i=1}^{m} (x_{ij} - \mu_j)^2 σj2=m1i=1∑m(xij−μj)2

同样是针对每一个特征维度,先计算每个样本的该特征值与该维度均值的差值的平方,然后将这些平方值相加并除以样本数量 m,得到该特征维度的方差。

代码示例

下面是一个使用 Python 和 NumPy 实现手动计算一批数据均值和方差的简单示例:

python 复制代码
import numpy as np

# 模拟一批数据,形状为 (m, n)
# m 是批量大小,n 是特征数量
batch_size = 10
num_features = 5
data_batch = np.random.randn(batch_size, num_features)

# 计算每个特征维度的均值
means = np.mean(data_batch, axis=0)

# 计算每个特征维度的方差
variances = np.var(data_batch, axis=0)

print("每个特征维度的均值:", means)
print("每个特征维度的方差:", variances)

在这个示例中:

  1. 首先使用 np.random.randn 函数生成了一个形状为 (batch_size, num_features) 的随机数据矩阵,模拟一批输入数据。
  2. 然后使用 np.mean 函数,通过指定 axis=0,计算每一个特征维度上的均值。
  3. 最后使用 np.var 函数,同样指定 axis=0,计算每一个特征维度上的方差。

BatchNormalization 层中的应用

KerasBatchNormalization 层中,计算得到均值和方差后,会对输入数据进行归一化处理,公式如下:
x ^ i j = x i j − μ j σ j 2 + ϵ \hat{x}{ij} = \frac{x{ij} - \mu_j}{\sqrt{\sigma_j^2 + \epsilon}} x^ij=σj2+ϵ xij−μj

其中, x ^ i j \hat{x}_{ij} x^ij 是归一化后的第 i 个样本的第 j 个特征值, ϵ \epsilon ϵ 是一个很小的正数,用于防止除零错误。之后,归一化后的数据还会经过缩放和平移操作,以增加模型的表达能力。

相关推荐
防搞活机4 分钟前
ubuntu 服务器(带NVLink)更新显卡驱动 (巨坑!!)
linux·服务器·深度学习·ubuntu·gpu算力·显卡驱动
audyxiao0016 分钟前
NeurIPS 2025论文分享|FedFree:突破知识共享壁垒的异构联邦学习新框架
大数据·人工智能·机器学习·大模型·智能体
stbomei1 小时前
2025 AI 落地图谱:从技术突破到产业重构的变革之路
人工智能·重构
AI数据皮皮侠1 小时前
全国各省市绿色金融指数及原始数据(1990-2022年)
大数据·人工智能·python·深度学习·机器学习·金融
zzywxc7871 小时前
AI行业应用全景:从金融风控到智能制造的落地实践与技术解析
人工智能·深度学习·spring·机器学习·prompt·制造
丁学文武2 小时前
大模型原理与实践:第二章-Transformer架构_第2部分Encoder-Decoder架构
人工智能·深度学习·transformer
liliangcsdn2 小时前
基于ollama运行27b gemma3解决ffmpeg命令生成问题
人工智能·ffmpeg
云雾J视界2 小时前
算法偏见的解药:将敏捷“灵魂”注入AI伦理
人工智能·算法·谷歌·伦理债·算法偏见·高效程序员·ai决策系统
蓝桉_An3 小时前
CNN基础学习(自用)
神经网络·学习
码界奇点3 小时前
京东JoyAgent-JDGenie开源多智能体系统如何重塑AI应用落地新范式
人工智能·ai·智能手机·开源