문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

오차 역전파 | |
이름 | 오차 역전파 |
영문명 | Backpropagation |
분류 | 딥러닝 알고리즘 |
목적 | 인공 신경망의 가중치 최적화 |
핵심 개념 | |
주요 적용 | |
상세 정보 | |
수학적 기반 | |
역사 | 1970년대 제안, 1986년 데이비드 럼멜하트 등이 재발전 |
알고리즘 단계 | 순전파 → 손실 계산 → 역전파(기울기 계산) → 가중치 갱신 |
활성화 함수 | |
손실 함수 | |
최적화 방법 | 경사 하강법, 확률적 경사 하강법 등과 결합 |
문제점 | |
개선 기법 | |
관련 개념 | |

오차 역전파는 인공신경망을 학습시키는 데 사용되는 핵심 알고리즘이다. 이 알고리즘은 네트워크의 출력에서 발생한 오차를 뒤로 전파하여 각 가중치와 편향에 대한 기울기를 효율적으로 계산한다. 계산된 기울기는 경사 하강법과 같은 최적화 기법을 통해 가중치를 조정하는 데 사용되며, 이 과정을 반복함으로써 네트워크의 성능을 점차 개선한다.
오차 역전파의 기본 아이디어는 연쇄 법칙에 기반을 둔다. 네트워크의 최종 출력과 목표값 사이의 오차를 정의하는 손실 함수의 기울기를, 각 층을 거슬러 올라가며 각 파라미터에 대해 분해하여 계산한다. 이 방법은 각 파라미터에 대한 오차의 기여도를 정확히 파악할 수 있게 해주며, 1970년대와 1980년대에 걸쳐 여러 연구자들에 의해 그 이론이 정립되고 대중화되었다[1].
이 알고리즘은 다층 퍼셉트론을 효과적으로 학습시킬 수 있는 첫 번째 실용적인 방법으로 알려져 있으며, 현대 딥러닝의 발전을 가능하게 한 기반 기술이다. 이후 합성곱 신경망과 순환 신경망을 포함한 다양한 심층 신경망 구조에도 적용되어 널리 사용되고 있다.

연쇄 법칙은 오차 역전파 알고리즘의 핵심 수학적 기반을 제공한다. 신경망은 여러 계층으로 구성된 복합 함수로 볼 수 있으며, 최종 출력과 정답 사이의 오차를 나타내는 손실 함수의 값을 최소화하는 것이 목표이다. 이 과정은 손실 함수의 값을 각 가중치와 편향에 대해 편미분한 기울기를 계산하는 것을 필요로 한다. 연쇄 법칙은 이러한 복잡한 함수의 미분을 각 구성 요소의 미분의 곱으로 분해하여 효율적으로 계산할 수 있게 한다.
구체적으로, 신경망의 한 뉴런의 출력은 이전 층의 출력에 가중치를 곱하고 편향을 더한 후 활성화 함수를 적용한 값이다. 손실 함수 L은 최종 출력의 함수이며, 최종 출력은 다시 모든 중간 층의 가중치와 편향의 함수이다. 특정 가중치 w에 대한 손실의 기울기 ∂L/∂w를 구하려면, 손실 L에서 출력으로, 출력에서 해당 뉴런의 입력으로, 그리고 입력에서 가중치 w까지의 영향력을 연쇄 법칙을 통해 거슬러 올라가며 곱한다. 이는 ∂L/∂w = (∂L/∂a) * (∂a/∂z) * (∂z/∂w)와 같은 형태로 표현된다. 여기서 a는 활성화 함수의 출력, z는 활성화 함수의 입력(가중합)을 의미한다.
역전파는 이 연쇄 법칙의 계산을 효율적으로 조직화한 알고리즘이다. 출력층에서 시작하여 손실 함수에 대한 각 층의 출력의 기울기(오차)를 계산하고, 이를 뒤로 전파하면서 각 가중치에 대한 기울기를 한 번의 순회로 모두 구한다. 이는 각 가중치에 대해 개별적으로 기울기를 계산하는 것보다 훨씬 계산 효율적이다. 이렇게 계산된 기울기는 이후 경사 하강법 등의 최적화 알고리즘에 사용되어 가중치를 업데이트하고 신경망을 학습시킨다.
수학적 요소 | 역할 | 역전파에서의 활용 |
|---|---|---|
복합 함수의 미분 규칙 | 전체 네트워크의 기울기를 계층별 기울기의 곱으로 분해 | |
다변수 함수의 특정 변수에 대한 변화율 | 특정 가중치나 편향만을 변화시켰을 때 손실의 변화량 계산 | |
모든 가중치/편향에 대한 편미분을 모은 벡터 | 가중치 업데이트 방향과 크기를 결정 | |
네트워크 출력과 정답의 차이를 측정하는 함수 | 기울기 계산의 출발점이 되는 목표 함수 제공 |
연쇄 법칙은 미적분학의 기본 정리 중 하나로, 합성 함수의 도함수를 구하는 방법을 제공한다. 함수 $y = f(u)$와 $u = g(x)$가 있을 때, 합성 함수 $y = f(g(x))$의 도함수는 $\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}$로 계산된다. 이는 도함수의 곱으로 표현 가능함을 의미한다.
오차 역전파 알고리즘은 이 연쇄 법칙을 다변수 함수와 벡터, 행렬의 형태로 확장하여 적용한다. 신경망은 입력부터 출력까지 여러 층의 함수가 중첩된 하나의 거대한 합성 함수로 볼 수 있다. 각 층의 가중치에 대한 최종 손실 함수의 기울기를 계산하려면, 출력층에서부터 시작해 각 층을 거슬러 올라가며 국소적인 도함수(편미분)들을 연쇄적으로 곱해 나간다.
예를 들어, 3층 신경망에서 출력 $a^{(3)}$에 대한 손실 $L$의 도함수 $\frac{\partial L}{\partial a^{(3)}}$를 먼저 계산한다. 그다음, 두 번째 층의 가중치 $W^{(2)}$에 대한 기울기를 구하려면 $\frac{\partial L}{\partial W^{(2)}} = \frac{\partial L}{\partial a^{(3)}} \cdot \frac{\partial a^{(3)}}{\partial z^{(3)}} \cdot \frac{\partial z^{(3)}}{\partial W^{(2)}}$와 같이 연쇄 법칙을 반복 적용한다. 여기서 $z^{(3)}$은 두 번째 층의 가중합을 의미한다.
이 과정을 통해 알고리즘은 각 매개변수(가중치와 편향)에 대한 손실 함수의 기울기를 효율적으로 한 번의 순전파와 역전파로 계산할 수 있다. 이는 각 매개변수에 대해 개별적으로 미분을 계산하는 것보다 훨씬 계산 효율이 높다[2].
손실 함수는 신경망의 예측 출력과 실제 목표값 사이의 차이를 측정하는 함수이다. 이 함수의 출력값, 즉 손실은 모델의 성능을 나타내는 지표로 사용된다. 일반적인 손실 함수로는 평균 제곱 오차와 교차 엔트로피 오치가 있다. 손실 함수의 값을 최소화하는 것이 머신 러닝 모델 학습의 핵심 목표이다.
기울기는 손실 함수의 출력값을 특정 가중치나 편향에 대해 편미분한 값이다. 기울기는 손실 함수의 곡면에서 현재 지점의 가장 가파른 상승 방향을 가리킨다. 따라서, 이 기울기의 반대 방향으로 매개변수를 조정하면 손실을 줄일 수 있다. 오차 역전파 알고리즘의 핵심 목적은 네트워크의 모든 매개변수에 대한 이 기울기를 효율적으로 계산하는 것이다.
기울기 계산은 연쇄 법칙을 통해 이루어진다. 신경망은 여러 층의 함수가 합성된 복잡한 함수이므로, 손실 함수 L을 가중치 w에 대해 직접 미분하는 것은 어렵다. 대신, 중간 변수들을 통해 연쇄적으로 미분한다. 예를 들어, 어떤 가중치 w에 대한 기울기는 ∂L/∂w = (∂L/∂a) * (∂a/∂z) * (∂z/∂w)와 같이 계산된다. 여기서 z는 가중합, a는 활성화 함수의 출력을 의미한다.
이렇게 계산된 기울기는 경사 하강법 등의 최적화 알고리즘에 사용되어 가중치를 업데이트한다. 각 가중치는 자신의 기울기에 비례하는 크기로 조정되어, 전체 네트워크의 손실이 점차 감소하도록 한다. 따라서, 정확한 기울기 계산은 학습이 올바른 방향으로 진행되도록 하는 데 필수적이다.

역전파 알고리즘은 일반적으로 세 가지 주요 단계로 구성된 반복적인 과정을 통해 수행된다. 이 과정은 순전파, 오차 계산, 그리고 역전파를 통한 기울기 계산으로 이루어진다.
첫 번째 단계는 순전파이다. 입력 데이터가 네트워크의 입력층에 주입되고, 각 뉴런에서 가중치와 편향을 사용한 선형 결합과 활성화 함수를 통한 비선형 변환이 연속적으로 적용된다. 이 계산은 층을 거쳐 순차적으로 진행되어 최종 출력층에서 예측값을 생성한다. 순전파 과정에서 각 뉴런의 가중치 합과 활성화 함수의 출력값은 모두 저장되어 이후 역전파 단계에서 재사용된다.
두 번째 단계는 오차 계산이다. 네트워크가 생성한 예측값과 실제 목표값(정답 레이블) 사이의 차이를 측정한다. 이 측정은 손실 함수를 사용하여 수행된다. 대표적인 손실 함수로는 회귀 문제에 사용되는 평균 제곱 오차와 분류 문제에 사용되는 교차 엔트로피가 있다. 손실 함수의 출력값, 즉 총 오차는 네트워크의 전반적인 성능을 나타내는 스칼라 값이다.
마지막 단계는 역전파를 통한 기울기 계산이다. 이 단계에서는 총 오차를 각 가중치와 편향에 대한 기울기로 분해한다. 연쇄 법칙을 활용하여 출력층에서 시작해 입력층 방향으로 오차를 역전파시킨다. 구체적으로, 손실 함수의 기울기를 출력층의 활성화 값에 대해 계산하고, 이를 다시 이전 층의 가중치와 활성화 값에 대한 기울기로 연쇄적으로 계산해 나간다. 이 과정의 결과는 각 파라미터(가중치 w와 편향 b)에 대한 손실 함수의 편미분 ∂L/∂w, ∂L/∂b 값이다. 이 기울기 벡터는 이후 경사 하강법 단계에서 파라미터를 업데이트하는 방향을 결정하는 데 사용된다.
단계 | 주요 입력 | 주요 출력 | 목적 |
|---|---|---|---|
순전파 | 입력 데이터, 현재 가중치/편향 | 각 층의 활성화 출력, 최종 예측값 | 네트워크를 통한 예측 수행 |
오차 계산 | 예측값, 목표값 | 손실 값(L) | 예측의 정확도 측정 |
역전파(기울기 계산) | 손실 값, 저장된 순전파 값 | 각 가중치와 편향에 대한 기울기(∂L/∂w, ∂L/∂b) | 파라미터 업데이트를 위한 방향 결정 |
순전파는 인공 신경망에서 입력 데이터가 네트워크의 입력층부터 출력층까지 순차적으로 전달되는 과정이다. 입력 벡터는 각 은닉층을 통과하며 가중치와의 선형 결합 및 활성화 함수의 비선형 변환을 거쳐 최종 출력값을 생성한다.
구체적인 단계는 다음과 같다. 입력층의 노드들은 외부에서 주어진 데이터 값을 그대로 전달한다. 첫 번째 은닉층의 각 뉴런은 이전 층의 모든 출력값에 해당 연결의 가중치를 곱한 합, 즉 가중합을 계산한다. 이 가중합은 바이어스 항이 더해진 후, 시그모이드 함수나 ReLU와 같은 비선형 활성화 함수를 통과하여 해당 뉴런의 최종 출력값이 된다. 이 과정이 네트워크의 모든 층에 대해 반복되어, 마지막 출력층의 뉴런 활성화 값이 네트워크의 예측값이 된다.
순전파의 결과는 손실 함수를 통해 평가된다. 신경망의 예측 출력과 실제 목표값(레이블)을 비교하여 하나의 스칼라 값인 손실을 계산한다. 이 손실 값은 네트워크의 현재 성능을 정량화하며, 이후 역전파 알고리즘에서 이 손실을 최소화하기 위해 각 가중치를 얼마나 조정해야 할지에 대한 근거를 제공한다.
손실 함수의 출력값을 계산하는 과정을 순전파라고 한다. 순전파가 완료되면, 신경망의 최종 출력값과 실제 목표값 사이의 차이를 정량화해야 한다. 이 차이를 측정하는 함수가 손실 함수이다. 오차 계산은 이 손실 함수의 값을 구하는 단계이다.
사용하는 손실 함수의 종류는 해결하려는 문제의 유형에 따라 결정된다. 대표적인 예는 다음과 같다.
문제 유형 | 대표적인 손실 함수 | 설명 |
|---|---|---|
회귀 문제 | 예측값과 실제값의 차이를 제곱하여 평균낸다. | |
이진 분류 | 두 확률 분포(예측과 실제) 사이의 차이를 계산한다. | |
다중 클래스 분류 | 다중 클래스에 대한 확률 분포의 차이를 계산한다. |
계산된 오차 값은 신경망의 전반적인 성능을 나타내는 단일 스칼라 값이다. 이 값은 역전파 알고리즘의 출발점이 된다. 알고리즘의 목표는 이 오차를 최소화하는 방향으로 네트워크의 모든 가중치와 편향을 조정하는 것이다. 따라서 오차 계산은 네트워크가 현재 얼마나 잘못되었는지를 정의하고, 이후에 이루어질 모든 파라미터 업데이트의 근거를 제공하는 핵심 단계이다.
역전파를 통한 기울기 계산은 연쇄 법칙을 활용하여 손실 함수의 기울기를 출력층에서 입력층 방향으로 효율적으로 분배하는 과정이다. 이 알고리즘의 핵심은 각 가중치와 편향에 대한 손실의 변화율, 즉 기울기를 계산하여 이후 경사 하강법 단계에서 매개변수를 업데이트할 수 있도록 하는 것이다.
계산은 출력층에서 시작하여 입력층 방향으로 진행된다. 먼저, 최종 출력값과 목표값을 비교하여 계산된 오차가 출력층의 각 뉴런에 할당된다. 그런 다음, 이 오차는 각 뉴런의 활성화 함수의 도함수와 결합되어 해당 뉴런의 '델타(δ)' 또는 '오차 신호'를 생성한다. 이 델타는 "이 뉴런이 전체 오차에 얼마나 기여했는가"를 나타내는 척도이다.
생성된 델타는 네트워크를 거꾸로 전파되며, 이전 층의 각 뉴런에 대한 델타를 계산하는 데 사용된다. 특정 가중치에 대한 손실의 기울기는, 해당 가중치가 연결하는 다음 층 뉴런의 델타와 이전 층 뉴런의 출력값(활성화 값)의 곱으로 구해진다. 이 과정을 표로 정리하면 다음과 같다.
계산 대상 | 공식 (층 | 설명 |
|---|---|---|
출력층 델타 (δ^L) | δ^L = ∇_a C ⊙ σ'(z^L) | 출력층의 오차 신호. 손실 함수의 출력에 대한 기울기와 활성화 함수의 도함수의 요소별 곱이다. |
은닉층 델타 (δ^l) | δ^l = ((w^{l+1})^T δ^{l+1}) ⊙ σ'(z^l) | 이전 층(l+1)의 델타를 현재 층(l)으로 전파하여 계산한다. |
가중치 기울기 (∂C/∂w^l) | ∂C/∂w^l = δ^l (a^{l-1})^T | 가중치 |
편향 기울기 (∂C/∂b^l) | ∂C/∂b^l = δ^l | 편향 |
이 알고리즘의 가장 큰 장점은 효율성이다. 각 매개변수에 대한 기울기를 직접 수치 미분으로 계산하는 것보다 훨씬 빠르고 정확하다. 한 번의 순전파와 역전파로 네트워크의 모든 매개변수에 대한 기울기를 동시에 얻을 수 있어, 대규모 신경망의 학습을 실용적으로 만드는 기반이 되었다.

가중치 업데이트는 역전파 알고리즘을 통해 계산된 기울기를 사용하여 신경망의 매개변수를 조정하는 과정이다. 이 과정의 목표는 손실 함수의 값을 최소화하는 방향으로 가중치를 변경하여 모델의 예측 성능을 향상시키는 것이다.
가중치 업데이트의 가장 기본적인 방법은 경사 하강법이다. 경사 하강법은 현재 가중치에서 손실 함수의 기울기의 반대 방향으로 가중치를 조정한다. 수식으로 표현하면, 각 가중치 \( w \)는 \( w \leftarrow w - \eta \cdot \frac{\partial L}{\partial w} \) 와 같이 업데이트된다. 여기서 \( \frac{\partial L}{\partial w} \)는 역전파로 계산된 해당 가중치에 대한 손실의 기울기이며, \( \eta \)는 학습률이라는 중요한 하이퍼파라미터이다.
학습률은 한 번의 업데이트에서 가중치를 얼마나 크게 변경할지를 결정하는 상수이다. 학습률의 선택은 훈련 성공에 매우 중요한 영향을 미친다.
학습률의 크기 | 영향 |
|---|---|
너무 높음 | 최적점을 지나쳐 발산하거나 진동할 수 있음 |
적절함 | 안정적이고 효율적으로 최적점에 수렴함 |
너무 낮음 | 수렴 속도가 매우 느려지거나 지역 최소점에 갇힐 수 있음 |
기본적인 경사 하강법은 모든 훈련 데이터를 사용한 후에 한 번 가중치를 업데이트하는 배치 경사 하강법이다. 그러나 현대의 딥러닝에서는 계산 효율성과 일반화 성능을 위해 미니배치를 사용한 확률적 경사 하강법의 변형들이 더 널리 사용된다[3]. 이러한 방법들은 경사 하강법의 기본 원리 위에, 업데이트 속도나 방향을 개선하는 추가적인 메커니즘을 도입한다.
경사 하강법은 손실 함수의 값을 최소화하기 위해 매개변수를 반복적으로 조정하는 최적화 알고리즘이다. 이 방법은 함수의 기울기가 가장 가파르게 감소하는 방향, 즉 음의 기울기 방향으로 매개변수를 업데이트한다. 역전파 알고리즘은 각 매개변수에 대한 손실 함수의 기울기를 효율적으로 계산하여 제공하며, 경사 하강법은 이 계산된 기울기 정보를 사용하여 실제로 가중치와 편향을 조정하는 과정을 담당한다.
기본적인 경사 하강법의 업데이트 규칙은 다음과 같은 수식으로 표현된다.
θ = θ − η ⋅ ∇θ J(θ)
여기서 θ는 업데이트 대상 매개변수(가중치나 편향), η는 학습률, ∇θ J(θ)는 역전파를 통해 구한 해당 매개변수에 대한 손실 함수 J의 기울기이다. 이 과정은 모델의 예측 오차가 충분히 줄어들 때까지, 또는 정해진 횟수만큼 반복된다.
경사 하강법에는 사용하는 데이터의 양에 따라 몇 가지 주요 변형이 존재한다. 이들은 계산 효율성과 수렴 안정성 사이의 트레이드오프를 가진다.
방법 | 설명 | 장점 | 단점 |
|---|---|---|---|
배치 경사 하강법 | 전체 훈련 데이터셋을 사용해 한 번에 기울기를 계산하고 매개변수를 한 번 업데이트한다. | 안정적인 수렴, 기울기 방향의 노이즈가 적다. | 데이터셋이 클 경우 계산 비용이 매우 크고, 메모리 요구량이 많다. |
확률적 경사 하강법 | 훈련 데이터 샘플 하나마다 기울기를 계산하고 매개변수를 업데이트한다. | 계산이 빠르고, 국소 최소점에서 탈출할 가능성이 있다. | 업데이트 경로가 노이즈가 많아 불안정하고, 진동이 심할 수 있다. |
미니배치 경사 하강법 | 전체 데이터셋을 작은 묶음(미니배치)으로 나누어, 각 묶음마다 기울기를 계산하고 업데이트한다. | 배치 방식과 확률적 방식의 절충안으로, 계산 효율성과 수렴 안정성을 모두 어느 정도 확보한다. | 미니배치 크기라는 추가 하이퍼파라미터를 선택해야 한다. |
일반적으로 현대 딥러닝에서는 미니배치 경사 하강법이 가장 널리 사용된다. 순수한 배치나 확률적 방식의 단점을 보완하면서도 GPU의 병렬 계산 능력을 효율적으로 활용할 수 있기 때문이다.
학습률은 경사 하강법 알고리즘에서 매 반복마다 가중치를 업데이트할 때 기울기에 곱해지는 하이퍼파라미터이다. 이 값은 단일 스칼라 값으로, 모델이 얼마나 빠르게 또는 느리게 학습할지를 결정하는 핵심 요소이다. 학습률이 너무 크면 최적점을 지나쳐 발산하거나 진동할 수 있으며, 너무 작으면 학습 속도가 매우 느려지거나 지역 최소점에 갇힐 수 있다. 따라서 적절한 학습률을 선택하는 것은 신경망 훈련 성공의 관건이다.
학습률의 설정은 일반적으로 실험을 통해 이루어진다. 널리 사용되는 방법은 0.1, 0.01, 0.001과 같은 10의 거듭제곱 단위로 값을 시도해보는 것이다. 더 정교한 접근법으로는 학습률을 고정하지 않고 훈련 과정에 따라 동적으로 변화시키는 학습률 스케줄링을 사용한다. 대표적인 스케줄링 방법으로는 훈련이 진행됨에 따라 학습률을 점차 감소시키는 학습률 감소가 있다. 이는 초기에는 큰 보폭으로 빠르게 수렴 영역에 접근하고, 후기에는 작은 보폭으로 정밀하게 최적점을 찾도록 돕는다.
다양한 학습률이 모델 수렴에 미치는 영향을 요약하면 다음과 같다.
학습률 크기 | 영향 |
|---|---|
매우 큼 | 손실이 발산하거나 크게 진동한다. |
적당함 | 안정적이고 효율적으로 전역 최소점에 수렴한다. |
매우 작음 | 수렴 속도가 극도로 느리며, 지역 최소점에 갇힐 위험이 있다. |
학습률을 자동으로 조정하는 적응형 학습률 알고리즘들도 널리 사용된다. Adam, RMSProp, Adagrad 등의 옵티마이저는 각 가중치마다 개별적인 학습률을 동적으로 계산하여, 기울기의 크기에 반비례하도록 조정한다. 이는 기울기 소실 문제나 기울기 폭발 문제를 완화하고, 희소한 데이터에 대한 학습을 개선하는 데 도움을 준다.

역전파 알고리즘의 기본 형태는 경사 하강법을 사용하여 모든 매개변수를 동일한 학습률로 업데이트한다. 그러나 실제 딥러닝 모델 학습에서는 수렴 속도를 높이고 성능을 개선하기 위해 다양한 변형과 최적화 기법이 적용된다.
가장 기본적인 변형은 미니배치 학습이다. 전체 훈련 데이터셋을 사용하는 배치 경사 하강법은 매 스텝 계산 비용이 크고, 단일 샘플을 사용하는 확률적 경사 하강법은 노이즈가 심하다. 미니배치 학습은 두 방법의 절충안으로, 32, 64, 128개 등 작은 묶음의 데이터를 사용하여 기울기를 추정하고 가중치를 한 번 업데이트한다. 이는 하드웨어의 병렬 계산 효율을 높이고, 더 안정적인 기울기 추정을 가능하게 한다[4].
기울기 업데이트의 효율성을 높이기 위한 최적화 알고리즘도 다양하게 개발되었다. 모멘텀은 과거 기울기의 이동 평균을 고려하여 업데이트 방향을 조정한다. 이는 손실 함수의 곡면에서 평평한 지역을 빠르게 통과하거나, 진동을 줄여 안정적인 수렴을 돕는다. 적응형 학습률 알고리즘은 각 매개변수마다 학습률을 동적으로 조정한다. 대표적인 예로 RMSProp와 Adam이 있다. 이 알고리즘들은 각 가중치의 기울기 제곱값의 지수 이동 평균을 유지하며, 변화가 큰 매개변수는 작은 학습률을, 변화가 작은 매개변수는 큰 학습률을 적용한다. Adam은 모멘텀과 RMSProp의 아이디어를 결합한 것으로, 현재 가장 널리 사용되는 최적화 알고리즘 중 하나이다.
최적화 기법 | 핵심 아이디어 | 주요 장점 |
|---|---|---|
모멘텀 | 과거 기울기의 관성을 현재 업데이트에 반영 | 곡면의 지역적 최소점이나 평평한 구간을 빠르게 통과 |
AdaGrad | 각 매개변수의 기울기 제곱합을 누적하여 학습률 조정 | 희소한 특징에 대한 업데이트를 효과적으로 수행 |
RMSProp | AdaGrad의 기울기 제곱합 누적을 지수 이동 평균으로 대체 | 학습률이 지나치게 감소하는 문제를 완화 |
Adam | 모멘텀(1차 모멘트)과 RMSProp(2차 모멘트)을 결합 | 일반적으로 빠른 수렴과 강건한 성능을 보임 |
이러한 변형들은 기본 역전파 알고리즘의 단점을 보완하여, 더 깊고 복잡한 신경망을 효과적으로 학습시키는 데 기여한다.
미니배치 학습은 경사 하강법을 수행할 때 전체 훈련 데이터 세트를 한 번에 사용하지 않고, 데이터를 작은 묶음(배치)으로 나누어 각 배치마다 오차 역전파 알고리즘을 적용하고 가중치를 업데이트하는 방법이다. 이는 배치 경사 하강법과 확률적 경사 하강법 사이의 절충안에 해당한다.
미니배치 학습의 과정은 다음과 같다. 먼저, 전체 N개의 훈련 샘플을 미리 정해진 배치 크기(예: 32, 64, 128)로 무작위로 나눈다. 그런 다음, 각 미니배치에 대해 순전파를 수행하여 예측값을 계산하고, 손실 함수를 통해 오차를 구한 뒤, 역전파 알고리즘으로 해당 배치에 대한 평균 기울기를 계산한다. 이렇게 계산된 기울기를 사용하여 네트워크의 가중치와 편향을 한 번 업데이트한다. 이 과정을 모든 미니배치에 대해 반복하여 한 바퀴를 도는 것을 1 에포크라고 한다.
학습 방식 | 사용 데이터 | 기울기 정확도 | 업데이트 속도 | 메모리 사용 | 수렴 안정성 |
|---|---|---|---|---|---|
배치 경사 하강법 | 전체 데이터 | 매우 정확 | 느림 | 매우 큼 | 안정적 |
미니배치 학습 | 미니배치 | 상대적 정확 | 보통 | 보통 | 상대적 안정 |
확률적 경사 하강법 | 단일 샘플 | 노이즈 많음 | 매우 빠름 | 작음 | 불안정 |
미니배치 학습은 여러 실용적 장점을 제공한다. 첫째, 배치 경사 하강법에 비해 메모리 사용량이 적고 계산이 효율적이다. 특히 대규모 데이터셋을 다룰 때 유리하다. 둘째, 단일 샘플을 사용하는 확률적 방식보다 기울기 추정의 분산이 작아 수렴이 더 안정적이다. 또한, 현대 GPU나 TPU와 같은 하드웨어는 행렬 연산에 최적화되어 있어, 미니배치 형태의 데이터를 병렬 처리하는 데 매우 효율적이다. 배치 크기는 하이퍼파라미터로, 작을수록 빠르고 노이즈가 많은 업데이트를, 클수록 정확하고 안정적인 업데이트를 야기하므로 문제에 따라 조정해야 한다.
역전파 과정에서 계산된 기울기를 바탕으로 가중치를 업데이트할 때, 기본적인 경사 하강법은 고정된 학습률을 사용한다. 이는 간단하지만 수렴 속도가 느리거나, 손실 함수의 골짜기에서 진동하거나, 지역 최솟값에 빠질 위험이 있다. 이러한 문제를 완화하기 위해 모멘텀과 적응형 학습률 방법이 개발되었다.
모멘텀은 물리학의 관성 개념을 차용한 최적화 기법이다. 이 방법은 과거 기울기 업데이트 방향을 일정 비율로 유지하여 현재의 기울기 업데이트에 더함으로써, 최적화 경로에 관성을 부여한다. 이는 업데이트 방향이 급격히 변하는 것을 억제하고, 일관된 방향으로 가속하도록 돕는다. 모멘텀은 일반적으로 다음과 같은 수식으로 표현된다.
변수 | 설명 |
|---|---|
v_t | 시간 t에서의 속도(모멘텀) 벡터 |
β | 모멘텀 계수 (보통 0.9 근처의 값) |
η | 학습률 |
∇J(θ_t) | 시간 t에서의 매개변수 θ에 대한 손실 함수의 기울기 |
수식: v_t = β * v_{t-1} + η * ∇J(θ_t), θ_{t+1} = θ_t - v_t
이를 통해 기울기가 작은 지역에서도 누적된 모멘텀 덕분에 빠르게 이동할 수 있으며, 골짜기 바닥에서의 진동을 줄여준다. 모멘텀의 변형으로는 네스테로프 가속 경사가 있다.
적응형 학습률 방법은 각 매개변수마다 독립적으로 학습률을 조정하는 알고리즘 군을 말한다. 대표적인 방법으로는 AdaGrad, RMSProp, Adam이 있다. AdaGrad는 지금까지 누적된 기울기의 제곱값의 합을 이용해 학습률을 조정한다. 자주 업데이트되는 매개변수는 학습률이 작아지고, 드물게 업데이트되는 매개변수는 학습률이 커진다. 그러나 학습이 진행될수록 누적 값이 커져 학습률이 지나치게 작아질 수 있다는 단점이 있다. RMSProp는 AdaGrad의 단점을 보완하여 기울기 제곱값의 이동 평균을 사용해 최근 기울기의 영향력을 더 크게 반영한다. Adam은 모멘텀(1차 모멘트)과 RMSProp(2차 모멘트)의 아이디어를 결합한 방법으로, 현재 가장 널리 사용되는 적응형 학습률 최적화 알고리즘 중 하나이다.

역전파 알고리즘은 심층 신경망 학습의 핵심이지만, 네트워크가 깊어질수록 몇 가지 심각한 문제점을 드러낸다. 가장 대표적인 문제는 기울기 소실 문제와 기울기 폭발 문제이다. 이 두 문제는 모두 역전파 과정에서 연쇄 법칙에 의해 계산되는 기울기가 네트워크의 초기 층으로 전파될수록 극단적으로 작아지거나 커지는 현상을 의미한다.
기울기 소실 문제는 주로 시그모이드 함수나 하이퍼볼릭 탄젠트와 같은 포화 함수를 활성화 함수로 사용할 때 발생한다. 이 함수들의 도함수는 입력값이 크거나 작을 때 0에 가까운 매우 작은 값을 출력한다. 역전파 과정에서 이 도함수 값들이 연속적으로 곱해지면, 네트워크의 뒷부분에서 계산된 오차 신호가 앞쪽 층으로 전달될수록 기울기의 크기가 기하급수적으로 줄어들게 된다. 결과적으로 네트워크의 앞쪽 층 가중치는 거의 업데이트되지 않고 학습이 정체되거나 매우 느려진다.
반대로 기울기 폭발 문제는 주로 깊은 순환 신경망에서 자주 관찰된다. 이는 가중치 행렬의 값이 1보다 크고, 여러 시간 단계를 거쳐 반복적으로 곱해질 때 발생한다. 역전파 과정에서 이 가중치 값들이 연속적으로 곱해지면, 기울기의 크기가 기하급수적으로 폭발적으로 증가하여 수치적 불안정성을 초래한다. 이로 인해 가중치 값이 NaN이 되거나 학습 과정이 발산할 수 있다.
이러한 문제들을 완화하기 위해 다양한 기법이 개발되었다. 기울기 소실 문제에는 ReLU 계열의 활성화 함수 사용, 배치 정규화 도입, 잔차 연결을 활용한 ResNet 같은 네트워크 구조가 효과적이다. 기울기 폭발 문제에는 기울기 클리핑, 가중치 초기화 기법(예: Xavier 초기화, He 초기화), 그리고 LSTM이나 GRU와 같은 게이트 메커니즘을 가진 순환 신경망 구조가 널리 사용된다[5].
기울기 소실 문제는 심층 신경망을 역전파 알고리즘으로 학습시킬 때 발생하는 주요 난제 중 하나이다. 이 문제는 신경망의 출력층에서 입력층 방향으로 오차를 전파하며 계산하는 과정에서, 기울기 값이 지나치게 작아져서 네트워크의 앞쪽 계층(입력층에 가까운 계층)의 가중치가 거의 업데이트되지 않는 현상을 의미한다. 특히 활성화 함수로 시그모이드 함수나 하이퍼볼릭 탄젠트 함수를 사용하는 경우, 이 함수들의 도함수 값이 입력값이 크거나 작을 때 0에 매우 가까워지는 특성 때문에 문제가 두드러진다.
역전파는 연쇄 법칙에 기반하여 각 가중치에 대한 손실 함수의 편미분을 계산한다. 이 과정에서 각 계층의 기울기는 상위 계층에서 전달받은 기울기에 해당 계층의 활성화 함수의 도함수를 곱하는 형태로 계산된다. 시그모이드 함수의 도함수는 최대값이 0.25에 불과하며, 0에서 멀어질수록 급격히 0으로 수렴한다. 따라서 여러 계층을 거치면서 이 작은 값들이 반복적으로 곱해지면, 최종적으로 앞쪽 계층으로 전달되는 기울기의 크기는 기하급수적으로 감소하게 된다. 결과적으로 네트워크의 뒷부분은 학습이 진행되지만, 앞부분은 효과적으로 학습되지 않아 심층 신경망의 성능을 크게 저하시킨다.
이 문제를 완화하기 위한 여러 방법이 개발되었다. 가장 대표적인 해결책은 활성화 함수를 ReLU와 같이 도함수의 값이 0 또는 1로 일정한 함수로 교체하는 것이다. ReLU는 양수 구간에서 도함수가 1이므로, 기울기가 여러 계층을 통과하더라도 크기가 쉽게 감쇠하지 않는다. 또한, 배치 정규화를 각 계층에 적용하여 활성화 값의 분포를 안정화시키거나, 잔차 연결을 도입한 ResNet과 같은 네트워크 구조를 사용하여 기울기가 직접 앞쪽 계층으로 흐를 수 있는 경로를 만드는 방법도 효과적이다. 가중치 초기화 전략(예: He 초기화)을 개선하는 것도 기울기 소실 문제를 초기에 완화하는 데 도움을 준다.
기울기 폭발 문제는 인공 신경망을 역전파 알고리즘으로 학습시킬 때 발생하는 주요 난제 중 하나이다. 이 문제는 네트워크의 깊은 층으로 오차 신호를 역전파하는 과정에서, 계산되는 기울기의 값이 지수적으로 급격히 커지는 현상을 의미한다. 특히 많은 층을 가진 심층 신경망이나 순환 신경망에서 긴 시퀀스를 처리할 때 두드러지게 나타난다.
이 문제의 근본 원인은 연쇄 법칙에 따라 기울기를 계산할 때, 각 층의 가중치 행렬에 대한 편미분이 반복적으로 곱해지기 때문이다. 만약 가중치 행렬의 고윳값이 1보다 크다면, 역전파가 진행될수록 기울기의 크기가 계속해서 커지게 된다. 이는 기울기 소실 문제와 정반대의 현상으로, 결과적으로 가중치 업데이트가 매우 불안정해지고, 가중치 값이 급격히 증가하여 NaN과 같은 수치적 불안정성을 초래할 수 있다.
기울기 폭발 문제를 완화하기 위한 대표적인 기법은 기울기 클리핑이다. 이 방법은 역전파를 통해 계산된 기울기의 노름이 사전에 설정한 임계값을 초과할 경우, 기울기의 크기를 임계값 이하로 줄여서 업데이트를 수행한다. 또한, 가중치 초기화 전략을 신중하게 선택하거나(예: Xavier 초기화, He 초기화), 배치 정규화를 적용하여 각 층의 활성화 값 분포를 안정화시키는 것도 도움이 된다. 순환 신경망에서는 LSTM이나 GRU와 같은 게이트 메커니즘을 갖춘 구조를 사용하여 장기 의존성을 학습하면서도 기울기 흐름을 더 잘 제어할 수 있다.

역전파 알고리즘은 다양한 인공 신경망 구조의 학습에 핵심적으로 적용된다. 가장 기본적인 형태인 다층 퍼셉트론에서는 각 은닉층과 출력층의 뉴런이 완전 연결 구조를 이루며, 역전파는 각 연결의 가중치와 편향에 대한 손실 함수의 기울기를 효율적으로 계산한다. 이 과정은 네트워크를 통해 오차 신호가 출력층에서 입력층 방향으로 전파되며, 각 층의 매개변수가 오차를 줄이는 방향으로 조정되게 한다.
합성곱 신경망에서는 합성곱층과 풀링층이라는 고유 구조에 맞게 역전파가 변형되어 적용된다. 합성곱층의 경우, 필터(커널) 가중치에 대한 기울기를 계산하기 위해 합성곱 연산의 역과정에 해당하는 전합성곱 연산을 수행한다. 풀링층은 일반적으로 학습 가능한 매개변수가 없지만, 최댓값 풀링의 경우 순전파에서 선택된 위치로만 기울기를 역전파시키는 방식으로 동작한다[6].
순환 신경망은 시퀀스 데이터를 처리하기 위해 시간 축을 따라 순환 연결을 가지며, 이에 대한 역전파는 시간에 따른 역전파 알고리즘으로 확장된다. BPTT는 시간 스텝을 거슬러 올라가며 각 시간에서의 가중치에 대한 기울기를 누적하여 계산한다. 그러나 장기 의존성을 학습할 때 기울기 소실 문제가 두드러지게 나타나, 이를 해결하기 위해 LSTM이나 GRU와 같은 게이트 메커니즘이 도입된 구조에서도 역전파의 원리는 동일하게 적용되며, 내부 게이트들의 가중치를 학습한다.
신경망 유형 | 역전파 적용의 주요 특징 |
|---|---|
완전 연결층의 모든 가중치와 편향에 대한 기울기를 계산. 알고리즘의 가장 표준적인 형태. | |
합성곱 연산과 풀링 연산에 특화된 기울기 전파 규칙을 사용. 필터 가중치와 특징 맵의 기울기를 계산. | |
시간 축을 따라 확장된 역전파(BPTT)를 수행. 시간적 의존성을 포착하기 위해 시간 스텝별 기울기를 전파 및 누적. |
이러한 적용을 통해 역전파는 현대 딥러닝의 복잡한 구조를 가진 모델들이 이미지, 음성, 자연어와 같은 고차원 데이터에서 효과적으로 패턴을 학습할 수 있는 기반을 제공한다.
다층 퍼셉트론(MLP)은 오차 역전파 알고리즘이 가장 기본적으로 적용되는 신경망 구조이다. 입력층, 하나 이상의 은닉층, 출력층으로 구성되며, 각 층은 여러 개의 뉴런(또는 노드)으로 이루어지고, 인접한 층의 모든 뉴런 사이에 가중치 연결이 존재한다. 이러한 완전 연결 구조는 각 뉴런이 이전 층의 모든 뉴런의 출력을 입력으로 받아 가중합을 계산한 후, 활성화 함수(예: 시그모이드 함수, ReLU)를 적용하여 출력을 생성한다.
역전파는 다층 퍼셉트론의 학습을 가능하게 하는 핵심 메커니즘이다. 순전파 과정에서 입력 데이터는 네트워크를 통과하여 최종 출력을 생성한다. 이 출력과 기대하는 목표값 사이의 오차는 손실 함수(예: 평균 제곱 오차)로 계산된다. 역전파 알고리즘은 이 손실 값을 바탕으로, 출력층에서 입력층 방향으로 오차를 전파하면서 각 가중치에 대한 손실의 기울기(편미분)를 연쇄 법칙을 통해 효율적으로 계산한다.
다층 퍼셉트론에서의 역전파 계산은 체계적으로 이루어진다. 먼저 출력층의 오차를 계산한 후, 이 오차를 은닉층의 오차로 역전파시킨다. 각 가중치의 기울기는 "해당 가중치가 연결된 후속 층 뉴런의 오차"와 "해당 가중치의 입력 값"의 곱으로 구해진다. 이 과정에서 활성화 함수의 도함수가 곱해지며, 이로 인해 기울기 소실 문제가 발생할 수 있다[7].
역전파를 통해 계산된 기울기는 경사 하강법 등의 최적화 알고리즘과 결합되어 네트워크의 모든 가중치와 편향을 업데이트하는 데 사용된다. 이 과정을 반복함으로써 다층 퍼셉트론은 주어진 작업에 맞게 내부 매개변수를 조정하여 복잡한 비선형 결정 경계를 학습할 수 있게 된다. 따라서 역전파는 다층 퍼셉트론이 단순한 퍼셉트론의 한계를 극복하고 복잡한 패턴을 인식하는 능력을 갖추도록 하는 기반이 된다.
합성곱 신경망에서 오차 역전파 알고리즘은 합성곱층과 풀링층과 같은 고유한 구조에 맞게 변형되어 적용된다. 기본적인 경사 하강법 원리는 동일하지만, 가중치를 공유하는 커널 필터와 지역적 연결성으로 인해 기울기 계산 방식이 다층 퍼셉트론과는 차이가 있다.
합성곱층에서의 역전파는 각 필터의 파라미터에 대한 기울기를 계산하는 과정을 포함한다. 하나의 필터는 입력 특징 맵의 특정 지역을 순회하며 동일한 가중치를 적용하므로, 해당 필터에 대한 기울기는 필터가 적용된 모든 위치에서의 기울기의 합으로 계산된다[8]. 이는 국소적 연결과 가중치 공유라는 CNN의 핵심 특성이 역전파 시에도 유지됨을 의미한다.
풀링층은 일반적으로 학습 가능한 파라미터를 가지지 않지만, 역전파 과정에서 기울기를 전달하는 역할을 한다. 최대 풀링의 경우, 순전파 때 선택된 최대값의 위치로 기울기를 전달하는 방식으로 동작한다. 평균 풀링은 해당 영역에 들어온 기울기를 균등하게 분배한다. 다음 표는 합성곱 신경망의 주요 층에서의 역전파 특성을 비교한 것이다.
층의 유형 | 학습 파라미터 | 역전파 시 기울기 계산/전달 방식 |
|---|---|---|
합성곱층 | 커널 필터의 가중치와 편향 | 각 필터 파라미터에 대한 기울기는 모든 적용 위치에서의 기울기 합산으로 계산됨 |
활성화 함수층 | 없음 | 상류에서 전달된 기울기에 함수의 국소적 미분값을 곱하여 하류로 전달함 |
최대 풀링층 | 없음 | 순전파 시 선택된 최대값의 위치로만 기울기를 전달함 |
평균 풀링층 | 없음 | 상류의 기울기를 풀링 영역 크기로 나누어 하류의 각 위치에 균등하게 전달함 |
이러한 변형된 역전파 알고리즘 덕분에 합성곱 신경망은 이미지의 공간적 계층 구조를 효과적으로 학습할 수 있다. 역전파를 통해 필터는 가장 유용한 특징(예: 모서리, 질감)을 추출하도록 최적화된다.
순환 신경망은 시계열 데이터나 자연어와 같은 순차 데이터를 처리하기 위해 설계된 인공 신경망의 한 종류이다. 이전 단계의 출력이 다음 단계의 입력으로 다시 공급되는 순환 연결을 가지고 있어, 네트워크가 일종의 '기억'을 유지할 수 있게 한다. 이러한 구조는 시간에 따라 변화하는 패턴을 학습하는 데 필수적이다.
순환 신경망에서 오차 역전파 알고리즘은 시간 축을 따라 적용되며, 이를 시간에 따른 오차 역전파라고 부른다. 이 과정은 네트워크의 오차를 출력층에서 시작해 입력층으로, 그리고 시간을 거슬러 이전 시간 단계까지 전파한다. 각 시간 단계에서의 가중치에 대한 기울기는 해당 시간 단계와 그 이전 모든 시간 단계에서 발생한 오차의 합으로 계산된다[9].
특징 | 설명 |
|---|---|
학습의 복잡성 | 시간 단계가 길어질수록 기울기 계산이 복잡해지고, 기울기 소실 문제 또는 기울기 폭발 문제가 두드러지게 발생할 수 있다. |
주요 변형 구조 | |
역전파 적용 | BPTT는 이러한 게이트 구조 내부의 가중치(예: 입력 게이트, 망각 게이트)에 대한 기울기도 정확히 계산하여 네트워크가 장기 의존성을 학습하도록 한다. |
시간에 따른 오차 역전파는 순환 신경망이 시퀀스 내의 장기적인 관계를 학습하는 데 핵심 메커니즘을 제공한다. 이를 통해 언어 모델링, 기계 번역, 음성 인식 같은 복잡한 순차 처리 작업이 가능해졌다.
