Back to Blog

Blog Post

[1 - 2 Backpropagation] "넌 틀렸어, 다시 해!" AI가 스스로 학습하는 수학적 원리

Published on May 3, 2026

안녕하세요, MiTornAve입니다.

지난 시간 우리는 인공지능의 첫 번째 세포인 '퍼셉트론'이 XOR 문제라는 벽에 부딪혀 좌절하는 과정을 보았습니다. 직선 하나로는 해결할 수 없는 세상의 복잡함. 하지만 인류는 멈추지 않았습니다. 선 하나로 안 된다면 수만 개의 선을 겹치고, 그 선들이 서로 유기적으로 움직이며 최적의 길을 찾게 만드는 방법을 고안해 냈죠.

오늘 우리가 다룰 주제는 현대 인공지능의 심장, 오차 역전파(Backpropagation)입니다. 단순히 "오차를 줄인다"는 말을 넘어, 어떤 수학적 정교함이 이 거대한 신경망을 '학습'시키는지 그 심연으로 함께 들어가 보시죠.


1. 신경망의 탄생과 구조: 다층 퍼셉트론(MLP)의 설계도

하나의 출력값 만 가질 수 있는 퍼셉트론은, 지난 시간 그래프에서 보았듯이 한 평명 위에 하나의 직선밖에 긋지 못합니다. 따라서, 수학적 사고를 할 수 있는 가장 간단한 논리인 AND, OR NOT은 두 값을 정확히 양분하는 것이 가능했지만, XOR에서 막히고 말았습니다.

퍼셉트론이 세상에서 잊혀진 지 어언 수십 년 후, 제프리 힌튼(Geoffrey Hinton)을 비롯한 연구자들은 아주 간단한 해법을 제시합니다. 바로, "여러 개의 퍼셉트론을 겹겹이 쌓으면 된다"는 것이죠. 생각해 보면 이는 당연합니다.

인간의 뇌에는 무수히 많은 뉴런이 복잡한 연결로 되어있습니다.
즉, 단 하나의 뉴런으로는 인간의 사고방식을 모사할 수 없습니다.


XOR 문제를 해결하기 위해 우리는 단일 층의 구조를 버리고 다층 퍼셉트론(Multi-Layer Perceptron, MLP)이라는 새로운 설계를 도입했습니다. 그리고 우리는 이렇게 퍼셉트론이 그물의 형태로 연결되어있는 구조를 '인공신경망' 이라고 부릅니다.

1) 인공신경망의 3대 계층 구조

인공신경망은 데이터가 흐르는 방향에 따라 크게 세 가지 층으로 구성됩니다.

  • 입력층 (Input Layer): 외부 세계의 데이터가 신경망으로 처음 발을 들이는 곳입니다. 이미지의 픽셀값, 텍스트의 벡터값 등이 각 노드에 담깁니다. 여기서는 별도의 연산이 일어나지 않고 데이터를 다음 층으로 전달하는 역할만 수행합니다.

  • 은닉층 (Hidden Layer): 신경망의 핵심입니다. 입력층과 출력층 사이에 존재하며, 외부에서는 그 과정을 직접 볼 수 없기에 '은닉(Hidden)'이라 부릅니다. 여기서 수많은 가중치(w)가 연산 되며 데이터 속에 숨겨진 복잡한 패턴을 추출합니다. 층이 깊어질수록(Deep) 신경망은 더 고차원적인 특징을 이해하게 됩니다.

  • 출력층 (Output Layer): 모든 연산을 마친 결과물이 나오는 곳입니다. 분류 문제라면 "이 데이터가 고양이일 확률" 같은 최종 판단을 내놓습니다.

2) 활성화 함수(Activation Function): 비선형성의 마법

단순히 퍼셉트론을 이용하여 층을 쌓는다고 해서 곡선이 그려지는 것은 아닙니다. 수학적으로 선형 연산(직선)을 아무리 겹쳐도 결국 결과는 하나의 거대한 직선일 뿐입니다.

이때 등장하는 것이 활성화 함수입니다. Sigmoid, ReLU, Tanh와 같은 함수들은 각 노드에서 계산된 값을 비선형적으로 비틉니다. 이 '비틂' 덕분에 신경망은 직선의 한계를 넘어 구불구불한 곡선, 혹은 다차원의 복잡한 평면(Hyperplane)을 형성하여 XOR 문제를 우아하게 해결할 수 있게 됩니다.

2. 학습의 본질: "오직 가중치(Weight)만이 변화의 열쇠다"

우리는 왜 신경망의 다른 요소가 아닌 가중치(w)와 편향(b)에만 그토록 집착하는 것일까요? 이는 신경망이라는 거대한 함수에서 우리가 유일하게 '통제'할 수 있는 핸들이기 때문입니다.

1) 고정된 환경과 유일한 변수: "구조는 집이고, 가중치는 그 안의 삶이다"

딥러닝 모델이 설계되어 메모리에 올라가는 순간, 많은 것들이 '상수(Constant)'로 고정됩니다.

  • 아키텍처(Architecture): 몇 개의 층을 쌓을지, 노드를 몇 개 둘지, 어떤 활성화 함수를 쓸지는 이미 결정된 설계도입니다.

  • 데이터(Data): 입력되는 이미지나 텍스트 역시 우리가 바꿀 수 없는 주어진 환경입니다.

하지만 초기화 직후의 모델은 백지와 같습니다. 개와 고양이를 구분하라는 명령에 무작위 값을 내뱉는 이 '멍청한' 모델을 똑똑하게 만드는 유일한 방법은, 노드와 노드 사이를 잇는 연결 강도인 가중치를 조절하는 것뿐입니다. 마치 정해진 악기(구조)를 바꿀 수는 없지만, 연주자가 줄의 장력(가중치)을 미세하게 조정하여 아름다운 선율을 만들어내는 과정과 같습니다.

2) 가중치가 결정하는 '지능의 경로': 정보의 필터링과 강조

가중치는 신경망을 흐르는 데이터 신호에 곱해지는 '중요도 계수'입니다.

  • 신호의 소멸: 만약 특정 입력에 연결된 가중치가 0에 수렴한다면, 그 신호는 다음 층으로 전달되지 못하고 죽어버립니다. 즉, 판단에 불필요한 정보라고 신경망이 스스로 판단한 셈입니다.

  • 신호의 증폭: 반대로 가중치가 크다면 그 정보는 출력단까지 강하게 살아남아 최종 판단에 결정적인 영향을 미칩니다.

결국 학습(Learning)이란, 정답과 예측값 사이의 거리를 수치화한 손실 함수(Loss Function)의 값을 줄이기 위해, 거미줄처럼 얽힌 수억 개의 가중치를 아주 정교하게 조이고 푸는 최적화(Optimization) 과정입니다.

3) 편향(Bias): 판단의 기준선을 옮기는 힘

가중치가 신호의 '기울기'를 조절한다면, 함께 언급되는 편향(b)은 노드가 얼마나 쉽게 활성화될지를 결정하는 '민감도'를 조절합니다. 가중치만으로는 원점을 지나는 직선밖에 그릴 수 없지만, 편향이 더해짐으로써 비로소 신경망은 공간 어디로든 자유롭게 움직이며 데이터를 분류할 수 있는 '유연성'을 얻게 됩니다.

수조 개의 가중치와 편향이 역전파라는 혹독한 피드백을 거쳐 각자의 최적 위치를 찾아가는 순간, 차가운 수식 덩어리였던 신경망은 비로소 세상을 해석하는 '지능'을 갖추게 됩니다.

3. 역전파의 메커니즘: 편미분과 연쇄 법칙의 역습

자, 이제 본론입니다. 출력층에서 "틀렸어!"라는 결과가 나왔을 때, 우리는 저 깊숙한 입력층 근처에 있는 가중치 w_{1}을 얼마나 바꿔야 할까요? 무작위로 바꾸기엔 경우의 수가 너무 많습니다. 여기서 수학자들은 거꾸로(Backward) 가는 전략을 세웁니다.

1) 편미분(Partial Derivative): 책임의 크기를 묻다

가중치가 수억 개일 때, 전체 오차(E)에 대해 특정 가중치 w_{ij}가 얼마나 잘못했는지 알고 싶다면 어떻게 해야 할까요? 바로 편미분입니다. (또 끔찍한 것이 나와버렸다..)

미분은 간단히 말해서, 한 순간에서 얼마나 변화하고 있는지를 구하는 도구입니다. 그리고 편 미분은 한 가지 속성 혹은 한 가지 타겟에 대해 변화하는 것만 계산하고 싶을 때 사용합니다. 이해를 돕기위해 예시를 들어보겠습니다.


[일반 미분: 달리는 자동차의 속도]

가장 흔한 미분의 예시는 자동차의 '속도'입니다. 자동차의 위치(y)가 시간(x)에 따라 변할 때, 특정 찰나의 순간에 차가 얼마나 빠르게 움직이는지를 구하는 것이 미분입니다. 여기서는 '시간'이라는 단 하나의 변수만이 위치에 영향을 미칩니다.

[편미분: 최고의 라면 맛 찾기]

하지만 세상의 많은 일은 여러 가지 원인이 섞여 결과가 나옵니다. 맛있는 라면(y)을 끓이는 과정을 생각해 봅시다. 여기에는 물 양(x_1), 불의 세기(x_2), 스프의 양(x_3) 등 수많은 변수가 존재합니다.

  • 만약 우리가 다른 조건(불의 세기, 스프 양)은 고정하고, 오직 '물의 양(x_1)'을 아주 미세하게 조절했을 때 라면 맛(y)이 얼마나 변하는지 알고 싶다면 어떻게 해야 할까요?

  • 이때 사용하는 것이 바로 편미분입니다. "다른 건 다 그대로 두고, 오직 물의 양(x_1)에 대해서만 변화율을 측정하겠다"는 선언인 셈입니다.

이 논리를 인공 신경망으로 가져오면 편미분의 진가가 드러납니다. 신경망은 앞서 설명한 라면 레시피보다 수백만 배는 더 복잡한 '거대한 다변수 함수'이기 때문입니다.

하나의 출력(예측값)이 나오기까지는 수만, 수억 개의 가중치(w)가 관여합니다. 만약 최종 결과에서 오차가 발생했을 때, 우리가 단순히 전체 시스템을 뭉뚱그려 미분해 버린다면 어떤 문제가 생길까요? 어떤 가중치가 정답을 맞히는 데 기여했고, 어떤 가중치가 오차를 만드는 '범인'인지 도저히 가려낼 방법이 없습니다.

따라서 우리는 편미분이라는 정교한 도구를 사용해야만 합니다.

신경망의 역전파 과정에서 우리는 수많은 가중치 중 '단 하나의 가중치(w_{ij})'에만 초점을 맞춥니다. 다른 모든 가중치는 상수로 취급하여 고정시킨 채, 해당 가중치를 아주 미세하게 변화시켰을 때 최종 오차(Loss)가 어떻게 출렁이는지를 계산합니다.

"다른 수억 개의 연결고리는 일단 신경 쓰지 마라. 오직 이 라인($w_{ij}$)이 전체 오차($E$)에 대해 얼마나 책임을 지고 있는가?"

이 질문에 답을 내놓는 과정이 바로 편미분입니다. 이렇게 모든 가중치 라인에 대해 각각 편미분을 수행하면, 우리는 비로소 각 가중치가 오차라는 거대한 산맥에서 어느 방향으로, 얼마나 수정되어야 하는지 그 명확한 '기울기(Gradient)'를 얻게 됩니다. 이것이 바로 역전파가 수많은 가중치 사이에서도 길을 잃지 않고 신경망을 정답으로 이끄는 수학적 비결입니다.

2) 연쇄 법칙(Chain Rule): 오차의 에너지를 전달하는 도관

신경망은 수많은 함수가 중첩된 합성함수입니다.

y = f(g(h(x)))

어려워 보이지만, f, g, h는 신경망의 각 층을 나타냅니다. 은닉층이 많아진다면 더 많은 함수들로 차례차례 감싸져 있을겁니다. 즉, x가 입력층에서 받는 데이터, h는 입력층, f는 출력층, y는 최종 출력이 되겠죠?

이런 구조에서 저 안쪽의 h(x)에 대한 미분값을 구하려면, 겉의 함수부터 차례대로 미분하여 안으로 들어가야 합니다. 이것이 연쇄 법칙입니다.

역전파는 이 연쇄 법칙을 물리적으로 구현한 알고리즘입니다.

  1. 출력층f에서 오차 발생: 정답과 비교하여 Loss를 계산합니다.

  2. 출력층 가중치 미분: 최종 단계에서 가중치가 오차에 준 영향을 계산합니다.

  3. 은닉층으로의 역전파: 출력층에서 구한 미분값을 이용해, 그 앞 층의 미분값을 구합니다.

    • "내가 이만큼 틀렸는데, 너(이전 층)한테 받은 값이 이 정도니까, 너의 책임은 이만큼이야!"

  4. 라인 바이 라인(Line-by-line) 추적: 이 과정을 입력층에 도달할 때까지 노드 하나하나, 연결선 하나하나마다 반복합니다.

\frac{\partial E}{\partial w_{ij}} = \underbrace{\frac{\partial E}{\partial out_j} \cdot \frac{\partial out_j}{\partial net_j}}_{\text{노드의 책임}} \cdot \underbrace{\frac{\partial net_j}{\partial w_{ij}}}_{\text{가중치의 기여}}

3) 왜 'Back'인가? 효율성의 극학

앞에서부터 미분하며 나아가는 '전방 미분(Forward Mode)'은 가중치가 많아질수록 계산량이 기하급수적으로 늘어납니다. 하지만 뒤에서부터 결과를 한 번만 훑으며 내려오는 역방향 미분은 단 한 번의 통과(Pass)로 모든 가중치의 기울기를 구할 수 있습니다. 이것이 1980년대 제프리 힌튼(Geoffrey Hinton)이 역전파를 다시 들고 나왔을 때 전 세계가 경악한 이유입니다.

4. 경사하강법(Gradient Descent): 정답이라는 골짜기를 향하여

역전파를 통해 각 가중치의 '책임(기울기)'을 명확히 규명했다면, 이제는 그 결과를 바탕으로 실제로 가중치를 수정하여 움직여야 할 때입니다. 우리는 지금 '오차'라는 이름의 험난하고 안개 낀 산맥 위에 서 있습니다. 우리의 최종 목표는 이 복잡한 지형에서 가장 낮은 지점, 즉 오차가 최소가 되는 전역 최솟값(Global Minimum)에 도달하는 것이죠.

이 과정에서 역전파는 우리가 어두운 밤길에서 어디로 발을 내디뎌야 할지를 알려주는 유일한 나침반 역할을 수행합니다. 구체적으로는 가중치에 대한 오차의 변화량인 기울기(Gradient)를 나침반의 바늘로 삼습니다. 수학적으로 가중치의 업데이트 식은 다음과 같이 정의됩니다.

w \leftarrow w - \eta \frac{\partial E}{\partial w}

이 수식은 매우 단순해 보이지만, 그 안에는 학습의 핵심 원리가 담겨 있습니다.

  • 기울기가 양수(+)라면: 현재 위치에서 가중치를 늘릴수록 오차가 커진다는 의미이므로, 우리는 기울기의 반대 방향인 마이너스(-) 방향으로 가중치를 줄여야 합니다.

  • 기울기가 음수(-)라면: 가중치를 늘릴수록 오차가 작아진다는 의미이므로, 마이너스와 마이너스가 만나 플러스(+)가 되어 가중치를 늘리는 방향으로 이동합니다.

이때 우리가 얼마나 큰 보폭으로 골짜기를 내려갈지를 결정하는 결정적인 상수가 바로 학습률(Learning Rate, \eta)입니다. 이 보폭의 설정은 학습의 성패를 가르는 고도의 전략적 선택입니다. 보폭이 너무 크면 최적의 골짜기를 발견하더라도 그 바닥을 딛지 못한 채 반대편 비탈로 훌쩍 넘어가 버리는 오버슈팅(Overshooting) 현상이 발생합니다. 반대로 보폭이 너무 작으면, 아무리 정확한 방향으로 내려가더라도 평생을 하강해야 할 만큼 학습 속도가 더뎌지며 자칫 계산 자원만 낭비하는 결과를 초래하죠.

하지만 이 나침반이 우리를 항상 가장 깊은 진리의 심연으로 인도하는 것은 아닙니다. 경사하강법에는 지역 최솟값(Local Minimum)이라는 치명적인 함정이 도처에 깔려 있기 때문입니다.

우리는 전체 지도를 조망할 수 없는 상태에서 오직 발밑의 경사만을 따라 내려가는 고독한 탐험가와 같습니다. 한참을 내려가 드디어 기울기가 0인 평지에 도달했다고 안도하지만, 사실 그곳은 우리가 갈망하던 전 세계에서 가장 낮은 골짜기가 아니라, 산 중턱에 움푹 패인 작은 웅덩이일 가능성이 큽니다.

더욱이 고차원의 신경망에서는 지역 최솟값보다 더 빈번하게 안장점(Saddle Point)이라는 복병을 마주하게 됩니다. 안장점은 말의 안장처럼 어느 방향에서 보면 최솟값이지만 다른 방향에서 보면 최댓값인 지점으로, 여기서도 기울기는 0이 됩니다. 일단 이러한 웅덩이나 평탄한 고원(Plateau)에 빠지면, 알고리즘은 자신이 목표에 도달했다고 착각하거나 혹은 더 이상 나아갈 동력을 잃고 학습을 멈춰버립니다. 눈앞의 작은 성과에 안주하여 진정한 정답을 놓치게 되는 이러한 최적화(Optimization) 문제는 인공지능이 더 높은 지능으로 진화하는 것을 가로막는 거대한 기술적 난관이자, 동시에 공학자들이 끊임없이 정복해야 할 도전 과제가 됩니다.

5. 정리하며: 거꾸로 흐르는 지능의 미학

오늘 우리는 신경망이 어떻게 스스로를 교정하는지, 그 처절하고도 아름다운 수학적 과정을 살펴보았습니다.

단순히 선을 긋는 것을 넘어, 공간을 휘고 비틀어 정답을 찾아내는 다층 구조, 그리고 수조 개의 연결고리 속에서 오차의 범인을 정확히 지목해 내는 편미분의 연쇄 법칙. 이 역전파라는 엔진이 없었다면 지금의 챗GPT도, 자율주행차도 존재할 수 없었을 것입니다.

하지만 완벽해 보이는 이 알고리즘에게도 치명적인 결함이 발견됩니다. 층이 너무 깊어지면, 뒤에서 보낸 "너 틀렸어!"라는 외침이 앞쪽까지 전달되지 못하고 사라져 버리는 기울기 소실(Vanishing Gradient) 문제입니다.

다음 시간에는 이 절망적인 문제를 인류가 어떻게 극복하고 진짜 '딥(Deep)'러닝의 시대를 열었는지, 그 혁신의 현장으로 가보겠습니다.


핵심 키워드 복습

  • 은닉층(Hidden Layer): 데이터의 추상적 특징을 추출하는 신경망의 심장부.

  • 비선형 활성화 함수: 직선의 합을 곡선으로 바꾸어 복잡한 문제를 풀게 하는 장치.

  • 편미분(Partial Derivative): 수많은 가중치 중 특정 가중치 한 놈의 잘못만 가려내는 수학적 수사.

  • 연쇄 법칙(Chain Rule): 합성함수의 미분을 통해 오차를 뒤에서부터 앞으로 전달하는 핵심 논리.

  • 학습률(Learning Rate): 오차의 산을 내려갈 때의 보폭.

Written by MiTornAve

Previous / Next

Previous: [1 - 1 퍼셉트론] AI의 첫 번째 세포: 0과 1로 세상을 분류하다Next: [1 - 3 MLP] 왜 '딥(Deep)'러닝일까? 층을 쌓아야만 풀리는 복잡한 문제들