[ML] 역전파 (Backpropagation)

하영(Emma)·2025년 9월 19일

Machine Learning

목록 보기
9/10
post-thumbnail

딥러닝이나 인공신경망을 공부하다 보면 반드시 만나게 되는 개념이 역전파(Backpropagation) 이다.
이 알고리즘은 신경망이 스스로 학습할 수 있게 해주는 핵심 원리다.


1. 신경망의 학습

신경망은 기본적으로 입력 → 여러 개의 은닉층 → 출력 구조를 가지고 있다.
여기서 중요한 건 신경망이 스스로 정답을 맞히기 위해 가중치(W)와 편향(b) 을 조금씩 조정한다는 점이다.

즉, 학습이란 결국

  • 현재 예측이 정답과 얼마나 다른지 계산하고
  • 그 차이를 줄이는 방향으로 W, b를 수정하는 과정

이라고 할 수 있다.


2. 순전파 (Forward Propagation)

먼저 데이터를 넣어 결과(예측값)를 계산한다. 이를 순전파라고 한다.

예를 들어, 입력 데이터 x가 신경망을 통과하면서 다음과 같은 계산이 일어난다.

  • z1 = W1*x + b1
  • h1 = f(z1)
  • z2 = W2*h1 + b2
  • h2 = f(z2)
  • y_hat = f(WL*h(L-1) + bL)

여기서

  • W, b: 우리가 학습시켜야 할 파라미터
  • f(): 활성화 함수 (예: ReLU, Sigmoid 등)
  • y_hat: 신경망이 예측한 값

즉, 순전파는 입력을 넣었을 때 신경망이 출력값을 계산하는 과정이다.


3. 손실 함수 (Loss Function)

신경망이 출력한 예측값 y_hat이 실제 정답 y와 얼마나 다른지 계산하는 함수를 손실 함수(loss function) 라고 한다.

예를 들어, 평균제곱오차(MSE) 는 다음과 같다.

  • L = (1/2) * (y - y_hat)^2

여기서 L은 오차(loss)를 의미한다.
L이 클수록 예측이 많이 틀린 것이고, L이 작을수록 정답에 가깝다는 뜻이다.


4. 역전파 (Backpropagation)

손실 L을 줄이려면 가중치 W와 편향 b를 어떻게 바꿔야 할까?

이를 위해 우리는 L을 W와 b에 대해 미분(gradient) 한다.
즉, ∂L/∂W, ∂L/∂b를 구해야 한다.

하지만 신경망은 여러 층으로 쌓여 있기 때문에 직접 미분하기가 복잡하다.
여기서 등장하는 것이 연쇄 법칙(Chain Rule) 이다.

예를 들어, 출력층의 가중치 W2에 대한 기울기는 다음과 같이 계산할 수 있다.

  • ∂L/∂W2 = ∂L/∂y_hat * ∂y_hat/∂z2 * ∂z2/∂W2

즉, 오차가 출력에서부터 역으로 전파되면서 각 층의 W, b에 대해 얼마나 손실에 기여했는지를 알려준다.

이 과정을 거치면 각 층별로 "얼마나 잘못했는지" 알 수 있게 된다.
그리고 그 정보를 바탕으로 파라미터를 수정한다.
이 전체 과정이 바로 역전파(Backpropagation) 이다.


5. 파라미터 업데이트

기울기를 구했다면 이제 파라미터를 업데이트한다.
가장 기본적인 방법은 경사 하강법(Gradient Descent) 이다.

  • W := W - α * ∂L/∂W
  • b := b - α * ∂L/∂b

여기서 α 는 학습률(learning rate)이라고 하며, 한 번에 얼마나 크게 이동할지를 정한다.
학습률이 너무 크면 발산할 수 있고, 너무 작으면 학습이 느려진다.


6. 전체 학습 과정 요약

  1. 입력을 받아 순전파 → 예측값 계산
  2. 예측값과 실제 정답을 비교 → 손실 계산
  3. 손실을 바탕으로 역전파 → 각 파라미터의 기울기 계산
  4. 기울기를 이용해 경사 하강법으로 W, b 업데이트
  5. 이 과정을 여러 번(epoch) 반복

결국 신경망은 점점 더 정답에 가까운 출력을 내도록 학습된다.
즉, 역전파는 신경망 학습을 가능하게 해주는 핵심 알고리즘이다.

profile
Data Scientist, interested in CV, NLP

0개의 댓글