本文主要是介绍015_SSSSS_ Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
这篇笔记总结一下各种Normalization,不仅是AdaIN
1. Batch Normalization(BN)
对于输入数据 x ∈ R N × C × H × W x \in R^{N \times C \times H \times W} x∈RN×C×H×W, BN对于每一个独立的特征维度的均值和方差进行归一化。
其中 γ , β ∈ R C \gamma,\beta \in R^C γ,β∈RC 是学习到的仿射参数, μ ( x ) , σ ( x ) ∈ R C \mu(x),\sigma(x) \in R^C μ(x),σ(x)∈RC 是数据的均值和方差。
BN在训练的时候对batch的大小要求比较高,一般需要较大的batch。而在inference的时候,需要用训练时每个batch的均值和方差(mini-batch statistics),再求期望作为推断时用到的均值和方差(popular statistics)。
2. Instance Normalization(IN)
IN与BN的主要区别在于均值和方差只在每个Instance内求得,而不在整个batch内求。
3. Conditional Instance Normalization(CIN)
CIN在IN的基础上加入了条件,其 γ \gamma γ 和 β \beta β 不再是只学习到一个,而是根据增加的条件输入不同,得到 s s s 组不同的值,对应于不同风格的输入。
4. Adaptive Instance Normalization(AdaIN)
AdaIN不再通过学习得到 γ \gamma γ, β \beta β 而是用输入的条件数据 y y y 来替代。
5. Layer Normalization(LN)
与BN的区别在于,BN是在Batch维度做的归一化,而LN则是在Layer上。
L N ( x ) = γ x − μ ( x ) σ ( x ) + β μ n ( x ) = 1 H W C ∑ n = 1 H ∑ n = 1 W ∑ n = 1 C x n c h w σ n ( x ) = 1 H W C ∑ n = 1 H ∑ n = 1 W ∑ n = 1 C ( x n c h w − μ n ( x ) ) 2 + ϵ LN(x) = \gamma \frac{x-\mu(x)}{\sigma(x)} + \beta \\ \mu_n(x) = \frac{1}{HWC} \sum_{n=1}^H\sum_{n=1}^W\sum_{n=1}^C x_{nchw} \\ \sigma_n(x) = \sqrt{\frac{1}{HWC} \sum_{n=1}^H\sum_{n=1}^W\sum_{n=1}^C (x_{nchw} - \mu_n(x))^2 + \epsilon} LN(x)=γσ(x)x−μ(x)+βμn(x)=HWC1n=1∑Hn=1∑Wn=1∑Cxnchwσn(x)=HWC1n=1∑Hn=1∑Wn=1∑C(xnchw−μn(x))2+ϵ
6. Group Normalization(GN)
GN与LN的区别在于,LN在所有的特征维度C上做归一化,但是GN则是在部分维度上做归一化。
。
这篇关于015_SSSSS_ Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!