컴퓨터공학/NN

역전파(Backpropagation)

airoot 2024. 8. 15. 11:32

역전파(Backpropagation)는 인공 신경망에서 사용되는 핵심 알고리즘으로, 신경망의 가중치(weight)를 학습시키는 데 사용된다. 역전파 알고리즘은 신경망의 출력과 실제 값 사이의 오차를 기반으로 가중치를 업데이트하여 신경망의 성능을 향상시키는 과정이다.  이 과정을 통해 기존 퍼셉트온의 XOR미해결 문제를 해결할 수 있었다.

1. 기본 개념

신경망은 여러 개의 층(layer)으로 구성되어 있으며, 각 층에는 여러 개의 뉴런(neuron)이 있다. 각 뉴런은 입력 값을 받아 가중치와 곱한 후 비선형 활성화 함수를 통해 다음 층으로 전달한다. 신경망의 학습 과정은 주어진 입력에 대해 원하는 출력 값을 만들어내기 위해 가중치를 조정하는 과정이다.

2. 순전파(Forward Propagation)

  1. 입력 데이터가 입력 층에 주어진다.
  2. 입력 데이터는 가중치(weight)와 곱해져 다음 층으로 전달된다.
  3. 각 층에서 활성화 함수(Activation Function)가 적용된 출력이 계산된다.
  4. 최종적으로 출력 층에서 예측 결과가 도출된다.

순전파를 통해 출력 값이 계산되면, 그 값은 실제 값과 비교되어 오차(손실 함수, Loss Function)를 계산하게 된다.

3. 손실 함수(Loss Function)

손실 함수는 신경망의 예측 값과 실제 값 사이의 차이를 계산하는 함수이다. 대표적으로 평균 제곱 오차(MSE, Mean Squared Error), 크로스 엔트로피(Cross Entropy) 등이 사용된다.

손실 함수의 값이 클수록 예측 값이 실제 값과 많이 차이가 나는 것이고, 손실 함수의 값이 작을수록 예측 값이 실제 값과 유사한 것을 의미한다.

4. 역전파(Backpropagation)

역전파는 순전파를 통해 계산된 손실을 기준으로, 각 가중치가 손실에 얼마나 기여했는지를 계산하고, 그 정보를 바탕으로 가중치를 업데이트하는 과정이다.

 

1) 오차 계산: 순전파를 통해 구한 출력 값과 실제 값의 차이를 계산한다.

2) 오차의 역전파: 출력 층에서부터 입력 층으로 오차를 역방향으로 전파시킨다. 이 과정에서 각 층의 가중치에 대한 손실 함수의 기울기(Gradient)를 계산한다.

  • 기울기는 손실 함수에 대한 가중치의 편미분 값이다. 즉, 가중치가 손실 함수에 얼마나 영향을 미치는지를 나타낸다.

3) 가중치 업데이트: 기울기를 이용해 가중치를 업데이트한다. 일반적으로 경사 하강법(Gradient Descent)을 사용하여 가중치를 조정한다.

여기서 Wnew는 업데이트된 가중치, Wold는 이전 가중치, η는 학습률(Learning Rate), ∂L/∂w는 손실 함수 L에 대한 가중치 w의 기울기이다.

4) 반복: 위 과정을 여러 번 반복하여, 신경망의 가중치가 최적화되도록 한다.

5. 역전파의 수학적 원리

역전파는 연쇄 법칙(Chain Rule)에 기반하여 각 층의 가중치에 대한 손실 함수의 기울기를 계산한다. 이 연쇄 법칙을 이용하면 각 가중치가 전체 손실에 미치는 영향을 단계적으로 계산할 수 있다.

이 식은 출력 층에서부터 시작하여 입력 층으로 차례대로 미분을 계산하여, 각 가중치가 손실에 미치는 영향을 평가하는 방식이다.

6. 역전파의 중요성

역전파는 신경망이 효과적으로 학습할 수 있게 해주는 핵심 알고리즘이다. 이를 통해 신경망의 가중치가 최적화되어 주어진 입력에 대해 정확한 출력을 예측할 수 있게 된다.

역전파 알고리즘의 발전은 딥러닝의 핵심 기술로 자리 잡았으며, 이미지 인식, 자연어 처리 등 다양한 인공지능 분야에서 널리 사용되고 있다.