Prior Knowledge

Normalization이란?

normalization이란 간단히 말하면 데이터 혹은 피쳐의 값의 범위를 일정 범위로 제한해주는 것이다.

0~1사이 값이 될 수도 있고, 어떠한 분포 ( e.g. 표준정규분포 ) 일수도 있다.

➡️ 왜 해주어야 하는가 : 만약 집값에 대한 feature들이 존재한다고 했을 때, 하나는 방의 개수, 하나는 얼마나 오래 전에 지어졌느냐라고 한다면, 상대적으로 scale이 큰 얼마나 오래 전에 지어졌느냐에 치우쳐서 예측을 하게 될 것이다. 이를 방지하기 위해 데이터를 비슷한 scale로 조정해주어야하고, 그것이 normalization이다. 이는 input data뿐 아니라 neural network의 중간 featuresr값에도 해당되는 이야기이기 때문에 우리는 batch normalization, instance normalization 등을 사용한다.

Batch Normalization

Batch normalization 글 참조

Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks(Camera-ready version of NeurIPS 2020)

BN이 residual network의 학습 가능한 depth를 크게 증가시켰지만, 이는 학습 초반 BN이 skip connection에 대해 residual branch를 downscale하기 때문에 발생하는 것이라고 주장하며, 이를 실험으로 증명하는 논문입니다. 이는 결국 BN이 적용된 residual blocks의 연산이 거의 identity function($x=x$)에 가깝고, 이 사실을 기반으로 BN없이 deep residual network를 학습시킬 수 있는 Skipinit 방식을 제안합니다.

Introduction

skip connection + batch normalization ⇒ 학습 가능한 nerual network 의 depth를 크게 증가시켰지만 BN의 효과의 기원이 잘 이해되지 않아왔다.

그럼에도 layer noramlization과 transformer 구조가 소개됨에 따라 대부분의 SOTA모델이 skip connection + normalization 조합을 사용하고 있다.

contributions

Why are deep normalized residual networks trainable?

이 효과 이해 위해 학습 초반 single training example의 hidden activations를 분석하였다.