浅析Batch Normalization

本文探讨了深度神经网络训练的挑战,特别是由于多层叠加导致的输入分布变化。Batch Normalization通过标准化每批次数据,将其转化为标准分布,解决这一问题。尽管规范化可能限制模型的表达能力,但通过可学习的γ和β参数,模型仍能保持充分的表达力,提高训练速度并提升性能。在主流框架如TensorFlow、Keras和Pytorch中,Batch Normalization都有内置支持。
摘要由CSDN通过智能技术生成

深度神经网络难训练

一个重要的原因就是深度神经网络涉及很多层的叠加,每一层的参数变化都会导致下一层输入数据分布的变化,随着层数的增加,高层输入数据分布变化会非常剧烈,这就使得高层需要不断适应低层的参数更新。为了训练好模型,我们需要谨慎初始化网络权重,调整学习率等。


原理分析

为了解决这个问题,一个比较直接的想法就是对每层输入数据都进行标准化。Batch Normalization确实就是这样做的。Batch Normalization的基本思想就是:将每一批次数据输入下一层神经元之前,先对其做平移和伸缩变换,将输入数据的分布规范为固定区间范围内的标准分布。Batch Normalization的公式表示如下:

\hat{x_i}=\frac{x_i-\mu_B}{\sigma_B}

y_i=\gamma \hat{x_i}+\beta

这时我们可能会有些疑问,第一步不是已经得到标准化分布了吗,为什么还要再使用第二步变回去呢? 

答案是:为了保证模型的表达能力,第二步是必不可少的。

我们发现,第一步将每一层的输入数据都规范化为均值为0,标准差为1的分布。那么我们仔细想一下,这样做会带来什么问题ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值