Batch Normalization

정주호·2023년 9월 23일
0

CMU - IntroDL 수업에서 Batch Normalization 수업 자료 정리입니다.
참고: https://gaussian37.github.io/dl-concept-batchnorm/

Gradient Descent

  • 손실 함수에 대해서 미분값이 최소가 되는 점을 찾아 weight을 찾는 과정
  • Step size = Learning rate
  • 일반적인 Gradient descent에서는 모든 데이터 샘플 N개에 대해서 모든 gradient를 구하고, 그 모든 gradient에 대해서 평균을 계산하여 모델을 업데이트 한다.
    -> 이런 방식은 대용량의 데이터를 한번에 처리하지 못한다는 문제가 있기 때문에 전체 N개 데이터를 batch 단위로 나눠서 학습하는 것이 일반적

Stochastic Gradient Descent

  • Stochastic(확률적) = 각 배치를 포함하는 하나의 데이터가 무작위로 선택된다는 의미
  • SGD는 gradient를 업데이트하기 위해서 일부 데이터만 사용. Batch size만큼만 사용하여 모델을 업데이트
  • 단점: 반복이 충분하면 SGD는 효과가 있지만, 노이즈가 매우 심함
  • 단점: SGD는 항상 최저점을 찾는다는 보장이 없음
    -> 해결 방안: Mini Batch SGD

Internal Covariant Shift

  • Batch 단위로 학습을 하게 되면, Internal Covariant shift라는 문제가 생김.
  • 전체 데이터셋을 Batch로 나누게 되면, 각 batch에 따라서 데이터 분포가 달라짐.
    -> 따라서 학습을 Batch단위로 하게 되면, 각 Batch간의 데이터 분포의 차이가 발생할 수 있음.

이 Internal Covaiant Shift 문제를 해결하기 위해서 적용하는 기법이 "Batch Normalization"

Normalization

  • 서로 다른 데이터의 크기를 동일(동등한 중요도를 갖도록)하게 해주기 위해 크기를 변환하는 과정
    ex. 0~255 사이의 값을 갖는 이미지를 255로 나누어 0~1사이로 변환

Regularization

  • 모델이 복잡도를 낮추기 위해 "제약"을 두는 것.

Batch Normalization

  • Batch Normalization은 학습 과정에서 각 배치 단위 별로 데이터가 다양한 분포를 가지더라도 각 배치별로 평균과 분산을 이용해 정규화

한계점

  • 미니 배치 단위로 정규화를 수행한다는 이유-> 최근에 거대한 모델들이 등장하면서, 이러한 모델들을 학습하기 위해 배치사
profile
FIGHTING

0개의 댓글