BN和IN其实本质上是同一个东西,只是IN是作用于单张图片,但是BN作用于一个batch。 但是为什么IN还会被单独提出,而且在Style Transfer的这个任务中大放异彩呢?
在[1]中,我们提出了一个叫做adaBN的方法来做domain adaptation。其实adaBN做的事情看上去非常trivial:在拓展到未知的domain的时候,将BN的统计量在这个domain的unlabel data上重新计算一遍。如果用现有deep learning框架去实现的话,只需要一行就够。但是这样一个操作,可以带来相当显著的性能提升。究其原因,其实BN在做的事情就是将每个batch的数据归一化到standard Gaussian。我们在不同数据上计算统计量,可以将不同domain的数据分布的差异归一。
在[2]中,我们从style transfer中使用的Gram matrix出发,试图解释为什么Gram matrix可以代表一个图片的style这个问题。这是我看完style transfer的paper后感觉最为迷惑的一点。一个偶然的机会,我们发现这个匹配两张图的Gram matrix,其实数学上严格等价于极小化这两张图deep activation的2nd poly kernel的MMD距离。其中,MMD距离是用来通过从两个分布中sample的样本来衡量两个分布之间的差异的一种度量。所以本质上,style transfer这个paper做的事情就是将生成图片的deep activation分布和style image的分布进行匹配。这其实可以认为是一个domain adaptation的问题。所以很自然我们可以使用类似于adaBN的想法去做这件事情。这后续有一系列的工作拓展了这个想法,包括adaIN[3]以及若干基于GAN去做style transfer的工作。
IN: N*C LN: N GN: part of LN BN: C