기울기 소실Vanishing Gradient

배우라는 신호가 층을 거치며 희미해져 사라지는 현상

핵심 정리
  • 기울기 소실은 배우라는 신호가 층을 거슬러 내려가는 동안 점점 작아져 입력 쪽 층에는 거의 닿지 않는 현상이에요.
  • 신호는 층을 지날 때마다 곱해지며 전달돼요. 1보다 작은 수를 여러 번 곱하면 금세 0에 가까워져요.
  • 앞쪽 층이 거의 그대로 멈춰 있으니, 깊게 쌓았는데 오히려 성적이 나빠지는 일이 벌어져요.
  • 활성화 함수 교체, 값의 크기를 고르게 다듬기, 층을 건너뛰는 지름길로 상당 부분 풀렸어요.
  • 반대로 신호가 층마다 커지기만 하면 값이 폭발하는 반대쪽 문제가 생겨요.
목차

1비유로 이해하기

교실에서 줄을 서서 하는 귓속말 전달 놀이를 떠올려 보세요. 맨 뒤 사람이 "세 번째 줄부터 다시" 하고 앞사람 귀에 속삭여요. 규칙이 하나 있어요. 들은 소리의 절반 크기로만 다음 사람에게 넘길 것.

다섯 명만 지나도 소리는 웅얼거림이 되고, 열 명째에서는 앞사람 귀에 숨소리만 닿아요. 맨 앞에 선 사람은 무엇을 고쳐야 하는지 듣지 못한 채 처음 자세 그대로 서 있어요. 뒤쪽은 계속 다듬어지는데 앞쪽만 멈춰 있는 상태, 이것이 기울기 소실이에요.

줄을 길게 세울수록 이 문제는 심해져요. 사람을 더 붙일수록 앞쪽은 더 조용해지니까요.

2자세히 알아보기

신호는 뒤에서 앞으로 흘러요

모델이 답을 낼 때는 입력에서 출력 방향으로 계산이 흘러요. 반대로 "무엇을 고쳐야 하는가"를 알려 주는 신호는 출력 쪽에서 입력 쪽으로 거슬러 흘러요. 답이 얼마나 틀렸는지는 맨 끝에서만 알 수 있으니까요.

그래서 출력에 가까운 층은 이 신호를 가장 먼저, 그리고 가장 또렷하게 받아요. 입력에 가까운 층은 그 신호가 여러 층을 다 지나온 뒤에야 받고요. 줄 맨 뒤에서 시작한 귓속말이 맨 앞까지 가는 것과 같은 순서예요.

층을 지날 때마다 곱해져요

신호가 한 층을 건널 때는 그 층이 가진 값과 활성화 함수의 성질에 따라 크기가 조정돼요. 문제는 이 조정이 더하기가 아니라 곱하기라는 점이에요. 층마다 절반씩 줄어든다면 열 층을 지날 때 신호는 천 분의 일 아래로 내려가요.

특히 예전에 많이 쓰던 S자 모양 활성화 함수는 입력이 조금만 크거나 작아도 출력이 납작해져요. 납작한 구간에서는 넘겨주는 값이 아주 작아서, 층을 몇 개만 쌓아도 신호가 눈에 띄게 줄어요. 반대로 층마다 1보다 큰 수가 곱해지면 신호가 걷잡을 수 없이 커져서 값이 튀어 오르기도 해요.

앞쪽 층이 멈추면 생기는 일

앞쪽 층은 글자나 그림의 가장 기본적인 특징을 잡아내는 자리예요. 이 층이 배우지 못하면 그 위의 층들은 다듬어지지 않은 재료로 계속 일해야 해요. 층을 늘려 성능을 올리려 했는데, 얕은 모델보다 오히려 못한 결과가 나오는 일이 여기서 생겨요.

증상은 대체로 이렇게 나타나요. 학습을 한참 돌려도 오차가 어느 지점에서 더 내려가지 않고, 앞쪽 층의 숫자는 처음 무작위로 정해 준 값에서 거의 변하지 않아요. 긴 문장을 순서대로 처리하는 모델에서는 문장 앞부분의 정보가 뒤까지 전해지지 않는 형태로 나타나기도 해요.

소리를 지키는 방법들

가장 큰 전환점은 층을 건너뛰는 지름길이었어요. 신호가 층을 하나하나 거치며 줄어드는 대신, 몇 층을 한 번에 넘어가는 통로를 따로 내 준 거예요. 귓속말 줄에서 맨 뒤 사람이 맨 앞까지 직접 소리를 전달할 수 있는 길을 하나 더 놓아 준 셈이에요.

납작해지지 않는 활성화 함수를 쓰는 것도 큰 몫을 했어요. 값이 양수인 구간에서 크기를 그대로 넘겨주는 함수를 쓰면 곱해지는 값이 줄어들지 않아요. 여기에 층마다 값의 크기를 고르게 맞춰 주는 처리와, 처음 숫자를 지나치게 크거나 작지 않게 정해 주는 요령이 더해졌어요. 순서대로 읽는 모델에서는 무엇을 기억하고 무엇을 흘려보낼지 정하는 문 구조를 두어 신호가 오래 살아남게 했고요.

3조금 더 정확하게

역전파는 층마다의 국소 미분을 차례로 곱해 나가는 연쇄 계산이에요. 각 층에서 곱해지는 값이 평균적으로 1보다 작으면 층 수만큼 거듭 곱해지며 지수적으로 줄어들고, 1보다 크면 같은 이유로 지수적으로 커져요. S자 활성화 함수의 미분값은 가장 클 때도 0.25 남짓이라, 이 함수만 쌓으면 층마다 최소 네 배씩 줄어드는 셈이에요.

비유가 어긋나는 지점이 있어요. 귓속말은 소리가 작아지면서 내용까지 엉뚱하게 바뀌지만, 기울기 소실은 방향은 대체로 유지된 채 크기만 작아지는 쪽에 가까워요. 그래서 신호가 완전히 사라진 것이 아니라 너무 작아서 걸음에 반영되지 않는 상태로 보는 편이 정확해요.

또 모든 갈래가 똑같이 줄어들지도 않아요. 어떤 경로는 살아남고 어떤 경로만 죽기 때문에, 같은 층 안에서도 배우는 부분과 멈춘 부분이 섞여 있을 수 있어요.

4직접 해보기

5흔한 오해

  • 층을 깊게 쌓을수록 똑똑해진다고 생각하기 쉽지만, 실제로는 신호가 앞쪽까지 닿지 않으면 얕은 모델보다 못한 결과가 나오기도 해요.

  • 이제는 해결된 옛날 문제다라고 여기기 쉽지만, 실제로는 대책이 늘어 완화된 것이고 아주 깊거나 아주 긴 입력을 다룰 때는 여전히 신경 써야 해요.

  • 걸음 크기를 키우면 해결된다고 생각하기 쉽지만, 실제로는 이미 큰 신호까지 함께 커져서 값이 튀어 오르고 학습이 더 불안정해져요.

7한 줄 요약

그러니까기울기 소실은 고치라는 신호가 층을 거치며 절반씩 작아지다 앞쪽 층에는 닿지 못해 학습이 멈추는 현상이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02