【AutoML】归一化(Normalization)方法如何进行自动学习和配置
大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用。这一期讲述在归一化机制中的应用。
作者&编辑 | 言有三
数据经过归一化和标准化后可以加快梯度下降的求解速度,这是Batch Normalization等技术非常流行的原因,它使得可以使用更大的学习率更稳定地进行梯度传播,甚至增加网络的泛化能力。
关于各类归一化方法的解读,可以阅读我们的往期文章,【AI初识境】深度学习模型中的Normalization,你懂了多少?,本篇我们关注如何使用AutoML技术学习到更合适的归一化策略。
1 Switchable Normalization
现在我们在每一个网络层中都使用同样的归一化,这是最优的配置吗?显然不是,因为实际应用中不同的问题就有它最合适的归一化操作。比如RNN等时序模型,有时候同一个batch内部的训练实例长度不一(不同长度的句子),则不同的时态下需要保存不同的统计量,无法正确使用BN层,只能使用Layer Normalization。对于图像生成以及风格迁移类应用,使用Instance Normalization更加合适。对于Batch比较小的情况下,Group Normalization是一个替换的方案。
Switchable Normalization[1]的研究便是关注如何让不同的网络层学习到最适合该层的归一化机制,方法就是在包含各类归一化方法的池中进行选择,然后用精度进行比较择优。
上图是对于各类任务中,学习到的最适合该方法的BN,IN,LN,GN的比例。
可以看到,对于分类,检测任务主干模型,BN更常用,对于LSTM任务,LN一家独大,对于Image Style Transfer任务,IN一家独大。
这便是Switchable Normalization(SN),具体的搜索过程大家可以阅读原文细节以及开源的代码。
2 SN与minibatch
众所周知,minibatch size的变化对BN是有影响的,minibatch过小,均值和方差统计量的估计噪声就过大,影响模型的泛化性能。IN,LN和GN计算统计量时虽然与minibatch无关,却也失去了BN带来的正则化能力,因此更容易产生明显的过拟合。SN在任务中自适应地学习出最佳配置,从而使得模型对minibatch更加不敏感。
具体来说,minibatch越小,BN越不稳定,权重系数越小,IN和LN的权重系数则越大;minibatch越大,BN的权重系数就越大,反之IN和LN的权重系数越小。
上图为不同minibatch下的权重系数的比例,括号中分别表示GPU数目,每个GPU的样本数。可以看出,随着minibatch的不断减小,BN的权重越来越低。
3 SN的改进
针对SN中使用softmax进行重要性学习存在的冗余计算问题,Sparse Switchable Normalization方法将softmax转换成了稀疏的形式,对每一个归一化层只选择一个归一化操作。
由于归一化方法的不同在于用于计算归一化的集合,所以往后的发展可能集中在如何选择用于归一化的集合,以及针对具体任务学习均值和方差,感兴趣的可以继续跟进。
[1] Luo P, Ren J, Peng Z, et al. Differentiable learning-to-normalize via switchable normalization[J]. arXiv preprint arXiv:1806.10779, 2018.
[2] Shao W, Meng T, Li J, et al. Ssn: Learning sparse switchable normalization via sparsestmax[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 443-451.
[3] github链接
https://github.com/switchablenorms/Switchable-Normalization
https://github.com/switchablenorms/Sparse_SwitchNorm
总结
本次我们介绍了一种对各类归一化方法进行自动学习的机制,它相比固定的配置归一化方法更加灵活,也能取得更优的结果。
下期预告:AutoML在优化方法中的应用。
有三AI秋季划
有三AI秋季划已经正式启动报名,模型优化,人脸算法,图像质量共24个项目,助力提升深度学习计算机视觉算法和工程项目能力。
转载文章请后台联系
侵权必究