기울기 소실 문제 (Vanishing Gradient Problem)
쉽게 풀면
여러 사람이 일렬로 서서 귓속말을 전달하는 게임을 떠올려봅시다. 맨 뒷사람이 작은 목소리로 속삭이면, 그 메시지는 사람을 거칠 때마다 조금씩 작아지고 흐려져서 결국 맨 앞사람에게는 거의 들리지 않게 됩니다. 신경망에서도 비슷한 일이 일어납니다. 출력층에서 계산한 오차 신호(기울기)를 역전파를 통해 앞쪽 층으로 전달하는데, 층을 거칠 때마다 이 신호가 곱셈으로 인해 점점 작아지면, 입력에 가까운 앞쪽 층은 "내가 얼마나 틀렸는지"에 대한 신호를 거의 받지 못해 가중치가 제대로 업데이트되지 않습니다.
왜 중요한가
기울기 소실 문제는 신경망을 단순히 깊게 쌓기만 해서는 성능이 좋아지지 않는 근본적인 이유를 설명해주기 때문에, 잔차 연결이나 LSTM 같은 구조적 개선을 제안하는 논문이라면 거의 예외 없이 이 문제를 배경으로 언급합니다. 딥러닝이 왜 특정 초기화 방식, 활성화 함수, 정규화 기법을 필요로 하는지를 이해하는 데에도 핵심적인 출발점이 됩니다.
논문에서는 이렇게 쓰입니다
이 문장은 딥러닝 모델의 학습 난제를 분석하는 부분에서 자주 등장합니다. 특히 층이 깊은 신경망이나 긴 시퀀스를 다루는 순환 신경망 계열 모델에서는 이 문제가 두드러지게 나타나며, 이를 해결하기 위한 구조적 개선을 제안하는 논문에서 배경 설명으로 인용됩니다.
컴퓨터비전 분야 논문에서는 층을 건너뛰는 지름길 연결을 추가해 신호가 여러 층을 거치면서도 크게 줄어들지 않도록 설계한 구조를 제안할 때 이 문제를 근거로 든다.
딥러닝 기초 연구 논문에서는 특정 활성화 함수가 기울기를 얼마나 잘 보존하는지를 비교하며 학습 안정성 개선 효과를 보고할 때 이 개념을 사용한다.
조금 더 깊게 보면
기울기 소실은 연쇄법칙에 따라 여러 층의 미분값을 곱해나가는 역전파 특성상, 각 층의 미분값이 1보다 작은 경우가 반복되면 전체 곱이 지수적으로 작아지는 데서 비롯됩니다. 시그모이드나 하이퍼볼릭탄젠트처럼 출력이 특정 구간에서 포화되는 활성화 함수는 미분값이 0에 가까워지는 구간이 넓어 이 문제를 악화시키는 경향이 있어, ReLU 계열 함수나 적절한 가중치 초기화(Xavier, He 초기화 등)로 이를 완화하는 것이 일반적입니다. 순환 신경망에서는 시간 축을 따라 같은 가중치가 반복 곱해지기 때문에 문제가 특히 심해지며, 이를 해결하기 위해 게이트 구조를 통해 정보를 선택적으로 유지하는 LSTM이나 GRU 같은 구조가 고안되었습니다.
주의할 점
기울기가 점점 작아지는 소실 문제와 반대로, 기울기가 층을 거칠수록 점점 커져 발산해버리는 "기울기 폭발" 현상도 존재합니다. 두 현상 모두 층이 깊은 신경망에서 나타나는 학습 불안정 문제이며, ReLU 계열 활성화 함수, 배치 정규화, 잔차 연결(residual connection) 등의 기법으로 완화할 수 있습니다.