Variants of batch normalization

Last time: Batch Normalization

$$ \mu_j = {1\over N}\sum_{i = 1} ^ N x_{i, j} $$

$$ \sigma_j ^2 = {1\over N}\sum_{i = 1} ^ N (x_{i, j} - \mu _j)^2 $$

$$ \hat{x}{i, j} = {x{i, j} - \mu _j \over \sqrt{\sigma_j ^2 + \epsilon}} $$

$$ y_{i, j} = \gamma_j \hat{x}_{i, j} + \beta_j $$

N x D 의 크기를 가진 input x에 대해서 j번째 x에 대해 평균, 분산을 구하고 이를 이용해서 normalization을 수행하여 안정된 input으로 학습 진행

⇒ 초기화에 대한 부담을 줄이고 learning rate을 크게 해도 dead ReLU를 막을 수 있다

$\gamma , \beta$ 값을 학습을 통해 설정

batch normalization ⇒ 초기화의 문제, 학습 속도에서의 이점, regularization의 측면에서도 효과적

Group Normalization

Optimization

# vanilla Gradient Descent
While True:
	weights_grad = evaluate_gradient(loss_fun, data, weights)
	weights += - step_size * weights_grad  # perform parameter update