1. 程式人生 > >batch norm反向公式推導

batch norm反向公式推導

輸入

X i = ( x i 0

, x i 1 , . . . ,
x i ( n 1 ) )
X_i=(x_{i0},x_{i1},...,x_{i(n-1)}) i [ 0 , m 1 ] i \in [0,m-1] batch-size等於m,特徵維度n

輸出

Y i = ( y i 0 , y i 1 , . . . , y i ( n 1 ) ) Y_i=(y_{i0},y_{i1},...,y_{i(n-1)}) i [ 0 , m 1 ] i \in [0,m-1] 維度和輸入 X X 一致

前向計算

  1. 均值
    μ = μ 0 , μ 1 , . . . , μ n \mu = {\mu_0,\mu_1,...,\mu_n} 其中
    μ p = 1 m i x i p \mu_p = \frac{1}{m}\sum_ix_{ip}

  2. 方差
    σ = σ 0 , σ 1 , . . . , σ n \sigma = {\sigma_0,\sigma_1,...,\sigma_n} 其中
    σ p = 1 m i ( x i p μ p ) 2 \sigma_p = \frac{1}{m}\sum_i(x_{ip}-\mu_p)^2

  3. 中間結果
    x i p = x i p μ p σ p 2 + ϵ \overline x_{ip}=\frac{x_{ip}-\mu_p}{\sqrt{\sigma_p^2+\epsilon}}

  4. 結果
    y i p = γ p x i p + β p y_{ip}=\gamma_p \overline x_{ip}+\beta_p 其中
    引數 γ = γ 0 , γ 1 , . . . , γ n 1 \gamma = {\gamma_0, \gamma_1,...,\gamma_{n-1}}
    β = β 0 , β 1 , . . . , β n 1 \beta = {\beta_0,\beta_1,...,\beta_{n-1}}
    是learnable parameters

反向計算

O x i j = k l O y k l y k l x i j = k l O y k l y k l x i j x i j x i j = k l O y k l γ l x i j x i j ( 1 ) \frac{\partial O}{\partial x_{ij}}=\sum_{kl}{ \frac{\partial O}{\partial y_{kl}} } \frac{\partial y_{kl}}{\partial x_{ij}} = \sum_{kl}{ \frac{\partial O}{\partial y_{kl}} } \frac{\partial y_{kl}}{\partial \overline x_{ij}} \frac{\partial \overline x_{ij}}{\partial x_{ij}} = \sum_{kl}{ \frac{\partial O}{\partial y_{kl}} } \gamma_l \frac{\partial \overline x_{ij}}{\partial x_{ij} } \quad (1)