역전파는 신경망이 기울기를 계산할 때 사용하는 방법입니다. 즉, 각 가중치나 편향을 조금 바꿨을 때 손실이 얼마나 달라지는지를 구합니다. 쉽게 말해, 어떤 파라미터가 예측을 잘못된 방향으로 밀었는지, 그리고 그 영향이 얼마나 큰지를 모델에 알려줍니다.
짧게 요약하면 간단합니다. 먼저 네트워크를 순전파로 실행하고 오차를 측정한 뒤, 같은 계산 과정을 연쇄법칙으로 거꾸로 따라갑니다. 이렇게 하면 깊은 모델도 다룰 수 있는데, 각 층은 작은 국소 미분값만 기여하면 되기 때문입니다.
역전파가 계산하는 것
역전파 자체가 파라미터를 업데이트하는 것은 아닙니다. 역전파는 , 같은 기울기를 계산합니다. 여기서 은 손실입니다. 실제 업데이트는 경사하강법 같은 옵티마이저가 이 기울기를 사용해 수행합니다.
모델과 손실이 미분 가능하거나, 적어도 기울기 기반 방법을 쓸 수 있을 만큼 구간별로 충분히 미분 가능하다면, 역전파를 통해 한 번의 역방향 패스로 이런 기울기들을 효율적으로 계산할 수 있습니다.
왜 연쇄법칙이 핵심 아이디어인가
신경망을 긴 계산의 사슬이라고 생각해 보세요. 각 층은 입력을 받아 변환하고, 그 결과를 다음 층에 넘깁니다. 손실에 도달할 때쯤이면 최종 오차는 그 이전의 모든 선택에 의존하게 됩니다.
역전파는 각 단계에서 국소적인 질문을 던집니다. 이 중간값이 조금 바뀌면 최종 손실은 얼마나 바뀔까? 뒤로 갈수록 이런 국소 효과들이 서로 곱해집니다. 이것이 연쇄법칙을 쉬운 말로 표현한 것입니다.
뉴런 하나로 보는 역전파 예제
입력이 하나인 뉴런 하나를 사용해 봅시다.
여기서 는 입력, 는 가중치, 는 편향, 는 예측값, 는 정답, 는 시그모이드 함수입니다.
다음과 같이 두겠습니다.
1단계: 순전파
먼저 뉴런의 가중합을 계산합니다.
이제 시그모이드를 적용합니다.
이제 손실을 계산합니다.
예측값이 정답보다 낮으므로 손실은 양수입니다.
2단계: 역전파
이제 가중치에 대한 기울기를 계산해 봅시다.
손실에서 시작해 안쪽으로 들어갑니다.
시그모이드에 대해서는
가중합에 대해서는
이제 이 조각들을 연쇄해서 곱합니다.
숫자를 대입하면
음수 부호는 중요합니다. 여기서는 나 를 조금 증가시키면 손실이 줄어든다는 뜻입니다. 현재 예측값이 너무 낮기 때문에 이 상황과 잘 맞습니다.
학습률 인 경사하강법을 사용하면
이것이 핵심 아이디어를 아주 작게 축소한 모습입니다. 순전파, 손실 계산, 역전파, 업데이트입니다.
왜 역전파가 깊은 신경망에서도 작동하는가
더 깊은 네트워크에서도 같은 일을 층마다 반복합니다. 가장 큰 차이는 각 은닉층이 이후 층들을 통해 간접적으로 손실에 영향을 준다는 점입니다. 그래서 그 기울기에는 연쇄법칙의 항이 더 많이 들어갑니다.
역전파가 실용적인 이유는 각 층이 자신의 국소 미분값과 바로 다음 층에서 넘어오는 신호만 알면 되기 때문입니다. 모든 파라미터마다 네트워크 전체를 처음부터 다시 미분할 필요가 없습니다.
역전파에서 흔한 실수
역전파와 경사하강법을 혼동하기
역전파는 기울기를 계산합니다. 경사하강법은 그 기울기를 사용해 파라미터를 업데이트합니다. 둘은 밀접하게 연결되어 있지만, 같은 단계는 아닙니다.
손실이 맨 끝에 있다는 점을 잊기
역방향 패스는 임의의 은닉층이 아니라 손실에서 시작합니다. 손실이 무엇에 의존하는지 놓치면, 미분의 연결 고리가 보통 끊어집니다.
활성화 함수의 동작을 무시하기
일부 활성화 함수는 특정 구간에서 매우 작은 기울기를 만듭니다. 이런 일이 많은 층에서 반복되면 학습이 느려질 수 있습니다.
역방향 패스 한 번이면 모델이 학습됐다고 생각하기
역방향 패스 한 번은 한 배치에 대한 하나의 기울기 집합만 제공합니다. 실제 학습에는 보통 많은 예제에 걸친 여러 번의 업데이트가 필요합니다.
역전파는 언제 사용되는가
역전파는 다층 퍼셉트론, 합성곱 신경망, 순환 모델, 트랜스포머를 포함한 많은 신경망을 학습시킬 때 쓰이는 표준적인 기울기 계산 방법입니다.
정확한 옵티마이저는 달라질 수 있고, 일부 구조는 실용적인 기법을 추가하기도 합니다. 하지만 핵심 아이디어는 대개 같습니다. 손실을 계산하고, 기울기를 뒤로 전파하고, 미래의 오차를 줄이도록 파라미터를 업데이트하는 것입니다.
기억하기 쉬운 실전식 정리
역전파는 층으로 이루어진 모델 내부에서 공과 책임을 체계적으로 나누는 방법입니다. 출력이 틀렸다면, 이 방법은 그 오차를 뒤로 추적해 각 파라미터가 얼마나 기여했는지에 대한 신호를 줍니다.
그래서 "신경망이 학습하는 방법"이라는 표현은 대체로 맞습니다. 학습은 반복적인 파라미터 업데이트를 통해 일어나고, 역전파는 그 업데이트가 무작위가 아니라 근거를 갖도록 만들어 줍니다.
비슷한 문제를 직접 해보기
같은 예제를 유지하되 정답을 에서 으로 바꿔 보세요. 와 를 다시 계산한 뒤, 부호가 어떻게 바뀌는지 확인해 보세요. 이 한 가지 변화만으로도 공식을 외우는 것보다 손실의 역할이 훨씬 더 분명하게 보입니다.