Batch Normalization 详解及其各种变体

本文详细介绍了Batch Normalization的前向传播和反向传播过程,通过计算图展示了如何求解各个变量的偏导数,并给出了反向传播的完整公式。此外,还提及了在实际实现中对整个batch进行操作的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Batch Normalization的前向与反向传播

前向传播:
在这里插入图片描述

图 1 Batch Normalization 前向传播

反向传播:
根据前向传播过程,可以获得如下计算图,均值和方差都省略了下标B。

在这里插入图片描述

图 2 Batch Normalization 计算图

假定损失函数为 L L L,已知 L L L相对于 y i y_{i} yi 的偏导 ∂ L ∂ y i \frac{\partial L}{\partial y_{i}} yiL, 求 ∂ L ∂ γ \frac{\partial L}{\partial \gamma} γL ∂ L ∂ β \frac{\partial L}{\partial \beta} βL ∂ L ∂ x i \frac{\partial L}{\partial x_{i}} xiL,前两个比较直观,求 ∂ L ∂ x i \frac{\partial L}{\partial x_{i}} xiL需要用到 ∂ L ∂ x ^ i \frac{\partial L}{\partial \widehat{x}_{i}} x iL, 直接列出:
∂ L ∂ γ = ∑ i = 1 m ∂ L ∂ y i ⋅ x i ^                        ( 1 ) \frac{\partial L}{\partial \gamma}=\sum_{i=1}^{m} \frac{\partial L}{\partial y_{i}} \cdot \widehat{x_{i}} \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ }(1) γL=i=1myiLxi                       (1)

∂ L ∂ β = ∑ i = 1 m ∂ L ∂ y i                        ( 2 ) \frac{\partial L}{\partial \beta}=\sum_{i=1}^{m} \frac{\partial L}{\partial y_{i}} \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ }(2) βL=i=1myiL                      (2)

∂ L ∂ x ^ i = ∂ L ∂ y i ⋅ γ                        ( 3 ) \frac{\partial L}{\partial \widehat{x}_{i}}=\frac{\partial L}{\partial y_{i}} \cdot \gamma\text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ } \text{ }\text{ }(3) x iL=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值