이전 장에서 우리는 신경망이 무엇으로 이루어져 있는지 살펴봤다. 뉴런, 가중치, 편향, 활성화 함수, 층. 이제 벽돌은 손에 쥐었다. 하지만 독자가 정말 궁금한 것은 그다음이다. 이 벽돌이 어떻게 저절로 모양을 바꿔 가며 정답에 가까워지는가 하는 점이다.
딥러닝을 처음 접하면 가장 마술처럼 보이는 장면이 바로 여기다. 모델은 처음에는 엉뚱한 답을 내놓는다. 그런데 데이터를 계속 보여주면 점점 나아진다. 마치 기계가 이해를 쌓아 가는 것처럼 보인다. 물론 실제로는 이해라는 단어보다 더 정확한 표현이 있다. 모델은 자신의 파라미터를 조금씩 조정하면서 오차를 줄이는 방향을 배운다.
이 한 문장을 제대로 이해하면 딥러닝은 훨씬 덜 신비롭게 보인다. 학습은 어떤 초월적인 깨달음이 아니라, 예측하고, 틀린 정도를 재고, 수정할 방향을 계산하고, 조금 움직이는 과정을 아주 많이 반복하는 일이다.

학습은 한 번의 정답이 아니라 반복되는 루프다
딥러닝의 학습은 거대한 한 방이 아니다. 오히려 아주 소박한 루프다. 입력이 들어오면 모델이 예측을 만든다. 그 예측이 정답과 얼마나 다른지 계산한다. 그 차이를 줄이려면 내부의 가중치와 편향을 어느 방향으로 얼마나 바꿔야 하는지 구한다. 그리고 실제로 조금 바꾼다. 그런 다음 다시 예측한다.
이 과정을 계속 반복하면 모델은 처음의 서툰 상태에서 점점 문제에 맞는 함수로 바뀐다.
이 흐름을 가장 간단히 쓰면 이렇다.
순전파: 입력으로부터 예측을 만든다.
손실 계산: 예측이 얼마나 틀렸는지 숫자로 만든다.
역전파: 각 파라미터가 손실에 얼마나 기여했는지 계산한다.
파라미터 업데이트: 기울기 정보를 이용해 가중치와 편향을 조정한다.
딥러닝의 학습은 결국 이 네 단계의 반복이다. 뒤에서 만나게 될 CNN이든, 트랜스포머든, LLM이든, 뼈대는 크게 다르지 않다.
순전파: 모델은 먼저 답을 찍어 본다
학습은 의외로 예측에서 시작한다. 모델은 먼저 현재 자신이 가진 가중치와 편향을 이용해 입력을 통과시킨다. 이 계산이 앞쪽 입력층에서 뒤쪽 출력층 방향으로 흘러간다고 해서 순전파라고 부른다.
예를 들어 손글씨 이미지를 보고 숫자를 맞히는 모델이 있다고 하자. 입력은 픽셀 값들이다. 이 숫자들이 여러 층을 지나며 변환되고, 마지막 출력층에서는 "0일 확률", "1일 확률", "2일 확률" 같은 점수가 나온다. 지금 모델이 미숙하다면 8을 보고 3이라고 할 수도 있다. 그래도 괜찮다. 학습은 바로 그 틀림에서 시작되기 때문이다.
중요한 것은 순전파가 그저 계산이라는 점이다. 모델은 여기서 스스로 "아, 내가 틀렸네"라고 생각하지 않는다. 그저 현재 파라미터가 만들어 내는 결과를 낼 뿐이다. 아직은 판단만 했지, 수정은 하지 않았다.
이 감각이 중요하다. 모델은 처음부터 똑똑하지 않다. 우선 답을 내보고, 그 답이 얼마나 엉망인지 확인한 다음에야 조금씩 변한다.
손실 함수: 틀린 정도를 숫자로 바꾸는 장치
예측이 나왔다면 이제 정답과 비교해야 한다. 그런데 "틀렸다"는 말만으로는 부족하다. 학습하려면 틀린 정도를 수치로 표현해야 한다. 그래야 무엇을 줄여야 하는지 분명해진다. 이 역할을 하는 것이 손실 함수다.
손실 함수는 모델의 예측과 실제 정답 사이의 차이를 하나의 숫자로 요약한다. 숫자가 클수록 더 많이 틀렸고, 작을수록 덜 틀렸다는 뜻이다. 학습의 목표는 결국 이 손실을 줄이는 것이다.
예를 들어 집값을 예측하는 회귀 문제에서는 예측값과 실제값의 차이를 제곱해서 평균낸 값을 쓸 수 있다. 5억짜리 집을 4억 9천으로 예측한 것과 2억으로 예측한 것은 둘 다 오답이지만, 틀린 정도는 분명 다르다. 손실 함수는 이런 차이를 숫자로 반영한다.
분류 문제에서는 보통 정답 클래스에 높은 확률을 주지 못했을 때 손실이 커지는 방식을 쓴다. 정답이 고양이인데 모델이 강아지에 자신만만하다면 손실은 크게 나온다. 반대로 정답에 높은 확률을 주면 손실은 작아진다.
여기서 중요한 점은 손실 함수가 단지 평가용 점수가 아니라는 것이다. 손실은 학습의 나침반이다. 모델은 정확도를 직접 만지작거리는 것이 아니라, 대개 손실 함수를 줄이는 방향으로 움직이면서 결과적으로 성능을 높인다.
즉, 손실 함수는 "얼마나 틀렸는가"를 넘어서 "어느 방향으로 고쳐야 하는가"를 알려주는 출발점이다.
경사하강법: 손실이 낮아지는 방향으로 조금씩 움직이기
손실을 계산했다면 다음 질문이 나온다. 그래서 이제 무엇을 어떻게 바꿔야 할까?
여기서 등장하는 것이 경사하강법이다. 이름은 딱딱하지만 직관은 단순하다. 현재 손실이 높은 지점에 서 있다고 생각하고, 가장 가파르게 내려가는 방향으로 한 걸음씩 내려가는 것이다.
흔히 산을 내려가는 비유를 쓴다. 안개가 짙어서 정상도 보이지 않고 지형 전체도 모른다고 해보자. 그래도 발밑의 기울기는 느낄 수 있다. 왼쪽이 더 가파르게 내려가면 왼쪽으로 조금 가고, 다음 지점에서 다시 기울기를 확인한다. 이렇게 반복하면 완벽하지는 않아도 점점 낮은 곳으로 갈 가능성이 크다.
딥러닝에서도 비슷하다. 모델은 손실 함수의 전체 모양을 한눈에 보지 못한다. 대신 현재 파라미터 위치에서 손실이 어느 방향으로 증가하고 감소하는지, 즉 기울기를 계산한다. 그리고 손실이 커지는 방향의 반대로 조금 움직인다.
파라미터 업데이트를 아주 단순하게 쓰면 이런 느낌이다.
새 파라미터 = 기존 파라미터 - 학습률 × 기울기
여기서 핵심은 두 가지다. 하나는 기울기다. 이것은 "어느 방향으로 바꾸면 손실이 줄어드는가"에 대한 정보다. 다른 하나는 학습률이다. 이것은 "얼마나 크게 움직일 것인가"를 정하는 보폭이다.
그래서 경사하강법은 무작정 숫자를 흔드는 과정이 아니다. 손실을 줄일 가능성이 높은 방향으로 파라미터를 조정하는 체계적인 절차다.
역전파: 누가 얼마나 잘못했는지를 효율적으로 따져 묻는 법
이제 가장 어렵게 들리는 개념이 남았다. 역전파다. 이름 때문에 많은 입문자가 여기서 겁을 먹는다. 하지만 직관은 생각보다 분명하다.
모델이 틀린 답을 냈다면, 내부의 수많은 가중치 중 무엇이 얼마나 그 틀림에 기여했는지를 알아야 한다. 그래야 누구를 얼마나 고쳐야 할지 결정할 수 있다. 역전파는 바로 그 계산을 효율적으로 해 주는 방법이다.
예를 들어 여러 사람이 함께 요리했는데 맛이 이상해졌다고 해보자. 누가 소금을 너무 넣었는지, 누가 불 조절을 잘못했는지, 누가 재료 비율을 틀렸는지 알아야 다음에는 고칠 수 있다. 그런데 완성된 요리만 보고 모든 사람의 책임을 일일이 처음부터 다시 따지면 너무 비효율적이다.
역전파는 이런 책임 계산을 체계적으로 뒤에서부터 전달하는 방식이다. 출력에서 발생한 오차가 마지막 층에 어떤 영향을 줬는지 계산하고, 그 영향이 다시 그 앞층의 파라미터들에 어떻게 연결되는지 연쇄적으로 따라간다. 이때 핵심 도구가 연쇄 법칙이다. 복잡한 함수도 작은 함수들의 연결로 보고, 변화가 어떻게 이어지는지를 계산하는 것이다.
쉽게 말해 역전파는 이렇게 생각하면 된다.
출력에서 생긴 손실을 기준으로, 각 층의 각 가중치가 그 손실을 키웠는지 줄였는지, 그리고 그 영향이 얼마나 컸는지를 뒤에서 앞으로 차례로 전달한다.
이 방식이 중요한 이유는 효율성 때문이다. 신경망의 파라미터는 수천 개가 아니라 수백만, 수십억 개가 될 수 있다. 각각의 영향을 따로따로 실험하듯 계산하면 학습은 사실상 불가능하다. 역전파는 이 거대한 계산을 한 번의 체계적인 흐름으로 묶어 준다. 딥러닝이 현실에서 작동할 수 있는 이유 중 하나가 바로 여기에 있다.
순전파와 역전파는 한 쌍이다
순전파와 역전파를 따로 외우면 금방 헷갈린다. 둘을 하나의 왕복 운동으로 보는 편이 낫다.
순전파는 현재 모델이 세상을 어떻게 보고 있는지 드러내는 과정이다. 입력을 넣으면 모델이 지금 가진 판단 습관대로 답을 낸다. 역전파는 그 판단 습관을 수정하는 과정이다. 틀린 결과를 바탕으로 내부 파라미터에 책임을 분배하고, 다음번에는 덜 틀리도록 바꾼다.
즉, 순전파가 "현재의 나"를 보여준다면, 역전파는 "다음의 나"를 만드는 계산이다.
딥러닝의 학습은 바로 이 왕복을 끊임없이 반복하는 일이다. 앞으로 나아가며 예측하고, 뒤로 돌아오며 수정한다. 생각보다 인간의 연습과도 닮아 있다. 문제를 풀어 보고, 어디서 틀렸는지 확인하고, 다음엔 그 부분을 고친다.
학습률: 너무 급해도, 너무 소심해도 안 된다
기울기를 알았다고 해도, 얼마나 움직일지는 또 다른 문제다. 여기서 학습률이 결정적인 역할을 한다.
학습률이 너무 작으면 모델은 매우 조심스럽게 움직인다. 한 걸음 한 걸음이 지나치게 작아서 손실을 줄이는 데 엄청난 시간이 걸린다. 마치 산을 내려가는데 발끝만 겨우 움직이는 셈이다. 이 경우 학습은 되긴 하지만 너무 느리다. 실용적으로는 거의 멈춘 것처럼 보일 수도 있다.
반대로 학습률이 너무 크면 문제가 더 심각하다. 손실이 낮은 지점을 향해 가는 대신 그 지점을 지나쳐 버리고, 이리저리 튀거나 진동할 수 있다. 심하면 손실이 오히려 커지면서 발산한다. 산을 내려가려다 너무 큰 보폭으로 뛰다가 계곡 저편으로 계속 튕겨 나가는 모습에 가깝다.
그래서 좋은 학습률은 적당한 보폭이다. 충분히 빨리 움직이되, 안정적으로 낮은 곳을 향할 수 있어야 한다.
학습 과정에서 자주 보이는 현상도 이 관점으로 이해할 수 있다.
손실이 거의 줄지 않고 답답하게 느리면 학습률이 너무 작을 수 있다.
손실이 오르내리며 불안정하면 학습률이 너무 클 수 있다.
손실이 갑자기 커지며 폭주하면 업데이트가 지나치게 공격적일 수 있다.
현대 딥러닝에서는 이런 문제를 줄이기 위해 학습률을 점차 줄이거나, 초반에는 천천히 올렸다가 안정화하는 스케줄을 쓰기도 한다. 하지만 본질은 같다. 학습은 방향뿐 아니라 보폭의 예술이기도 하다.
한 번의 업데이트로 배우는 것은 아주 조금뿐이다
입문자가 흔히 놓치는 점이 있다. 모델은 한 번의 순전파와 역전파로 갑자기 똑똑해지지 않는다. 한 번의 업데이트는 보통 아주 작은 수정에 불과하다.
왜 이렇게 조금씩 바꿀까? 파라미터 공간이 너무 크고 복잡하기 때문이다. 한 번에 크게 고치면 지금까지 배운 것까지 망가뜨릴 수 있다. 그래서 딥러닝 학습은 대체로 수많은 작은 수정의 누적이다.
이 점에서 학습은 조각가의 작업과 닮았다. 처음부터 완성된 형상을 한 번에 깎아 내는 것이 아니다. 조금 다듬고, 다시 보고, 또 다듬는다. 멀리서 보면 느려 보이지만, 그 누적이 결국 형태를 만든다.
그래서 에폭, 배치, 옵티마이저 같은 용어들이 등장해도 핵심은 바뀌지 않는다. 모델은 수많은 예시를 보며 조금씩 자신을 조정한다. 학습의 본질은 반복이다.
모델은 정답을 외우는가, 패턴을 배우는가
여기서 자연스럽게 더 깊은 질문이 나온다. 모델이 학습한다는 것은 정말 패턴을 이해하는 것일까, 아니면 그냥 정답을 외우는 것일까?
정직하게 말하면 둘 다 가능하다. 데이터가 충분하고 구조가 잘 잡히면 모델은 여러 예시를 관통하는 규칙을 배운다. 그래서 처음 보는 데이터에도 제법 잘 대응한다. 이것이 우리가 원하는 학습이다.
하지만 모델이 지나치게 훈련 데이터에만 맞춰지면, 겉으로는 성능이 좋아 보여도 사실상 세부 사례를 외운 것에 가까워질 수 있다. 예를 들어 시험 문제를 원리로 푼 것이 아니라 답안지를 통째로 암기한 학생과 비슷하다. 익숙한 문제에는 강하지만 조금만 변형되면 무너진다.
딥러닝에서 중요한 것은 손실을 낮추는 것만이 아니다. 낯선 데이터에도 통하는 구조를 배우는 것, 즉 일반화가 진짜 목표다. 그래서 학습을 이해할 때는 단순히 "오차가 줄어든다"에서 멈추면 안 된다. 어떤 방식으로 줄어드는지, 그 결과가 새로운 입력에도 유지되는지를 함께 봐야 한다.
이 장에서는 학습의 메커니즘을 중심으로 다뤘지만, 바로 다음에 만나게 될 과적합과 일반화의 문제가 여기서 이어진다. 학습은 잘못을 줄이는 과정이지만, 그 잘못 줄이기가 지나치게 훈련 데이터에만 맞춰질 수도 있기 때문이다.
딥러닝 학습을 한 문장으로 다시 말하면
지금까지의 내용을 가장 압축해서 말하면 이렇다.
딥러닝의 학습은 현재 모델로 예측을 만들고, 그 예측의 오차를 손실 함수로 수치화한 뒤, 역전파로 각 파라미터의 책임을 계산하고, 경사하강법으로 손실이 줄어드는 방향으로 조금씩 수정하는 반복 과정이다.
이 문장을 이해하면 "모델이 배운다"는 말이 더 이상 모호하지 않다. 모델은 지식을 머릿속에 넣는 것이 아니라, 파라미터를 조정해 더 나은 함수를 만들어 간다.
그리고 바로 이 반복 루프가 딥러닝의 심장이다. CNN도, 트랜스포머도, LLM도 겉모습은 달라도 결국 이 심장을 공유한다.
이 장의 핵심
이번 장에서 꼭 붙잡아야 할 것은 다음과 같다.
순전파는 현재 파라미터로 예측을 만들어 내는 과정이다.
손실 함수는 예측이 얼마나 틀렸는지를 학습 가능한 숫자로 바꾼다.
경사하강법은 기울기 정보를 따라 손실이 줄어드는 방향으로 파라미터를 조정한다.
역전파는 각 가중치와 편향이 손실에 얼마나 기여했는지를 효율적으로 계산한다.
학습률은 업데이트의 보폭이며, 너무 크면 불안정하고 너무 작으면 지나치게 느리다.
좋은 학습은 단순 암기가 아니라 새로운 데이터에도 통하는 패턴을 배우는 것이다.
이제 우리는 신경망이 어떻게 계산하는지에서 한 걸음 더 나아가, 어떻게 스스로를 고쳐 가는지까지 보았다. 하지만 아직 중요한 문제가 남아 있다. 모델이 훈련 데이터에서 점점 더 잘 맞아 갈 때, 그것이 정말 실력이 늘고 있다는 뜻일까? 아니면 눈앞의 문제지만 외우고 있는 것일까? 다음 장에서는 바로 그 질문, 과적합과 일반화를 다룬다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
