前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >10分钟看懂Batch Normalization的好处

10分钟看懂Batch Normalization的好处

作者头像
linxinzhe
发布2018-04-10 15:06:24
2.2K0
发布2018-04-10 15:06:24
举报
文章被收录于专栏:林欣哲林欣哲

Batch normalization是一个用于优化训练神经网络的技巧。具备有以下几个优点

1. 训练的更快

因为在每一轮训练中的前向传播和反响传播的额外计算会造成更慢的训练。Batch normalization可以让收敛速度更快。总的训练时间更短。

2. 容忍更高的学习率(learning rate)

为了网络能收敛,梯度下降通常需要更小的学习率。但是神经网络的层次越深,则反响传播时梯度越来越小,因此需要更多的训练迭代次数。Batch normalization可以容忍更高的学习率,则梯度下降的幅度更大,也就加快了训练的速度。

3. 让权重更容易初始化

权重的初始化通常来说比较麻烦,尤其是深层的神经网络。Batch normalization可以降低权重初始化的值的分布的影响。

4. 可支持更多的激活函数

有些激活函数在某些场景下表现很差。比如Sigmoid的随层次的增加梯度衰减的俄很快,也就无法用在深层的神经网络。ReLU的问题是可能导致神经元的死亡(即ReLU掉入0的区域),所以我们要小心输入他的值的范围。Batch normalization可以规范化输入,这些激活函数也可以使用了。

5. 简化创建深层的神经网络

以上四点就降低了创建神经网络的要求,可以创建更深层的神经网络,而更深层的网络也更有机会表现的更好。

6. 提供了一点正则化的功能

虽然Batch normalization 在某些情况下增加了一些网络的噪声。在Inception模型中,Batch normalization 起到了和dropout一样的正则化效果。考虑用Batch normalization 替代一些dropout的情况。

7. 可能得到更好的结果

一些实验结果表明Batch normalization 可以提高训练的表现。不过他主要还是用优化训练,让训练更快的方面。因为他能让你的网络训练的更快,你就能比不用Batch normalization 的时候迭代更多次或者收敛的更快。他也能让你构建更深的网络,深的网络有机会表现的更好。

总结

推荐使用Batch normalization~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 训练的更快
  • 2. 容忍更高的学习率(learning rate)
  • 3. 让权重更容易初始化
  • 4. 可支持更多的激活函数
  • 5. 简化创建深层的神经网络
  • 6. 提供了一点正则化的功能
  • 7. 可能得到更好的结果
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档