AdaBN(Adaptive Batch Normalization)使用

最近在查看论文《Towards Flops-constrained Face Recognition》时,发现作者使用了AdaBN的技巧,我很好奇AdaBN是什么操作,为甚么没有看见相应的博文介绍,下面是我自己整理的资料。



论文链接:https://arxiv.org/pdf/1603.04779.pdf

原文中的算法:

 通俗理解:

把model设成训练模式,然后是做前向计算,不做反向更新,相当于只更新global mean和global variance;

将所有测试样本跑一遍,得到的最终的BN层的参数用于test测试样本;

注意:有人建议做迁移时,要将global mean 和 global var 初始成 0 (因为涉及到batchsize的大小);

使用场景:

训练样本分布和测试样本分布不一致,模型迁移学习时使用;

参考:

1.https://www.zhihu.com/question/340407548/answer/795027833

2.http://www.doc88.com/p-9932882215443.html

附赠信息:

原作者:https://www.zhihu.com/people/naiyan-wang/answers,关于“论文投稿被拒2次,再找第三家的时候突然想放弃怎么办?”的回答;

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
反向传播算法(Backpropagation)是一种用于训练深度神经网络的常用算法。下面是反向传播算法的具体步骤: 1. 前向计算:将输入数据送入神经网络,通过一系列的矩阵乘法和非线性变换(如ReLU、Sigmoid等),计算出网络的输出结果。 2. 计算损失:将网络输出结果与真实标签进行比较,计算出网络的预测误差(即损失函数)。 3. 反向传播:通过链式法则,计算出损失函数对网络各层参数的导数,即梯度。这一步需要从网络输出层开始,逐层向前计算每层的梯度。 4. 参数更新:使用梯度下降等优化算法,更新网络各层的参数,使得损失函数最小化。 Adaptive Batch Normalization (AdaBN)算法是一种针对深度神经网络训练中的批归一化(Batch NormalizationBN)存在的一些问题(如BN对于批次大小的敏感性)进行改进的算法。下面是AdaBN算法的具体步骤: 1. 前向计算:将输入数据送入神经网络,通过一系列的矩阵乘法和非线性变换,计算出网络的输出结果。 2. 计算批归一化参数:对于每个批次,计算出该批次数据的均值和方差,并计算出批归一化的缩放和偏移参数。 3. 反向传播:通过链式法则,计算出损失函数对网络各层参数的导数,即梯度,同时计算出批归一化参数的梯度。 4. 参数更新:使用梯度下降等优化算法,更新网络各层的参数和批归一化参数,使得损失函数最小化。在AdaBN算法中,批归一化参数的更新使用了自适应的方法,以根据不同批次大小的数据自动调整批归一化参数的更新规则。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫与橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值