역전파Backpropagation
오차를 뒤에서 앞으로 되짚어 몫을 나누는 절차
- 역전파는 결과의 오차를 마지막 단계부터 거꾸로 훑으며 단계마다 책임 몫을 나눠 주는 절차예요.
- 나눠 준 몫이 곧 그 값의 기울기예요. 값을 어느 쪽으로 얼마나 고쳐야 할지를 알려 줘요.
- 앞에서 뒤로 한 번 지나가 답을 만들고, 뒤에서 앞으로 한 번 되짚으며 몫을 나눠요. 이 왕복 한 번이 학습 한 걸음이에요.
- 뒤에서부터 시작하는 이유는, 앞 단계의 책임이 뒤 단계를 거쳐야만 결과에 닿기 때문이에요.
- 되짚기를 한 번만 해도 모든 값의 몫이 한꺼번에 나와요. 이 효율 덕분에 층이 아주 깊은 모델도 학습할 수 있어요.
목차
1비유로 이해하기
자동 세차장에 차를 밀어 넣으면 물 뿌리기, 거품, 헹굼, 건조를 차례로 지나 반대편으로 나와요. 그런데 나온 차 뒷유리에 얼룩이 남아 있어요. 어느 단계가 잘못했는지 알아내야 다음 차부터 고칠 수 있어요.
점검은 마지막 단계부터 거슬러 올라가요. 건조 바람이 그 자리만 비켜 갔는지 먼저 보고, 아니라면 헹굼 물줄기를 보고, 그래도 아니면 거품이 덜 묻었는지를 봐요. 앞 단계의 잘못은 뒤 단계를 통과한 뒤에야 얼룩으로 드러나니까, 뒤쪽 몫을 먼저 알아야 앞쪽 몫을 가늠할 수 있어요.
이렇게 한 바퀴 거슬러 오르면 단계마다 "이 얼룩에 네 몫은 이만큼"이라는 값이 붙어요. 그 몫만큼 각 단계의 설정을 조금씩 손보면 다음 차는 조금 더 깨끗하게 나와요.
2자세히 알아보기
앞으로 한 번, 뒤로 한 번
학습의 한 걸음은 왕복이에요. 먼저 자료를 넣고 층을 차례로 통과시켜 답을 만들어요. 세차장에 차를 밀어 넣는 쪽이죠. 나온 답과 실제 정답을 비교해 오차를 재요.
그다음이 되짚는 길이에요. 오차를 마지막 층에 건네주면, 그 층은 자기가 가진 값들이 오차에 얼마나 기여했는지 계산하고 남은 몫을 앞 층으로 넘겨요. 이 넘김이 첫 층까지 이어져요. 두 길이 한 번씩 끝나면 모델 안 모든 값에 "이쪽으로 이만큼"이라는 쪽지가 붙어요.
앞으로 지나갈 때 나온 중간 결과들은 버리지 않고 들고 있어야 해요. 되짚을 때 그 값들이 다시 필요하거든요. 학습을 돌릴 때가 완성된 모델을 쓸 때보다 메모리를 훨씬 많이 먹는 첫 번째 이유예요.
뒤에서부터 거슬러야 하는 이유
앞 단계부터 하나씩 확인하는 방법도 생각해 볼 수 있어요. 값 하나를 아주 조금 바꿔 보고 결과가 얼마나 달라지는지 재는 거예요. 그런데 값이 하나 바뀔 때마다 세차장 전체를 다시 통과시켜야 해요. 값이 수억 개면 이 일을 수억 번 해야 하죠.
되짚는 방식은 이 낭비를 없애요. 뒤 단계의 몫을 알고 있으면 앞 단계의 몫은 곱셈 몇 번으로 바로 나와요. 뒤에서 앞으로 한 번만 훑으면 모든 값의 몫이 동시에 구해져요. 층을 아무리 깊게 쌓아도 학습 시간이 감당할 만한 수준으로 남는 건 이 순서 덕분이에요.
몫을 나눈 다음에는 값을 옮겨요
역전파는 몫을 나눠 주는 데서 끝나요. 그 몫을 보고 값을 실제로 옮기는 일은 경사하강법이 맡아요. 얼마나 옮길지는 학습률이, 어떤 요령으로 옮길지는 옵티마이저가 정해요. 역할이 이렇게 나뉘어 있어요.
몫은 자료를 한 묶음 볼 때마다 새로 계산돼요. 같은 값이라도 어떤 자료를 봤느냐에 따라 이번에는 올리라고, 다음에는 내리라고 할 수 있어요. 그래서 한 번의 몫에 크게 반응하지 않고 조금씩만 움직이는 방식을 써요.
되짚어 갈수록 몫이 흐려져요
되짚는 과정은 층을 지날 때마다 값을 곱해 나가는 일이에요. 곱해지는 값이 1보다 작으면 층을 지날수록 몫이 작아지고, 첫 층에 닿을 즈음에는 거의 0에 가까워져요. 앞쪽 층이 학습되지 않고 멈춰 버리는 기울기 소실이 이렇게 생겨요.
반대로 곱해지는 값이 크면 되짚을수록 몫이 부풀어 값이 튀어 버려요. 층을 건너뛰는 지름길을 두거나 층마다 값의 눈금을 다시 맞춰 주는 장치들이 널리 쓰이는 이유가 여기에 있어요.
깊은 모델이 오랫동안 학습되지 않았던 것도 이 문제 때문이었어요. 되짚는 절차 자체는 예전부터 알려져 있었지만, 몫이 앞쪽까지 살아서 닿게 만드는 장치들이 갖춰지고 나서야 층을 마음껏 쌓을 수 있게 됐어요.
3조금 더 정확하게
역전파는 합성된 함수의 미분을 계산하는 연쇄 법칙을 층 구조에 맞춰 순서대로 적용한 절차예요. 각 층은 뒤에서 받은 몫에 자기 층의 미분값을 곱해 앞으로 넘기고, 동시에 자기 층의 값들에 대한 기울기를 뽑아 둬요. 계산에 필요한 중간 결과는 앞으로 지나갈 때 저장해 두었다가 되짚을 때 꺼내 써요. 학습에 추론보다 메모리가 훨씬 많이 드는 이유예요.
비유가 어긋나는 지점도 있어요. 세차장 단계는 눈에 보이고 서로 뚜렷하게 나뉘지만, 모델의 층은 값이 뒤섞여 흐르기 때문에 "이 단계가 범인"이라고 딱 잘라 말할 수 없어요. 역전파가 내놓는 것은 범인 지목이 아니라, 값마다 아주 조금 움직였을 때 오차가 얼마나 달라지는지에 대한 숫자예요. 또 세차장은 얼룩을 사람이 보고 판단하지만, 학습에서는 오차를 재는 기준이 미리 정해진 계산이에요.
4직접 해보기
5흔한 오해
역전파가 학습 그 자체다라고 생각하기 쉽지만, 실제로는 값을 어느 쪽으로 고칠지 알려 줄 뿐이고 실제로 옮기는 일은 경사하강법과 옵티마이저가 해요.
역전파는 정보를 거꾸로 흘려보내는 것이다라고 여기기 쉽지만, 실제로 뒤로 가는 것은 자료가 아니라 오차의 몫이에요. 자료는 늘 앞에서 뒤로만 흘러요.
층이 깊을수록 역전파가 잘 된다고 생각하기 쉽지만, 실제로는 깊을수록 몫이 흐려지거나 부풀기 쉬워서 따로 손을 써 줘야 해요.
7한 줄 요약
그러니까역전파는 결과의 오차를 마지막 단계부터 거슬러 훑으며 값마다 책임 몫을 나눠 주는, 학습의 되짚는 길이에요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02