인공신경망 성능 높이기 (2) - 정규화

IngCoding·2022년 6월 20일
1

머신러닝

목록 보기
20/34

1. 가중치 초기화

  • 기울기 소실과 그에 반대되는 기울기 폭주(Gradient Exploding)를 예방해야 제대로 된 학습이 가능하다.
  • 가중치 초기화와 정규화를 통해 이 문제를 해결할 수 있다.

1) He 초기화

  • He 초기화는 균등분포 또는 정규분포의 두 가지 경우로 나뉜다.

  • 균등분포의 범위, 정규분표의 표준편차가 아래의 식을 만족해야한다. (nin 은 이전 층 뉴런갯수)

  • He 초기화 균등분포 범위(위(와 정규분포 표준편차(아래)


  • 이를 통해 여러 층의 기울기 분산 사이에 균형을 맞춰 특정 층이 너무 주목 받거나 다른 층이 뒤쳐지는 것을 막는다.

  • ReLU 계열 함수와 함께 좀 더 보편적으로 쓰인다.

2) 세이비어 초기화

  • 시그모이드 함수와 하이퍼볼릭탄젠트 함수의 경우 효율적인 초기화 방법
  • 다음 층 뉴런의 개수(nout도 함께 활용)
  • 균등분포 범위와 정규분포의 표준편차

2.정규화

1) 내부공변량 변화

  • 공변량 변화는 훈련 데이터의 분포와 테스트 데이터의 분포가 다른 경우를 의미한다.
    (이전 층 학습으로 바뀐 현재층 데이터 분포와 이전 시점인 현재층 학습시점의 데이터 분포가 달라져서 발생)
  • 이 중 내부 공변량 변화는 신경망 층 사이에서 발생하는 입력 데이터의 분포 변화로 딥 러닝 모델의 불안정성을 증가시켜 기울기 소실/폭주를 발생시킬 수 있다.

2) 배치정규화

  • 기울기 소실/폭주를 해결하기 위해 정규화를 수행한다.
  • 정규화는 중복된 데이터를 제거해나가는 과정으로 인공신경망에서 정규화는 각 층에서 활성화 함수를 통과하기 전에 입력에 대한 평균을 0으로 만들고 수행된다.
  • 정규화 된 데이터에 대해선 스케일과 시프트를 수행한다.
  • 배치 정규화 수식

장점

  • 배치 정규화를 사용하면 시그모이드나 하이퍼볼릭탄젠트에서 기울기 소실 문제가 크게 개선
  • 가중치 초기화에 훨씬 덜 민감해지고, 훨씬 큰 학습률 활용 가능해 학습 속도가 빨라짐.
  • 미니 배치마다 평균과 표준편차를 계산하므로 훈련 데이터 간섭이 가능해 과적합을 방지 (부수적 효과이므로 드롭 아웃과 함께 사용하는 것이 좋다)

한계

  • 배치 정규화는 모델을 복잡하게 해서 테스트 데이터에 대한 예측 시 실행시간이 느려짐 (서비스 속도 측면에서 꼭 필요한지 고민이 필요)
  • 너무 작은 미니배치 크기에는 잘 동작하지 않을 수 있다.
  • RNN과 같이 각 시점(time step)마다 다른 통계치를 가지는 경우 적용하기 어려워 층 정규화를 적용하곤 한다.

3) 층 정규화

  • 배치정규화와의 비교를 층 정규화를 살펴보자.
  • 배치 정규화 도식과 층 정규화 도식
  • 시점이 일치하는 같은 층을 기준으로 정규화
profile
Data & PM

0개의 댓글