Switchable Normalization

tags: Normalization

前言

在之前的文章中,我们介绍了BNLNIN以及GN的算法细节及适用的任务。虽然这些归一化方法往往能提升模型的性能,但是当你接收一个任务时,具体选择哪个归一化方法仍然需要人工选择,这往往需要大量的对照实验或者开发者优秀的经验才能选出最合适的归一化方法。本文提出了Switchable Normalization(SN),它的算法核心在于提出了一个可微的归一化层,可以让模型根据数据来学习到每一层该选择的归一化方法,亦或是三个归一化方法的加权和,如图1所示。所以SN是一个任务无关的归一化方法,不管是LN适用的RNN还是IN适用的图像风格迁移(IST),SN均能用到该应用中。作者在实验中直接将SN用到了包括分类,检测,分割,IST,LSTM等各个方向的任务中,SN均取得了非常好的效果。

1. SN详解

1.1 回顾

1.2 SN算法介绍

1.3 测试

2. SN的优点

2.1 SN的普遍适用性

SN通过根据不同的任务调整不同归一化策略的权值使其可以直接应用到不同的任务中。图2可视化了在不同任务上不同归一化策略的权值比重:

从图2中我们可以看出LSTM以及IST都学到了最适合它们本身的归一化策略。

2.2 SN与BatchSize

SN也能根据batchsize的大小自动调整不同归一化策略的比重,如果batchsize的值比较小,SN学到的BN的权重就会很小,反之BN的权重就会很大,如图3所示:

图3中括号的意思是(#GPU, batchsize)。

3. 总结

这篇文章介绍了统一了BN,LN以及IN三种归一化策略的SN,SN具有以下三个有点:

  1. 鲁棒性:无论batchsize的大小如何,SN均能取得非常好的效果;

  2. 通用性:SN可以直接应用到各种类型的应用中,减去了人工选择归一化策略的繁琐;

  3. 多样性:由于网络的不同层在网络中起着不同的作用,SN能够为每层学到不同的归一化策略,这种自适应的归一化策略往往要优于单一方案人工设定的归一化策略。

最后更新于