1. 역전파 (Backpropagation) 이란?
ㅇ 인공 신경망의 학습 단계에서,
- 각 파라미터(가중치,편향)의 기울기(편미분)를,
- 손실 함수에 따라 적응(적합)하도록,
- 효율적으로 재계산하는 핵심 알고리즘
. "오차 역전파 알고리즘"이라고도 함
2. 역전파의 의미
ㅇ 배경
- 신경망은 수만 개 이상의 파라미터(가중치,편향)가 얽혀 있는 거대한 합성함수
. 결과값이 차이가 날때, 어느 층의 어떤 가중치가 얼마나 기여했는지(오차에 대한 민감도)를,
. 수학적으로 찾아내는 것이 핵심
ㅇ 착안
- 합성함수의 미분은 각 단계의 미분값을 곱하여 전체 미분값을 구함
. 층이 깊어질수록 직접 미분 계산이 기하급수적으로 늘어남 → 이를 연쇄법칙으로 해결
- 출력층에서부터 거꾸로 내려오면서, → 이미 계산된 미분값을 재사용
. 각 가중치 마다, 처음부터 미분을 다시 할 필요 없어, 계산 효율성 극대화됨
ㅇ 동작 원리 : (핵심 3가지)
- 연쇄법칙 활용 : 합성함수의 미분을 단계적으로 분해하여 적용
- 역방향 미분 전달 : 출력층 → 은닉층 → 입력층 방향으로 기울기를 역방향으로 전달
- 중복 계산 회피 : 이미 계산된 기울기를 재사용하여,
. 연산량 폭증 없이 효율적으로 모든 파라미터의 기울기를 산출
ㅇ 목적
- 오차 최소화 : 출력 오차를 줄이는 방향으로 가중치 및 편향을 점진적으로 조정
- 모델 피팅 : 훈련 데이터에 신경망을 적합(Fitting)시킴
- 성능 향상 : 예측 정확도 및 일반화 성능 개선
3. 순전파, 역전파 비교
ㅇ 순전파 : 입력 데이터를 순방향 (입력 → 은닉층 → 출력층) 전달하여 출력을 계산
- 출력에서, 예측값 및 손실(loss)을 산출
ㅇ 역전파 : 출력층에서 계산된 오차를 입력층 방향으로 전달하며 계산
- 각 층,노드,연결이 오차에 미친 영향도를 계산
- 시스템 각 블록의 민감도를 산출
- 이를통해, 파라미터의 기울기(gradient)를 계산
ㅇ (전체 학습 흐름)
- (순방향) 입력 데이터 → 순전파 → 예측값 출력 → 손실 계산
- (역방향) 손실 → 기울기 계산(역전파) → 경사하강법 → 파라미터 갱신
. 반복 학습 (수렴할 때까지)
4. 역전파를 포함한 신경망 학습의 4단계
ㅇ 순전파 (forward propagation)
- 입력 데이터를 신경망에 순방향으로 전달하며 출력을 계산
- 예측 값과 실제 값의 오차(손실)를 계산
ㅇ 손실 계산 (Loss Calculation)
- 예측값과 정답(Label) 사이의 간극(손실)을 손실 함수로 측정함
ㅇ 오차 역전파 (Backpropagation)
- 손실을 역방향(출력층 → 입력층)으로 미분하며 흘려보냄
. 각 연결(가중치)과 노드(편향)가 오차를 얼마나 유발했는지,
. 기울기(Gradient)를 산출함
ㅇ 파라미터 업데이트 (Parameter Update)
- 경사하강법을 통해 계산된 기울기와 학습률을 곱하여 가중치를 조정함
[# w_{new} = w_{old} - \eta \cdot \frac{\partial L}{\partial w} #]
. w : 가중치, L : 손실, {#\eta#} : 학습률
. {#\frac{\partial L}{\partial w}#} : 기울기 (가중치 업데이트를 위함)
.. 기울기가 양수(+)이면, 가중치를 줄여야 오차가 줄어듬
.. 기울기가 음수(-)이면, 가중치를 늘려야 오차가 줄어듬
. 여기서, 기울기는, 오차를 줄이기 위해 가중치를 어떤 방향으로 얼마나 조정해야 할지 알려줌
.. 사실상, 역전파는, 이 기울기를 출력층부터 입력층까지 거꾸로 전달하며,
.. 모든 가중치에 배달하는 과정으로 볼 수 있믐
5. 학습 효율을 결정짓는 요인
※ 비록 역전파가 효율적인 알고리즘 이지만,
- 실제 학습 시에는 다음 요인들이 성능에 큰 영향을 미침
ㅇ 학습률 (Learning Rate)
- 너무 크면 발산하고, 너무 작으면 학습이 느려짐
ㅇ 기울기 소실 (Vanishing Gradient)
- 층이 너무 깊으면 역전파 과정에서 미분값이 0에 가까워져,
- 앞쪽 층이 학습되지 않는 현상 (ReLU 활성화 함수 등으로 완화 가능)
ㅇ 초기값 설정 (Weight Initialization)
- 가중치를 적절하게 초기화해야, 역전파가 원활하게 시작됨