Deep Learning

Internal Covariate Shift와 Batch Normalization

Kimhj 2023. 10. 2. 14:19
  • Internal Covariate Shift는 Deep learning Network의 depth 가 증가하면서 학습 과정에서 발생하는 문제 중 하나로, 내부적인 데이터 분포 변화 현상
  • 좀 더 자세히는, 학습 과정에서 계층별로 입력 데이터의 분포가 달라지는 현상이다. (Deep Neural Network 에서는 각 레이어의 가중치 업데이트가 이전 레이어의 출력에 의존하는 경우가 많음)
  • 이로 인해 학습 초기 단계에서는 네트워크의 중간 레이어에서 출력 분포가 크게 변할 수 있는데, 이러한 현상이 Internal Covariate Shift의 핵심 개념이다.

 

  • Internal Covariate Shift로 인한 문제
    • 학습 속도 저하 (Slow Training): 내부 공변량 변화로 인해 각 레이어의 가중치 업데이트가 불안정해질 수 있으며, 이로 인해 학습 속도가 느려질 수 있음.
    • 초기화의 중요성 (Importance of Initialization): 초기 가중치 설정(initialization)이 Internal Covariate Shift를 완화시키는 데 중요한 역할을 할 수 있음.
    • 더 많은 에포크 필요 (More Epochs Required): Internal Covariate Shift가 발생할 경우, 모델이 수렴하는 데 더 많은 학습 에포크가 필요할 수 있음

내부 공변량 변화를 완화하기 위한 몇 가지 대표적인 방법과 개선 기술이 있음.

  • Batch Normalization (배치 정규화): 배치 정규화는 각 레이어의 입력을 정규화하여 평균과 분산을 일정하게 유지하도록 도와 Internal Covariate Shift를 완화합니다. 이로 인해 학습 속도가 향상되고 초기화의 영향을 줄일 수 있음.
  • Layer Normalization (레이어 정규화): 배치 정규화와 유사한 원리로 동작하지만 배치 정규화 대신 레이어 내부에서 정규화를 수행함.
  • Instance Normalization (인스턴스 정규화): 주로 스타일 변환 및 이미지 생성과 같은 작업에서 사용되며, 배치나 레이어 대신 이미지 내에서 각 인스턴스(예: 이미지의 픽셀)에 대한 정규화를 수행함

이러한 정규화 기술을 사용하여 Internal Covariate Shift 완화하면 뉴럴 네트워크의 학습을 안정화하고 학습 속도를 향상시킬 있다. 

'Deep Learning' 카테고리의 다른 글

트랜스포머(Transformer) 개념, 설명  (0) 2023.10.09
Gradient clipping  (0) 2023.10.06
opencv  (0) 2023.10.02
seq-to-seq  (0) 2023.09.26
Optimizer 종류  (0) 2023.09.17