들어가며
저번 글에서 그레디언트 소실 문제를 해결할 수 있는 방안으로
가중치 초기화 방식과 활성화 함수에 대해 알아보았는데, 이 두가지를 아무리 잘 설정한다고 하더라도
훈련하는 동안 그레디언트 소실 문제가 다시 일어나지 않을거란 보장이 없다
그래서 이번 글에서는 그레디언트 소실 문제 해결을 위한 다른 방법인 배치 정규화에 대해 알아볼 것이다
또한 마지막에는 그레디언트 클리핑이라는 기법까지 다뤄보겠다
배치 정규화
배치 정규화는 각 층에서 활성화 함수를 통기화기 전 또는 후에 연산을 하나 추가하여
분포를 안정화시켜 학습을 더 빠르고 안정적으로 만드는 기법이다
핵심 아이디어는 각 배치를 평균 0 분산 1에 가깝게 정규화한 뒤 하이퍼파라미터 γ, β를 이용해서
학습에 적절하도록 스케일과 이동을 조절한다
알고리즘 과정은 아래와같다


우선 입력 데이터를 정규화시키기 위해서는 데이터의 평균과 표준편차를 구해야한다
그래서 처음 두 단계는 평균과 표준편차를 구하는 과정이다
세 번째 단계에서 추정된 평균과 표준편차를 통해 정규화를 진행하고
네 번째 단계에서 스케일 조정 파라미터( γ ), 이동 파라미터( β )를 사용하여 스케일을 조정하고 이동시킨다
스케일을 조정하고 이동시키는 이유는 정규화가 진행됐을 때 모든 데이터가 평균0, 분산1로 고정된다
이렇게되면 모델이 원하는 표현을 학습하기 어려워져 모델이 적절한 크기와 위치를 알아서 학습할 수 있도록
두 개의 파라미터를 추가로 학습시키는 것이다
참고로 배치 정규화를 신경망 첫 번째 층으로 추가하면
배치 정규화 층이 정규화를 대신 수행해주기에 훈련 세트를 정규화할 필요가 없어진다
그런데 여기서 문제가 한 가지 발생한다
테스트 세트를 검증할 때에는 샘플의 배치가 아니라 샘플 하나 혹은 작은 배치에 대한 예측을 만들어야 하는데
그렇게되면 평균, 분산 값의 의미가 거의 없어진다
그래서 배치 정규화는 학습 중 누적해서 이동 평균, 이동 분산이라는 것을 저장하여 이 문제를 해결한다
이동 평균과 분산은 다음과 같이 계산된다

분산도 같은 방식으로 진행되며 α 값은 주로 0.9가 사용된다
훈련하는 동안 추정된 이동 평균과 이동 분산을 테스트 시에 위 배치 정규화 알고리즘 과정에서
정규화 식에 그대로 평균 벡터와 분산 벡터와 바꿔서 집어넣어주면 된다

이러한 배치 정규화는 특히 이미지 분류 작업에서 좋은 성능을 보이며
그레디언트 소실 문제가 크게 감소하여 tanh나 시그모이드 함수 같이
수렴성을 가진 활성화 함수를 사용할 수 있게 해주었다
또 하나의 장점으로 배치 정규화가 규제 역할을 해주어 다른 규제 기법의 필요성을 줄여주기도 한다
하지만 부수적인 효과이기에 비교적 크지 않으므로 다른 규제 기법을 따로 사용해주긴 해야한다
그레디언트 클리핑
그레디언트 손실 문제를 해결하는 또 하나의 방법으로는
역전파가 진행될 때 특정 임곗값을 넘어선다면 그레디언트를 잘라내는 기법이다
이를 그레디언트 클리핑(gradient clipping)이라고 부른다
그레디언트 클리핑은 크게 두 가지 방법이 있다
첫 번째는 value clipping으로 그레디언트 벡터의 원소별로 -1.0과 1.0 사이로 클리핑한다
-1.0보다 작으면 -1.0으로, 1.0보다 크면 1.0으로 원소를 지정한다
에를 들어 그레디언트 벡터가 [0.9, 100.0]이라면 클리핑 진행 시 [0.9, 1.0]으로 된다
이 기능은 그레디언트 벡터의 방향을 바꿀 수 있다
위의 예시대로라면 [0.9, 100.0]은 벡터 방향이 거의 두 번째 축 방향을 향하고
[0.9, 1.0]이 됐을 땐 두 축 사이 대각선 방향을 향하게된다
두 번째 방법으로는 norm clipping이 있다
벡터의 방향이 바뀌는 것을 원하지 않는다면 이 방법을 사용하면 된다
그레디언트 크기가 임곗값보다 크다면 개별 원소가 아닌 전체 그레디언트를 클리핑한다
축소 비율은 아래와 같고 c는 임곗값을 의미한다

예를 들어 임곗값을 5이고 그레디언트 벡터가 [6, 8]이라면 [3, 4]로 클리핑되는 것이다
전체 그레디언트를 클리핑하므로 벡터 방향이 그대로 유지된다
그레디언트가 폭주하게 될 경우 두 가지 방법을 모두 사용하여 클리핑하는 것이 좋다
이 때 norm clipping을 먼저 해서 전체 구조 유지하면서 스케일만 조정시키고
value clipping을 통해 이상치를 조정하는 느낌으로 가야한다
마치며
이번 글에서는 그레디언트 소실 문제를 막는 다른 방법들인 배치 정규화와 그레디언트 클리핑에 대해 알아보았다
배치 정규화를 테스트 시에는 이동 평균을 활용한다는 내용을 봤을 때
훈련 때 가장 최종 시점의 평균과 분산을 사용하면 되는거 아니야? 라는 생각이 들었고
이동 평균을 굳이 왜 사용하나에 대한 의문이 있었다
하지만 훈련 때 가장 최종 시점의 평균과 분산은 데이터의 마지막 미니배치만 대표하는 통계량이여서
잘못된 생각이었음을 알게되었다
이렇게 배운 내용을 글로 정리할 때 다회독이 되니까 놓쳤던 내용을 알게되고
새로운 의문이 들고 이를 이해하는 과정이 중요함을 다시 한 번 느꼈다
'AI > Deep Learning' 카테고리의 다른 글
| [DL] 신경망 규제 (1) | 2026.07.14 |
|---|---|
| [DL] 학습률 스케줄링 (0) | 2026.07.13 |
| [DL] 고속 옵티마이저 (0) | 2026.07.12 |
| [DL] 그레디언트 소실 문제 해결을 위한 가중치 초기화 방식들과 여러 활성화 함수 (0) | 2026.07.09 |
| [DL] 퍼셉트론과 역전파 알고리즘 (0) | 2026.06.20 |
