深度模型(九):Batch Normalization

批量标准化

批量标准化(batch normalaization)概念由2015年的论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出,后被广泛的应用于深度学习领域。

下面来看一下批量标准化的计算过程。

比如训练数据mini batch的大小为 m m m,某个特征 x x x的取值为 [ x 1 , x 2 , . . . , x m ] [x_1,x_2,...,x_m] [x1,x2,...,xm],需要对特征 x x x做批量标准化,如何计算呢?

我们将 x x x的标准化的输出结果记为 y = [ y 1 , y 2 , . . . , y m ] , y i = B N γ , β ( x i ) , i ∈ [ 1 , m ] y=[y_1,y_2,...,y_m],y_i=BN_{\gamma,\beta}(x_i), i\in[1,m] y=[y1,y2,...,ym],yi=BNγ,β(xi),i[1,m],则计算 B N γ , β BN_{\gamma,\beta} BNγ,β的过程如下:

μ = 1 m ∑ i = 1 m x i \mu=\frac{1}{m}\sum_{i=1}^mx_i μ=m1i=1mxi
σ 2 = 1 m ∑ i = 1 m ( x i − u ) 2 \sigma^2=\frac{1}{m}\sum_{i=1}^m(x_i-u)^2 σ2=m1i=1m(xiu)2
x ^ i = x i − u σ 2 + ϵ \widehat x_i=\frac{x_i-u}{\sqrt{\sigma^2+\epsilon}} x i=σ2+ϵ xiu
y i = γ x i + β y_i=\gamma x_i + \beta yi=γxi+β

其中 γ , β \gamma,\beta γ,β为待训练的参数, ϵ \epsilon ϵ为超参。

本质思想

批量标准化的思想,来自于这样一个实验观察现象:当网络的输入分布符合标准分布的时候,训练会比较快的收敛。基于这样的现象,有理由可以猜想,如果网络的每一层的输入都符合标准分布,那么训练的过程应该更快。但是如果人为的改变上一层网络输出值的分布,可能会导致信息丢失,降低模型的表达能力,所以在标准化操作之后,引入的两个可学习的参数 γ , β \gamma,\beta γ,β,来学习原始分布与标准化分布间的映射关系。这样即加快的模型的训练,有不会降低模型的表达能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值