역전파(Backpropagation)의 개념
역전파는 그래디언트 계산부터 이를 확률적 경사 하강법(Stochastic Gradient Descent)에 적용하는 과정까지를 모두 포괄하는 전체 프로세스를 의미합니다. 기술적으로 말하면, 역전파는 신경망의 학습 가능한 가중치에 대한 오차 그래디언트를 계산하는 데 사용됩니다.
역전파의 주요 특징
역전파는 반복적이고 재귀적이며 효율적인 방식으로 업데이트된 가중치를 계산하여, 네트워크가 학습된 목표를 제대로 수행할 수 있을 때까지 성능을 점진적으로 향상시킵니다. 단, 역전파를 적용하려면 네트워크 설계 시점에 활성화 함수의 도함수(미분값)를 미리 알고 있어야 한다는 점에 유의해야 합니다.
신경망 학습에서의 역전파
역전파는 신경망 학습에 널리 활용되며, 네트워크 가중치에 대한 손실 함수(loss function)를 계산합니다. 다층 신경망과 함께 작동하여 입력-출력 매핑의 내부 표현을 학습할 수 있습니다.
역전파는 인공 신경망 학습의 표준적인 방법으로, 네트워크 내 모든 가중치에 대한 손실 함수의 그래디언트 계산을 지원합니다. 역전파 알고리즘은 연쇄 법칙(chain rule)을 활용하여 신경망을 더욱 효율적으로 학습시키는 데 사용됩니다.
이렇게 계산된 그래디언트는 간단한 확률적 경사 하강법 알고리즘에서 오차를 최소화하는 가중치를 찾는 데 활용됩니다. 이때 오차는 출력 노드에서 시작하여 내부 노드 방향으로 역방향으로 전파됩니다.
역전파 학습 알고리즘의 4단계
역전파 학습 알고리즘은 다음과 같은 4단계로 구성됩니다.
1. 가중치 초기화 (Initialization of Weights)
학습 시작 시 가중치에 작은 임의의(random) 값들이 할당됩니다.
2. 순방향 전파 (Feed-forward)
각 입력 유닛 X는 입력 신호를 받아 이를 은닉 유닛 Z1, Z2, ... , Zn에 전달합니다. 각 은닉 유닛은 활성화 함수를 계산한 뒤 그 결과를 출력 유닛으로 보냅니다. 출력 유닛은 활성화 함수를 계산하여 주어진 입력 패턴에 대한 최종 응답을 형성합니다.
3. 오차의 역전파 (Backpropagation of Errors)
각 출력 유닛은 자신의 활성화 값 Yk와 목표값 Tk를 비교하여 해당 유닛의 오차를 산출합니다. 이 오차를 바탕으로 δk(k = 1, ..., m) 인자가 계산되며, 이를 통해 출력 유닛 Yk의 오차가 이전 층의 모든 유닛으로 분배됩니다. 같은 방식으로 각 은닉 유닛 Zj에 대해서도 δj(j = 1, ..., p) 인자가 계산됩니다.
4. 가중치 및 편향 업데이트
마지막으로 앞서 계산된 오차를 바탕으로 네트워크의 가중치와 편향(bias)이 업데이트됩니다.
역전파의 종류
역전파는 크게 두 가지 유형으로 나눌 수 있습니다.
정적 역전파 (Static Backpropagation)
정적 역전파는 정적 입력의 매핑을 통해 정적 출력을 생성하는 방식입니다. 광학 문자 인식(OCR)과 같은 정적 분류 문제를 해결하는 데 주로 사용됩니다.
순환 역전파 (Recurrent Backpropagation)
순환 역전파는 특정한 목표값 또는 임계값에 도달할 때까지 순방향으로 전파가 진행됩니다. 해당 값에 도달한 후에는 오차가 평가되어 역방향으로 전파됩니다.