AdaIN

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

Batch Normalization

BN对一个batch的数据进行归一化,使数据符合均值为0,方差为1的分布,解决了Internal Covariate Shift问题,提升模型训练稳定性。

x ∈ R N × C × H × W x \in R^{N\times C \times H \times W} xRN×C×H×W

BN的计算操作如下,计算batch内数据每个通道的均值和方差,然后做归一化。
μ c ( x ) = 1 N H W ∑ n = 1 N ∑ h = 1 H ∑ w = 1 W x n c h w \mu_c(x) = \frac{1}{NHW}\sum_{n=1}^{N}\sum_{h=1}^{H}\sum_{w=1}^{W}x_{nchw} μc(x)=NHW1n=1Nh=1Hw=1Wxnchw
σ c ( x ) = 1 N H W ∑ n = 1 N ∑ h = 1 H ∑ w = 1 W ( x n c h w − μ c ( x ) ) 2 + ϵ \sigma_c(x) = \sqrt{\frac{1}{NHW}\sum_{n=1}^{N}\sum_{h=1}^{H}\sum_{w=1}^{W}(x_{nchw} - \mu_c(x))^2 + \epsilon} σc(x)=NHW1n=1Nh=1Hw=1W(xnchwμc(x))2+ϵ

B N ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β BN(x) = \gamma(\frac{x-\mu(x)}{\sigma(x)}) + \beta BN(x)=γ(σ(x)xμ(x))+β

Instance Normalization

在最开始的风格迁移研究中都是采用 BN,但后来发现把 BN 替换成 IN (Instance Normalization) 的效果更好。IN 和 BN 的区别在于,IN 是针对每个样本标准化,其公式如下:
μ n c ( x ) = 1 H W ∑ h = 1 H ∑ w = 1 W x n c h w \mu_{nc}(x) = \frac{1}{HW}\sum_{h=1}^{H}\sum_{w=1}^{W}x_{nchw} μnc(x)=HW1h=1Hw=1Wxnchw
σ n c ( x ) = 1 H W ∑ h = 1 H ∑ w = 1 W ( x n c h w − μ n c ( x ) ) 2 + ϵ \sigma_{nc}(x) = \sqrt{\frac{1}{HW}\sum_{h=1}^{H}\sum_{w=1}^{W}(x_{nchw} - \mu_{nc}(x))^2 + \epsilon} σnc(x)=HW1h=1Hw=1W(xnchwμnc(x))2+ϵ

I N ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β IN(x) = \gamma(\frac{x-\mu(x)}{\sigma(x)}) + \beta IN(x)=γ(σ(x)xμ(x))+β

虽然 IN 在风格迁移任务中表现很好,但是仍然不清楚为什么 IN 的效果更好。

Adaptive Instance Normalization

作者提出了 AdaIN (Adaptive Instance Normalization),这也是论文最重要的内容。通过 AdaIN 可以实现任意风格迁移,例如给定内容图的特征 x 和风格图的特征 y,AdaIN 可以将 y 的风格迁移到 x 上,公式如下:
A d a I N ( x , y ) = σ ( y ) ( x − μ ( x ) σ ( x ) ) + μ ( y ) AdaIN(x, y) = \sigma(y)(\frac{x-\mu(x)}{\sigma(x)}) + \mu(y) AdaIN(x,y)=σ(y)(σ(x)xμ(x))+μ(y)

你可能感兴趣的:(机器学习,人工智能)