본문 바로가기

AI,ML,DL 지식공유

Batch normalization이란

개념 정리

  • Batch Normalization에서는 각 layer에 들어가는 input을 normalize 시킴
  • Batch normalization의 효과 : 학습 가속화, 정규화
  • Internal Covariance Shift라는 현상은 Network의 각 층이나 Activation 마다 input의 distribution이 달라지는 현상을 의미하는데 Batch normalization은 이를 방지하기 위함
  • 순서 : Input --> Batch normalization --> activation function--> Next Hidden layer

  • Training과정에서는 mini-batch에서 평균과 표준편차를 구하여 활용 
  • Test 과정에서는 training 과정에서 미리 계산해둔 이동평균과 편차를 활용하여 normalization을 진행, gamma와 beta를 활용하는것은 동일 

CNN에서 Batch normalization 

  • Convolution layer에서 보통 activation function에 값을 넣기 전 Wx+b 형태로 weight를 적용시키는데, Batch Normalization을 적용하면 beta 값이 b의 역할을 대체할 수 있기 때문에 b를 없앤 Wx의 형태로 weight적용
  • CNN의 경우 convolution의 성질을 유지시키고 싶기 때문에, 각 channel을 기준으로 각각의 Batch Normalization 변수들을 생성
  • 각 Layer의 channel 숫자만큼 Mean, Variance가 생성됨.