【深度学习】神经网络中,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 ϵ 是一个很小的正数,用于防止除零错误。之后,归一化后的数据还会经过缩放和平移操作,以增加模型的表达能力。

相关推荐
小程故事多_8020 分钟前
OpenClaw工具引擎架构全解析,AI Agent的“双手”如何落地实操
人工智能·架构·aigc·ai编程·openclaw
qq_4523962325 分钟前
【AI 架构师】第十篇:Agent 工业化部署 —— 从 FastAPI 到云端全链路监控
网络·人工智能·ai·fastapi
前端摸鱼匠26 分钟前
【AI大模型春招面试题11】什么是模型的“涌现能力”(Emergent Ability)?出现条件是什么?
人工智能·算法·ai·自然语言处理·面试·职场和发展
新缸中之脑28 分钟前
如何合法地逆向SynthID
人工智能
剑穗挂着新流苏3121 小时前
115_PyTorch 实战:从零搭建 CIFAR-10 完整训练与测试流水线
人工智能·pytorch·深度学习·神经网络
Veggie261 小时前
【Java深度学习】PyTorch On Java 系列课程 第八章 17 :模型评估【AI Infra 3.0】[PyTorch Java 硕士研一课程]
java·人工智能·深度学习
链上杯子2 小时前
《2026 LangChain零基础入门:用AI应用框架快速搭建智能助手》第8课(完结篇):小项目实战 + 部署 —— 构建网页版个人知识库 AI 助手
人工智能·langchain
东方不败之鸭梨的测试笔记2 小时前
AI生成测试用例方案
人工智能·测试用例
笨手笨脚の3 小时前
AI 基础概念
人工智能·大模型·prompt·agent·tool
飞睿科技3 小时前
解析 ESP-AirPuff 泡芙一号的 ESP32-P4 大模型 AI 智能体方案
人工智能