카테고리 없음

[컴퓨터 비전] Backpropagation(역전파)

외손잡이 2024. 11. 12. 21:23
작성자 장원준
일 시 2024. 11. 12 (화) 18:00 ~ 21:00
장 소 복지관 B-128-1호
참가자 명단 임혜진,  장원준, 이재영, 성창민, 김명원
 사 진

1. Backpropagation(역전파)

  Backpropagation은 인공 신경망에서 오차(예측과 실제 값의 차이)를 뒤로 전파하여 각 가중치를 업데이트하는 알고리즘입니다. 이 과정은 신경망이 예측 결과를 개선할 수 있도록 가중치를 조정하여 학습하는 데 기여합니다. 이 알고리즘은 경사 하강법(Gradient Descent)과 결합되어 사용되며, 네트워크가 예측과 실제 간의 오차를 최소화하도록 도와줍니다.

2. Forward Propagation과 오차 계산

먼저 입력 데이터를 신경망에 입력하여 Forward Propagation을 수행합니다. Forward Propagation은 각 층을 지나며 신경망의 출력을 계산하는 과정입니다. 마지막 층에서 얻어진 값이 네트워크의 예측값이 됩니다. 이를 기반으로 오차(Error)를 계산하는데, 일반적으로 Mean Squared Error(MSE)와 같은 손실 함수(Loss Function)를 사용하여 예측과 실제 값 사이의 오차를 측정합니다.

Forward Propagation 과정 예시:

  • 입력: xx
  • 가중치: ww
  • 활성화 함수: f(z)f(z)
  • 출력: y=f(w⋅x)y = f(w \cdot x)

3. 오차 역전파 (Backpropagation)

오차가 계산된 후, 신경망의 각 가중치를 조정하여 오차를 최소화하는 단계가 시작됩니다. 이 과정이 Backpropagation입니다. 각 가중치가 손실 함수에 미치는 영향을 계산하고, 그 영향을 최소화하기 위해 가중치를 조금씩 조정합니다. 이 과정은 다음과 같이 이루어집니다.

(1) 손실 함수의 미분 (Loss Function Derivative)

각 가중치를 업데이트하기 위해, 먼저 출력층에서 손실 함수의 미분을 계산하여 가중치 변화의 방향을 결정합니다. 이 미분 값은 오차가 얼마나 큰지, 그리고 각 가중치가 오차에 얼마나 기여했는지를 보여줍니다.

(2) 출력층에서의 경사 계산 (Gradient Calculation in Output Layer)

출력층부터 시작하여, 각 가중치에 대해 손실 함수의 미분값을 구하고, 이를 바탕으로 가중치가 얼마나 조정되어야 할지 계산합니다.

(3) 은닉층으로의 역전파 (Propagation to Hidden Layers)

출력층에서 계산된 오차는 이전 층(은닉층)으로 전달됩니다. 이때 은닉층에서는 활성화 함수의 도함수를 사용하여 오차가 은닉층의 가중치에 미치는 영향을 계산합니다. 이 과정을 반복하여 입력층까지 오차가 역으로 전파되며, 모든 가중치가 조정됩니다.

4. 경사 하강법 (Gradient Descent)과 학습률 (Learning Rate)

Backpropagation은 경사 하강법을 통해 가중치를 최적화합니다. 경사 하강법은 손실 함수의 값을 최소화하기 위해 반복적으로 가중치를 조정하는 최적화 알고리즘입니다. 여기서 학습률(Learning Rate)은 가중치를 조정하는 크기를 결정하는 파라미터로, 학습률이 너무 크면 오차가 안정적으로 감소하지 않을 수 있고, 너무 작으면 학습 속도가 느려집니다.

학습률 설정에 따른 영향

  • 높은 학습률: 빠르게 수렴할 수 있으나, 최적값을 지나치게 되어 학습이 불안정할 수 있음.
  • 낮은 학습률: 안정적인 수렴을 보장하지만 학습 시간이 길어질 수 있음.

5. Backpropagation 알고리즘의 요약 단계

  1. Forward Propagation을 통해 출력값을 계산합니다.
  2. 손실 함수를 통해 오차를 계산합니다.
  3. 출력층부터 시작해 오차를 역전파하여 각 가중치의 미분값을 구합니다.
  4. 가중치를 업데이트하여 손실 함수의 값을 줄입니다.
  5. 이 과정을 반복하여 신경망이 오차를 최소화하도록 학습시킵니다.

6. Backpropagation의 장점과 단점

장점:

  • 다층 신경망에서 효과적으로 가중치를 조정하여 학습할 수 있음.
  • 경사 하강법과 결합하여 비교적 빠르게 수렴 가능.

단점:

  • 기울기 소실(Vanishing Gradient) 문제: 층이 많아질수록 역전파 과정에서 기울기(Gradient)가 매우 작아져 학습이 어려워짐.
  • 과적합(Overfitting): 데이터가 적거나 네트워크가 복잡할 경우 과적합 발생 가능.
 역전파를 통해서 multilayer convolution 에서 효과적으로 가중치를 조정할 수 있다는 것을 알게 되었다. 처음 강의를 들을 땐 이해하기가 어려웠지만 다시 블로깅을 하며 천천히 이해하려 해보니 이해가 되어 다행이었다.. 
저번시간에 배웠던 정규화의 장점인 과적합 방지는 역전파 자체에선 해결하지 못해서 이를 해결 할 방법을 더 알아보고싶어졌다.