ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

动手学深度学习 | 批量归一化 | 26

2021-10-02 11:31:52  阅读:144  来源: 互联网

标签:26 批量 梯度 BN batch 参数 归一化 size


目录

批量归一化

现在卷积神经网基本都是要使用到BN层的。BN层的思想不新,但是这个特定的层确实是最近几年才出来的,而且大家会发现效果很好。而且当大家要把网络做深的时候,这就是一个不可避免的层了。

梯度在上面的层会大,越往下面梯度会越来越小。

这就导致了一个很大的问题,就是上面的层梯度较大,那么权重更新比较快,也就是收敛的快;但是下面的层因为梯度小,所以参数更新的慢,收敛的慢。但是因为底部的层是抽取比较底层的特征,所以每次底层的参数一更新,高层的参数又需要重新训练(底层的信息一变,那么上面就白学了)。

批量归一化:我们能不能在学习底部的时候避免变化顶部层?

我们讲数值稳定性的时候,为什么参数会变?是因为不同层之间的方差和均值的整个分布会变化。

那么简单的办法是说,假设把分布给固定住,就不管那一层,输出也好,梯度也好,假设都符合某个分布,那么相对来说就会比较稳定。

BN的想法就是希望让层和层之间的分布保持一致。

批量的均值:

批量的方差:

这里最后加一个很小的值就是为避免其方差为0。

\(x_{i+1}\)也就是下一层的输出,保持在和\(x_i\)在同一个分布,其中还有两个可以学习的参数\(\gamma,\beta\),为什么要有这两个参数呢?因为如果均值为0,方差为1的效果不好的话,那么可以再将这个均值和方差进行调整。

可以看看下面添加了BN层和未添加BN层的效果,前者的震动幅度较大,后者一开始损失什么的基本就可以认为在“同一分布”。后者收敛的速度更快,或者换句话说,未添加BN层可能过多几个epoch(比如20个)也可以达到添加BN层少几个epoch(比如10个)的效果。

代码

首先是简洁实现

然后再是具体的实现代码

QA

  1. 在将xavier的时候,也讲过类似normalization的东西,和BN什么区别?

本质上没有区别,是一个思想。就是模型的参数稳定了,收敛就不会慢。

xavier初始化是说在初始的时候,选取和合适的初始化参数能够使得模型稳定,但是不能保证之后。BN层则是在训练的时候,在每一层都进行一次“归一化”。

  1. BN是不是和权重衰退的作用类似?

权重衰退可以认为是每次更新权重的时候都除了一个小值(就是不要让权重的变化范围太大)

但是BN却不会太多的影响前一层的权重。

  1. BN能用在MLP中吗?

可以的,但是如果网络不深的话其实作用不大。

一般都是网络较深的时候才会出现上层更新快,下层更新慢的问题。

也就是BN层一般用于深层网络,浅层的MLP加上BN效果不会见得很棒。

  1. 为什么使用了BN收敛时间会变短?

因为BN可以让梯度正大(就不会到底层的时候变的很小),那么就可以适当增大学习率,加速收敛。

  1. 训练时候如何对epoch,batch_size,lr的数值进行设置?

epoch数总是可以选择大一点是没有关系的,就是浪费点资源。

batch_size你要选到合适,不能选择太大,也不能选择太小,一般batch_size就调整到一个GPU效率比较高的情况。

lr是在batch_size后面在进行调整的。

  1. batch_size是把显存占满好?还是利用率gpu-tuil 100%就可以了?还是需要同时达到100%?

利用率不要到100%,到90%就可以了。

或者这么讲,你去增加batch_size,去看看GPU每秒中能处理的样本数,如果batch_size到一定程度没有增加每秒处理样本数的话,batch_size就可以停止了。

标签:26,批量,梯度,BN,batch,参数,归一化,size
来源: https://www.cnblogs.com/Rowry/p/15361586.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有