Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
这篇笔记总结一下各种Normalization,不仅是AdaIN
1. Batch Normalization(BN)
对于输入数据 x∈RN×C×H×Wx \in R^{N \times C \times H \times W}x∈RN×C×H×W, BN对于每一个独立的特征维度的均值和方差进行归一化。

其中 γ,β∈RC\gamma,\beta \in R^Cγ,β∈RC 是学习到的仿射参数,μ(x),σ(x)∈RC\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β 不再是只学习到一个,而是根据增加的条件输入不同,得到 sss 组不同的值,对应于不同风格的输入。

4. Adaptive Instance Normalization(AdaIN)
AdaIN不再通过学习得到 γ\gammaγ, β\betaβ 而是用输入的条件数据 yyy 来替代。

5. Layer Normalization(LN)
与BN的区别在于,BN是在Batch维度做的归一化,而LN则是在Layer上。
LN(x)=γx−μ(x)σ(x)+βμn(x)=1HWC∑n=1H∑n=1W∑n=1Cxnchwσn(x)=1HWC∑n=1H∑n=1W∑n=1C(xnchw−μ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则是在部分维度上做归一化。

。
这篇笔记介绍了深度学习中几种重要的归一化技术,包括BatchNormalization(BN)、InstanceNormalization(IN)、ConditionalInstanceNormalization(CIN)、AdaptiveInstanceNormalization(AdaIN)以及LayerNormalization(LN)和GroupNormalization(GN)。BN在训练时对batch大小有较高要求,IN则不考虑batch间的统计信息。AdaIN通过条件输入动态调整归一化参数,而LN和GN分别在不同维度上执行归一化。这些技术对于模型的收敛速度和性能有着显著影响。

243

被折叠的 条评论
为什么被折叠?



