역전파 (Backpropagation)
쉽게 풀면
여러 사람이 릴레이로 서류를 검토하다가 마지막 사람이 "결과가 틀렸다!"고 외쳤다고 해봅시다. 그러면 마지막 검토자부터 시작해서 "내가 몇 % 잘못했지?"를 따진 뒤, 그 책임을 앞 사람에게 전달하고, 앞 사람도 자기 몫을 따져 또 그 앞사람에게 전달하는 식으로 거슬러 올라갑니다. 역전파는 정확히 이런 과정을 신경망에서 수행합니다. 신경망은 입력 → 여러 층 → 출력 순서로 계산(순전파)을 하고, 마지막에 정답과 비교해 오차를 구합니다. 그 다음 미적분의 연쇄법칙을 이용해 "출력층의 오차가 각 층의 가중치 때문에 얼마나 커졌는지"를 거꾸로 계산해나갑니다. 이렇게 구한 값(기울기)을 가지고 경사하강법이 각 가중치를 조금씩 수정합니다.
왜 중요한가
역전파는 신경망을 아무리 층이 깊어도 효율적으로 학습시킬 수 있게 해주는 핵심 알고리즘이라, 딥러닝을 다루는 논문 대부분이 이 개념을 전제로 방법론을 설명합니다. 새로운 네트워크 구조나 학습 기법을 제안하는 논문은 결국 "이 구조에서 기울기가 잘 전달되는가, 안정적으로 계산되는가"를 다루는 경우가 많아서, 최적화·학습 안정성·수렴 속도 같은 상위 연구주제와도 자연스럽게 연결됩니다. 또한 실무에서 모델이 잘 학습되지 않을 때 원인을 진단하는 출발점도 대체로 역전파 과정에 있습니다.
논문에서는 이렇게 쓰입니다
이 문장은 "모델의 각 층 가중치를 손으로 하나하나 설정한 것이 아니라, 오차를 거꾸로 전달해 계산한 기울기를 이용해 자동으로 학습시켰다"는 뜻입니다.
층이 많아질수록 오차 신호가 뒤로 전달되는 동안 점점 작아져 앞쪽 층까지 제대로 전달되지 않을 수 있는데, 이 문제를 구조적으로 줄이기 위한 설계를 설명하는 문장입니다.
지도학습뿐 아니라 강화학습 분야에서도 정답 오차 대신 보상 신호로부터 얻은 기울기를 같은 방식으로 거꾸로 전달해 파라미터를 조정한다는 의미입니다.
조금 더 깊게 보면
역전파를 실제로 이해하려면 연쇄법칙(chain rule)이 각 층을 거치며 어떻게 미분값을 곱해나가는지를 아는 것이 도움이 됩니다. 이 과정에서 층이 깊어질수록 곱해지는 값들이 계속 작아져 기울기가 거의 0에 가까워지는 기울기 소실(vanishing gradient), 반대로 값이 커져 발산하는 기울기 폭주(exploding gradient) 문제가 논문에서 자주 언급됩니다. 이를 다루기 위해 잔차 연결, 정규화 기법, 적절한 가중치 초기화, 그래디언트 클리핑(gradient clipping) 같은 방법들이 함께 등장하는 경우가 많습니다. 최근 프레임워크에서는 이 계산을 자동미분(automatic differentiation)이 대신 수행해주지만, 그 내부 원리는 여전히 역전파와 동일한 연쇄법칙에 기반합니다.
주의할 점
역전파 자체는 기울기를 "계산"하는 방법일 뿐, 가중치를 실제로 "업데이트"하는 것은 경사하강법의 몫입니다. 두 개념을 혼동해서 역전파가 곧 학습 알고리즘 전체라고 오해하기 쉬운데, 정확히는 역전파(기울기 계산) + 경사하강법(가중치 갱신)이 합쳐져야 학습이 완성됩니다.