跳到主要内容

序列归一化方法

Instance Normalization

实例归一化最初用于图像风格迁移的生成任务,按照每个图像的每一个通道维度进行归一化操作

Batch Normalization(每个通道维度,计算batch内所有样本的统计结果):

ytijk=xtijkμiσi2+ϵy_{tijk} = {x_{tijk} - \mu_{i} \over {\sqrt{\sigma^2_{i} + \epsilon}}}

μi=1HWTt=1Tl=1Wm=1Hxtilm\mu_i = {1\over{HWT}}\sum_{t=1}^T\sum_{l=1}^W\sum_{m=1}^Hx_{tilm}

σi2=1HWTt=1Tl=1Wm=1H(xtilmμi)2\sigma^2_i = {1\over{HWT}}\sum_{t=1}^T\sum_{l=1}^W\sum_{m=1}^H(x_{tilm} - \mu_i)^2

Instance Normalization(每个样本,每个通道,计算统计结果):

ytijk=xtijkμtiσti2+ϵy_{tijk} = {x_{tijk} - \mu_{ti} \over {\sqrt{\sigma^2_{ti} + \epsilon}}}

μti=1HWl=1Wm=1Hxtilm\mu_{ti} = {1\over{HW}}\sum_{l=1}^W\sum_{m=1}^Hx_{tilm}

σti2=1HWl=1Wm=1H(xtilmμti)2\sigma^2_{ti} = {1\over{HW}}\sum_{l=1}^W\sum_{m=1}^H(x_{tilm} - \mu_{ti})^2

Deep Adaptive Input Normalization

DAIN是时序预测领域的自适应归一化方法。

DAIN过程

对于时间序列数据集{XiRd×L;i=1,,N}\{X^i \in \mathbb{R}^{d \times L}; i = 1, \dots, N\},将归一化过程拆分成三个步骤:

  1. 对原始数据进行平移(shifting)

αi=WaaiRd\alpha^i = W_aa^i \in \mathbb{R}^d

ai=1Lj=1LxjiRda^i = {1 \over L}\sum^L_{j=1}x^i_j \in \mathbb{R}^d

  1. 对平移结果进行缩放(scaling)

βi=WbbiRd\beta^i=\mathbf{W}_bb^i \in \mathbb{R}^d

bki=1Lj=1L(xjkiαki)2,k=1,,db^i_k = \sqrt{{1 \over L}\sum^L_{j=1}(x^i_{jk} - \alpha^i_k)^2}, k=1,\dots,d

  1. 额外的(非线形)门控过程,抑制无关特征的影响

x~~ji=x~jiγi\tilde {\tilde x} ^i_j = \tilde x^i_j \odot \gamma^i

γi=sigmoid(Wcci+b)Rd\gamma^i = sigmoid(\mathbf{W}_cc^i + \mathbf{b}) \in \mathbb{R}^d

ci=1Lj=1Lx~jiRdc^i = {1 \over L}\sum^L_{j=1}\tilde x^i_j \in \mathbb{R}^d

x~ji=(xjiαi)βi\tilde x^i_j = (x^i_j - \alpha^i) \oslash \beta^i

第一步、第三步仍然需要统计完整序列的均值信息