Batch Normalization反向传播公式的推导

Batch Normalization反向传播可以用链式法则来推导。下面是一个简单的推导过程: 假设输入为$x$,BN层的输出为$y$,其归一化后的值为$\hat{y}$,缩放和移位后的输出为$z$,BN层的参数为$\gamma$和$\beta$,损失函数为$L$。 则有: $$\hat{y}=\frac{x-\mu_B}{\sqrt{\sigma_B^2+\epsilon}}$$ $$y=\gamma\hat{y}+\beta$$ 其中,$\mu_B$和$\sigma_B^2$分别是批量的均值和方差,$\epsilon$是一个很小的常数,防止分母为零。 BN层的反向传播分为两部分:对$\gamma$和$\beta$的梯度和对输入$x$的梯度。 首先,对$\gamma$和$\beta$的梯度可以直接计算: $$\frac{\partial L}{\partial \gamma}=\sum_{i=1}^n\frac{\partial L}{\partial y_i}\hat{y_i}$$ $$\frac{\partial L}{\partial \beta}=\sum_{i=1}^n\frac{\partial L}{\partial y_i}$$ 接下来,我们需要计算对输入$x$的梯度。我们可以先计算$\frac{\partial L}{\partial \hat{y}}$,然后通过链式法则计算出$\frac{\partial L}{\partial x}$: $$\frac{\partial L}{\partial \hat{y_i}}=\frac{\partial L}{\partial y_i}\gamma$$ $$\frac{\partial L}{\partial \sigma_B^2}=\sum_{i=1}^n\frac{\partial L}{\partial \hat{y_i}}(x_i-\mu_B)(-\frac{1}{2})(\sigma_B^2+\epsilon)^{-\frac{3}{2}}$$ $$\frac{\partial L}{\partial \mu_B}=-\frac{1}{\sqrt{\sigma_B^2+\epsilon}}\sum_{i=1}^n\frac{\partial L}{\partial \hat{y_i}}+\frac{\partial L}{\partial \sigma_B^2}\frac{1}{n}\sum_{i=1}^n-2(x_i-\mu_B)$$ $$\frac{\partial L}{\partial x_i}=\frac{\partial L}{\partial \hat{y_i}}\frac{1}{\sqrt{\sigma_B^2+\epsilon}}+\frac{\partial L}{\partial \sigma_B^2}\frac{2(x_i-\mu_B)}{n}+\frac{\partial L}{\partial \mu_B}\frac{1}{n}$$ 其中,$\frac{\partial L}{\partial \mu_B}$和$\frac{\partial L}{\partial \sigma_B^2}$可以通过反向传播递归计算得到。 最后,我们可以使用$\frac{\partial L}{\partial x}$更新网络的权重参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值