cs231n_Batch Normalization

Batch Normalization

原理与总结

Batch Normalization 能够使得数据进行归一处理,可以解决内部协变量偏移,可以缓解梯度饱和问题。

公式:

μ = 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 − μ ) 2 \sigma^2 = \frac{1}{m}\sum_{i=1}^m(x_i-\mu)^2 σ2=m1i=1m(xiμ)2 求出数据的方差

x ^ i = x i − μ σ 2 + ϵ \hat{x}_i=\frac{x_i-\mu}{\sqrt{\sigma^2+\epsilon}} x^i=σ2+ϵ xiμ

y i = γ x ^ i + β y_i=\gamma\hat{x}_i+\beta yi=γx^i+β

然后根据该公式,我推导了Batch Normalization的前向以及反向传播的值与梯度

在这里插入图片描述

作业实现

batchnorm_forward

这里主要是根据上面的公式进行代码编写 batchnorm的前向传播。这里要注意在train和test的不同。

  1. train中
  2. test中固定var和mean 进行计算

在这里插入图片描述

  1. 测试结果:

在这里插入图片描述

batchnorm_backward

这里是根据上图中推导的batchnorm的反向传播公式进行代码编写

在这里插入图片描述

测试结果:
在这里插入图片描述

batchnorm_backward_alt

根据图中的反向传播公式可以直接求出最后的反向传播公式
在这里插入图片描述

测试结果:

在这里插入图片描述

Fully Connected Nets with Batch Normalization

测试结果:

在这里插入图片描述

Batchnorm for deep networks

测试结果:
在这里插入图片描述
在这里插入图片描述

Batchnorm and initialization

研究网络使用batchnorm之后的效果。

测试结果:
在这里插入图片描

Question

Describe the results of this experiment, and try to give a reason why the experiment gave the results that it did.

Answer:

batchnorm能够加快模型的收敛,这是因为batchnorm将数据进行归一化,使得每一层提取的特征更加规则。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值