순환 신경망 구조
1. 개요
1. 개요
순환 신경망(RNN)은 인공 신경망의 한 종류로, 시퀀스 또는 시계열 데이터를 처리하는 데 특화된 구조를 가진다. 전통적인 피드포워드 신경망이 각 입력이 독립적이라고 가정하는 반면, RNN은 내부에 순환 연결을 도입하여 이전 단계의 정보를 현재 처리에 활용한다. 이는 데이터의 순차적 특성과 시간적 의존성을 모델링할 수 있게 해준다.
RNN의 핵심 아이디어는 '은닉 상태'라는 개념이다. 네트워크는 각 시간 단계에서 입력을 받아 처리하고, 그 결과를 은닉 상태에 저장하여 다음 단계로 전달한다. 이 메커니즘 덕분에 RNN은 문장의 이전 단어나 주식 가격의 과거 흐름과 같은 맥락 정보를 기억하며 작업을 수행할 수 있다. 이러한 특성은 연속적인 패턴 인식에 필수적이다.
초기 RNN 구조는 단순했으나, 장기 의존성 문제를 해결하기 위해 LSTM과 GRU 같은 게이트 메커니즘을 갖춘 변형 구조들이 개발되었다. 이들은 정보의 흐름을 제어하는 게이트를 통해 장기간에 걸친 의존성을 더 효과적으로 학습할 수 있게 했다. RNN과 그 변형들은 자연어 처리, 음성 인식, 기계 번역, 시계열 예측 등 다양한 분야에서 중요한 역할을 한다.
다음 표는 RNN의 핵심 특징을 요약한 것이다.
특징 | 설명 |
|---|---|
순환 연결 | 네트워크 출력이 다시 입력으로 피드백되는 구조[1] |
은닉 상태 | 과거 정보를 저장하고 전달하는 네트워크의 내부 메모리 |
시퀀스 처리 | 데이터를 독립적이 아닌 순서가 있는 시퀀스로 처리 |
가변 길이 입력/출력 | 입력과 출력 시퀀스의 길이가 서로 다를 수 있음 |
2. RNN의 기본 구조와 작동 원리
2. RNN의 기본 구조와 작동 원리
순환 신경망의 핵심은 순환 연결을 통해 이전 단계의 정보를 현재 단계에 전달하는 은닉 상태이다. 이는 기존 피드포워드 신경망과의 근본적인 차이점이다. 피드포워드 신경망은 입력이 주어지면 각 층을 한 방향으로만 통과하지만, RNN은 네트워크 내부에 순환 경로가 존재하여, 특정 시점 t의 출력이 동일한 시점의 입력과 이전 시점 t-1의 은닉 상태에 의해 함께 결정된다. 이 은닉 상태는 네트워크의 '기억' 역할을 하며, 시퀀스의 과거 정보를 요약하여 담고 있다.
시계열 데이터 처리 과정에서 RNN은 시퀀스를 구성하는 각 요소(예: 문장의 단어, 시계열의 관측값)를 순차적으로 하나씩 입력받는다. 각 시간 단계마다 동일한 가중치와 편향을 공유하는 동일한 RNN 셀이 반복적으로 적용된다. 이 과정은 다음 수식으로 표현될 수 있다.
h_t = 활성화함수(W_hh * h_{t-1} + W_xh * x_t + b_h)
y_t = W_hy * h_t + b_y
여기서 h_t는 현재 시간 t의 은닉 상태, x_t는 현재 시간의 입력, y_t는 현재 시간의 출력을 나타낸다. W_hh, W_xh, W_hy는 학습 가능한 가중치 행렬이며, b_h, b_y는 편향 벡터이다. 이 구조 덕분에 RNN은 입력 시퀀스의 길이에 관계없이 동일한 모델을 적용할 수 있다.
구성 요소 | 설명 |
|---|---|
입력 (x_t) | 시간 단계 t에서의 데이터 포인트 (예: 단어 벡터, 센서 값) |
은닉 상태 (h_t) | 시간 t까지의 시퀀스 정보를 인코딩한 내부 상태 |
출력 (y_t) | 시간 t에서의 예측 또는 변환된 결과 |
순환 연결 | h_{t-1}을 h_t 계산에 전달하는 경로 |
이러한 작동 원리로 인해 RNN은 문장에서 다음 단어를 예측하거나, 주식 가격의 향후 흐름을 분석하는 등, 시간 또는 순서에 의존적인 패턴을 학습하는 데 적합하다. 그러나 기본 RNN 구조는 긴 시퀀스에서 먼 과거의 정보를 현재로 효과적으로 전달하는 데 어려움을 겪는 장기 의존성 문제를 가지고 있다.
2.1. 순환 연결과 은닉 상태
2.1. 순환 연결과 은닉 상태
순환 신경망의 핵심은 이전 시점의 계산 결과가 현재 시점의 입력에 영향을 미치는 순환 연결 구조에 있다. 이 연결은 네트워크가 시간에 따른 정보를 내부적으로 유지하고 전달할 수 있게 하며, 이를 통해 시퀀스의 패턴을 학습한다. 이러한 내부 메모리 역할을 하는 것이 은닉 상태이다.
은닉 상태는 각 시간 단계마다 갱신되는 벡터로, 네트워크가 지금까지 처리한 입력 시퀀스의 요약 정보를 담고 있다. 수학적으로, 시간 t에서의 은닉 상태 h_t는 현재 입력 x_t와 이전 은닉 상태 h_{t-1}의 함수로 계산된다. 일반적인 공식은 h_t = 활성화함수(W_{xh} * x_t + W_{hh} * h_{t-1} + b)와 같다. 여기서 W_{xh}와 W_{hh}는 학습 가능한 가중치 행렬이며, b는 편향값이다.
이 구조는 네트워크가 고정된 크기의 파라미터를 사용하면서도 가변 길이의 시퀀스를 처리할 수 있게 한다. 각 시간 단계에서 동일한 가중치 집합(W_{xh}, W_{hh})이 재사용되며, 이는 파라미터 공유의 한 형태로, 모델의 효율성과 일반화 능력을 높인다. 은닉 상태는 네트워크의 "기억"으로 작동하여, 이전 맥락이 후속 예측에 영향을 미치게 한다.
구성 요소 | 역할 | 특징 |
|---|---|---|
순환 연결 | 이전 은닉 상태를 현재 계산에 입력 | 시간적 의존성을 모델링하는 핵심 경로 |
은닉 상태 (h_t) | 시퀀스의 과거 정보를 요약한 내부 상태 | 매 시간 단계마다 갱신되며 다음 단계로 전달됨 |
가중치 행렬 (W_{hh}, W_{xh}) | 입력과 이전 상태를 새로운 상태로 변환 | 시간에 관계없이 동일한 파라미터가 공유됨 |
이 기본 구조는 단순하지만, 장기 의존성을 학습하는 데는 한계가 있어 LSTM과 GRU 같은 게이트 메커니즘을 도입한 변형 구조가 발전하게 되었다.
2.2. 시계열 데이터 처리 과정
2.2. 시계열 데이터 처리 과정
시계열 데이터 처리 과정에서 순환 신경망은 각 시간 단계마다 순차적으로 입력을 받아 처리한다. 입력 시퀀스는 $x^{(1)}, x^{(2)}, ..., x^{(T)}$와 같이 표현되며, 여기서 $T$는 시퀀스의 총 길이이다.
각 시간 단계 $t$에서의 처리 과정은 다음과 같다.
1. 현재 시간의 입력 $x^{(t)}$와 이전 시간의 은닉 상태 $h^{(t-1)}$을 받는다.
2. 이 두 값을 결합하여 현재의 새로운 은닉 상태 $h^{(t)}$를 계산한다. 이 계산에는 가중치 행렬과 활성화 함수(주로 하이퍼볼릭 탄젠트나 ReLU)가 사용된다.
3. 필요에 따라 현재 은닉 상태 $h^{(t)}$를 출력 계층으로 전달하여 해당 시간의 출력 $y^{(t)}$를 생성한다.
이 과정은 첫 번째 시간 단계부터 마지막 시간 단계까지 순차적으로 반복된다. 초기 은닉 상태 $h^{(0)}$는 일반적으로 0 벡터나 작은 난수 값으로 초기화된다. 이 구조 덕분에 RNN은 이전에 처리한 정보를 현재 계산에 반영할 수 있어, 음성 신호나 문장과 같은 순차 데이터의 패턴을 학습하는 데 적합하다.
시간 단계 | 입력 | 이전 은닉 상태 | 현재 은닉 상태 | 출력 (선택적) |
|---|---|---|---|---|
$t=1$ | $x^{(1)}$ | $h^{(0)}$ (초기화) | $h^{(1)} = f(W_{xh}x^{(1)} + W_{hh}h^{(0)} + b)$ | $y^{(1)}$ |
$t=2$ | $x^{(2)}$ | $h^{(1)}$ | $h^{(2)} = f(W_{xh}x^{(2)} + W_{hh}h^{(1)} + b)$ | $y^{(2)}$ |
... | ... | ... | ... | ... |
$t=T$ | $x^{(T)}$ | $h^{(T-1)}$ | $h^{(T)} = f(W_{xh}x^{(T)} + W_{hh}h^{(T-1)} + b)$ | $y^{(T)}$ |
표에서 $W_{xh}$와 $W_{hh}$는 학습 가능한 가중치 행렬이며, $b$는 편향, $f$는 활성화 함수이다. 이 표는 정보가 시간을 따라 어떻게 흐르고 변형되는지를 보여준다. 모든 시간 단계가 처리된 후, 최종 은닉 상태 $h^{(T)}$는 전체 입력 시퀀스의 정보를 요약하여 담고 있게 된다. 이 요약 정보는 시퀀스 분류나 다음 값 예측과 같은 다운스트림 작업에 활용된다.
3. RNN의 주요 변형 구조
3. RNN의 주요 변형 구조
순환 신경망의 기본 구조는 장기적인 의존 관계를 학습하는 데 한계가 있다. 이를 해결하기 위해 게이트 메커니즘을 도입한 LSTM과 GRU 같은 변형 구조가 개발되었다. 또한, 시퀀스의 양방향 맥락을 활용하기 위한 양방향 RNN도 중요한 변형 중 하나이다.
LSTM (Long Short-Term Memory)
LSTM은 셀 상태와 세 개의 게이트(입력, 삭제, 출력 게이트)로 구성된다. 이 구조는 정보를 선택적으로 기억하거나 잊어버리도록 설계되어, 기본 RNN의 기울기 소실 문제를 완화한다. 입력 게이트는 새로운 정보를 셀 상태에 추가할지 결정하고, 삭제 게이트는 기존 정보를 잊을지 결정하며, 출력 게이트는 현재 셀 상태를 다음 은닉 상태로 얼마나 출력할지 조절한다. 이 메커니즘 덕분에 LSTM은 긴 시퀀스 데이터에서도 중요한 맥락을 유지할 수 있다.
GRU (Gated Recurrent Unit)
GRU는 LSTM의 간소화된 버전으로, 리셋 게이트와 업데이트 게이트 두 개의 게이트만을 사용한다. 업데이트 게이트는 LSTM의 입력 게이트와 삭제 게이트의 역할을 통합하여, 이전 정보를 얼마나 유지하고 새로운 정보를 얼마나 받아들일지를 동시에 제어한다. 리셋 게이트는 이전 상태의 정보를 얼마나 무시할지 결정한다. 구조가 더 간단하여 계산 효율이 높은 것이 특징이다.
양방향 RNN (Bidirectional RNN)
양방향 RNN은 시퀀스의 과거 정보뿐만 아니라 미래 정보도 활용하기 위해 설계되었다. 두 개의 독립적인 RNN 계층(정방향과 역방향)을 사용하여 입력 시퀀스를 처리한다. 각 시간 단계에서의 최종 출력은 두 방향의 은닉 상태를 연결하거나 합산하여 생성된다. 이 구조는 특정 시점의 출력이 전체 시퀀스의 맥락에 의존하는 작업, 예를 들어 자연어 처리의 개체명 인식이나 기계 번역에서 유용하게 적용된다.
구조 | 핵심 메커니즘 | 주요 특징 |
|---|---|---|
입력, 삭제, 출력 게이트와 셀 상태 | 장기 의존성 학습에 효과적이며 구조가 복잡함 | |
업데이트 게이트와 리셋 게이트 | LSTM보다 매개변수가 적고 계산 효율이 높음 | |
정방향과 역방향 RNN의 결합 | 시퀀스의 양방향 맥락을 동시에 고려함 |
3.1. LSTM (Long Short-Term Memory)
3.1. LSTM (Long Short-Term Memory)
LSTM은 순환 신경망의 한계인 장기 의존성 문제를 해결하기 위해 1997년 제안된 특수한 RNN 구조이다. 기존 RNN이 은닉 상태 하나만을 통해 정보를 전달하며 발생하는 기울기 소실 문제를, 게이트(gate)라는 제어 메커니즘을 도입하여 극복한다.
LSTM의 핵심은 셀 상태와 세 가지 게이트로 구성된다. 셀 상태는 네트워크를 수평으로 관통하는 정보의 고속도로 역할을 하며, 비교적 변형 없이 장기적인 정보를 전달한다. 세 가지 게이트는 망각 게이트, 입력 게이트, 출력 게이트로, 모두 시그모이드 함수와 점곱 연산을 사용하여 0과 1 사이의 값을 출력하여 정보의 흐름을 조절한다. 망각 게이트는 셀 상태에서 어떤 정보를 버릴지 결정하고, 입력 게이트는 새로운 정보 중 어떤 것을 셀 상태에 추가할지 결정한다. 마지막으로 출력 게이트는 갱신된 셀 상태를 바탕으로 다음 은닉 상태를 출력한다.
이러한 게이트 구조는 네트워크가 필요에 따라 정보를 선택적으로 기억하거나 잊게 만든다. 예를 들어, 문장 처리에서 주어와 동사의 일치와 같은 중요한 문법 정보는 셀 상태를 통해 장기간 보존하고, 불필요한 세부 정보는 망각 게이트를 통해 삭제한다. 이는 LSTM이 긴 시퀀스에서도 관련 정보 간의 장기적인 의존 관계를 효과적으로 학습할 수 있게 하는 원동력이다.
LSTM의 효과성은 다양한 벤치마크에서 입증되었으며, GRU와 같은 간소화된 변형 구조를 낳았다. 두 구조의 주요 차이점은 다음과 같다.
특성 | LSTM | GRU |
|---|---|---|
게이트 수 | 3개 (망각, 입력, 출력) | 2개 (리셋, 업데이트) |
내부 상태 | 셀 상태(Cell State)와 은닉 상태(Hidden State) | 은닉 상태(Hidden State) 하나 |
매개변수 수 | 상대적으로 많음 | 상대적으로 적음 |
학습 속도 | 일반적으로 더 느림 | 일반적으로 더 빠름 |
성능 | 매우 복잡한 장기 의존성 작업에 강함 | 많은 작업에서 유사한 성능을 보임[2]. |
결과적으로, LSTM은 음성 인식, 기계 번역, 텍스트 생성 등 시계열 데이터 처리의 핵심 구조로 자리 잡았다.
3.2. GRU (Gated Recurrent Unit)
3.2. GRU (Gated Recurrent Unit)
GRU는 LSTM의 복잡성을 줄이면서 유사한 성능을 제공하기 위해 제안된 순환 신경망 변형 구조이다. LSTM의 셀 상태와 은닉 상태를 통합하고, 게이트의 수를 두 개로 줄여 매개변수 수를 감소시켰다. 이는 계산 효율성을 높이고, 과적합 위험을 낮추는 효과를 가져왔다.
GRU의 핵심은 리셋 게이트와 업데이트 게이트라는 두 개의 게이트 메커니즘이다. 리셋 게이트는 새로운 입력과 이전 은닉 상태를 결합할 때, 이전 상태의 정보를 얼마나 '잊을지' 결정한다. 업데이트 게이트는 이전 은닉 상태의 정보를 새로운 은닉 상태에 얼마나 유지할지, 그리고 새로운 후보 은닉 상태의 정보를 얼마나 반영할지를 조절한다. 이 과정은 다음 수식으로 요약된다.
게이트/상태 | 계산식 |
|---|---|
업데이트 게이트 (z_t) | σ(W_z · [h_{t-1}, x_t]) |
리셋 게이트 (r_t) | σ(W_r · [h_{t-1}, x_t]) |
후보 은닉 상태 (\tilde{h}_t) | tanh(W · [r_t * h_{t-1}, x_t]) |
최종 은닉 상태 (h_t) | (1 - z_t) * h_{t-1} + z_t * \tilde{h}_t |
여기서 σ는 시그모이드 함수, tanh는 하이퍼볼릭 탄젠트 함수를 나타내며, *는 요소별 곱셈을 의미한다. 업데이트 게이트는 LSTM의 입력 게이트와 망각 게이트의 역할을 결합한 것으로 볼 수 있다.
GRU는 LSTM보다 간결한 구조 덕분에 학습 속도가 더 빠른 경우가 많으며, 특히 데이터셋의 크기가 상대적으로 작거나 시퀀스 길이가 매우 길지 않은 작업에서 효율적이다. 자연어 처리의 기계 번역, 텍스트 생성, 감정 분석 및 시계열 예측 등 다양한 분야에서 널리 활용된다. 그러나 매우 복잡한 장기 의존성을 학습해야 하는 과제에서는 LSTM이 여전히 우수한 성능을 보일 수 있다.
3.3. 양방향 RNN
3.3. 양방향 RNN
양방향 순환 신경망은 순환 신경망의 한 변형으로, 시퀀스 데이터의 각 시점에서 과거 정보뿐만 아니라 미래 정보도 함께 활용하여 더 풍부한 문맥을 포착하도록 설계되었다. 기존 RNN이 입력 시퀀스를 정방향으로만 처리하는 데 비해, 이 구조는 정방향과 역방향 두 개의 독립적인 은닉층을 동시에 사용한다.
구조적으로, 하나의 RNN 계층은 시퀀스의 시작부터 끝까지(정방향) 처리하고, 다른 하나의 RNN 계층은 시퀀스의 끝부터 시작까지(역방향) 처리한다. 특정 시점 t에서의 최종 출력은 정방향 은닉 상태와 역방향 은닉 상태를 연결하거나 합산하는 방식으로 생성된다. 이는 각 단어나 데이터 포인트를 이해할 때 앞뒤 문맥을 모두 고려할 수 있게 해준다.
처리 방향 | 입력 순서 | 정보 활용 범위 |
|---|---|---|
정방향 RNN | \(x_1\) → \(x_T\) | 시점 t까지의 과거 정보 |
역방향 RNN | \(x_T\) → \(x_1\) | 시점 t 이후의 미래 정보 |
양방향 RNN | 병렬 처리 | 과거 및 미래 정보 통합 |
이 구조는 특히 전체 입력 시퀀스를 사전에 모두 사용할 수 있는 작업에서 강점을 보인다. 대표적인 예로 자연어 처리의 개체명 인식, 품사 태깅, 감성 분석 등이 있으며, 음성 인식에서도 문맥을 더 정확히 이해하는 데 활용된다. 그러나 실시간으로 스트리밍되는 데이터처럼 미래 정보를 즉시 사용할 수 없는 상황에는 적용이 제한된다.
4. RNN의 학습 방법
4. RNN의 학습 방법
RNN의 학습은 주로 시간 역전파 알고리즘을 통해 이루어진다. 이 알고리즘은 순환 신경망의 고유한 구조, 즉 시간에 따라 펼쳐진 네트워크에 표준 역전파 원리를 적용한 것이다. 네트워크를 각 시간 단계별로 펼쳐서 하나의 깊은 순방향 신경망처럼 취급한 후, 출력에서 발생한 오차를 시간을 거슬러 역방향으로 전파하여 가중치를 업데이트한다. 이 과정에서 오차는 현재 시간 단계뿐만 아니라 이전 시간 단계의 은닉 상태를 통해 전파되어, 시퀀스 전체의 맥락을 고려한 학습이 가능해진다.
그러나 BPTT는 기울기 소실 또는 기울기 폭발이라는 심각한 문제에 직면한다. 시퀀스가 길어질수록 오차 기울기가 여러 시간 단계를 거쳐 반복적으로 곱해지게 되는데, 이때 기울기의 값이 지수적으로 빠르게 0에 수렴하거나(소실) 또는 무한대로 발산(폭발)할 수 있다. 기울기가 소실되면 네트워크가 먼 과거의 정보를 학습하지 못하게 되어 장기 의존성 문제가 발생한다. 반대로 기울기가 폭발하면 학습 과정이 불안정해지고 가중치가 발산할 수 있다.
이러한 문제를 완화하기 위해 여러 기법이 사용된다. 기울기 폭발 문제에는 주로 기울기 클리핑이 적용된다. 이는 기울기의 노름이 특정 임계값을 넘지 않도록 제한하는 방법이다. 한편, 기울기 소실 문제의 근본적인 해결책은 RNN의 내부 구조를 변경하는 것이다. LSTM과 GRU는 게이트 메커니즘을 도입하여 정보의 흐름을 제어함으로써, 기울기가 장기간에 걸쳐 더 효과적으로 전파될 수 있도록 설계되었다. 이 변형 구조들은 장기 의존성을 학습하는 RNN의 능력을 크게 향상시켰다.
4.1. BPTT (시간 역전파)
4.1. BPTT (시간 역전파)
순환 신경망의 학습은 시간 역전파 알고리즘을 통해 이루어진다. 이 알고리즘은 기본적인 오차 역전파 알고리즘을 시계열 데이터에 맞게 확장한 것이다. BPTT는 네트워크의 출력에서 계산된 오차를 시간 축을 따라 역방향으로 전파하여 각 시간 단계의 매개변수에 대한 기울기를 계산한다.
BPTT의 핵심은 시간에 걸쳐 펼쳐진 순환 신경망 구조를 하나의 깊은 순방향 신경망으로 간주하는 것이다. 각 시간 단계는 이 펼쳐진 네트워크의 한 층으로 볼 수 있다. 학습 과정은 다음과 같은 단계로 진행된다.
1. 입력 시퀀스를 네트워크에 순방향으로 전파하여 각 시간 단계의 출력과 은닉 상태를 계산한다.
2. 각 시간 단계의 출력과 목표값을 비교하여 오차를 계산한다.
3. 이 오차를 시간 축을 따라 역방향으로 전파하며, 각 시간 단계에서 가중치에 대한 오차의 기울기를 누적하여 계산한다.
4. 누적된 기울기를 사용하여 가중치를 업데이트한다.
시간 단계 (t) | 순방향 전파 (Forward) | 역방향 전파 (Backward) |
|---|---|---|
t=1 | h₁ = f(Wᵢₕ*x₁ + Wₕₕ*h₀) | ∂E/∂W 누적 시작 |
t=2 | h₂ = f(Wᵢₕ*x₂ + Wₕₕ*h₁) | ∂E/∂W 계산 및 t=1 방향으로 전파 |
t=3 | h₃ = f(Wᵢₕ*x₃ + Wₕₕ*h₂) | ∂E/∂W 계산 및 t=2 방향으로 전파 |
... | ... | ... |
t=T | yₜ = g(Wₕᵧ*hₜ) | 최종 기울기 ∂E/∂W로 가중치 업데이트 |
그러나 BPTT는 긴 시퀀스를 처리할 때 실질적인 문제에 직면한다. 시간 단계가 길어질수록 기울기를 계산하는 경로가 길어지며, 이로 인해 기울기 소실 또는 기울기 폭발 문제가 발생한다. 이 문제를 완화하기 위해 실제 구현에서는 시퀀스를 일정 길이의 청크로 나누어 제한된 시간 단계만큼만 역전파를 수행하는 Truncated BPTT 기법이 널리 사용된다. 이는 장기적인 의존성 학습에는 제한이 있을 수 있지만, 계산 효율성과 안정성을 크게 높인다.
4.2. 기울기 소실/폭발 문제
4.2. 기울기 소실/폭발 문제
순환 신경망을 시간 역전파 알고리즘으로 학습할 때 발생하는 대표적인 문제는 기울기 소실과 기울기 폭발이다. 이 문제는 네트워크가 긴 시퀀스 데이터의 장기 의존성을 효과적으로 학습하는 것을 방해하는 주요 원인이다.
기울기 소실 문제는 역전파 과정에서 기울기 값이 시간을 거슬러 올라가며 계속해서 작은 값(보통 1보다 작은 값)이 곱해지면서 0에 가까워지는 현상이다. 이는 시그모이드 함수나 하이퍼볼릭 탄젠트 함수 같은 활성화 함수의 도함수 값이 특정 구간에서 매우 작기 때문에 발생한다. 기울기가 소실되면 네트워크의 초기 시간 스텝에 대한 가중치가 거의 업데이트되지 않아, 먼 과거의 정보가 현재 예측에 영향을 미치지 못하게 된다. 반대로 기울기 폭발 문제는 기울기 값이 지수적으로 빠르게 증가하여 발산하는 현상이다. 이는 가중치 행렬의 고유값이 1보다 클 때 발생하며, 기울기 값이 NaN이 되거나 학습이 불안정해지는 결과를 초래한다.
이 문제를 완화하기 위한 여러 방법이 제안되었다. 가장 기본적인 방법은 기울기 클리핑으로, 기울기의 노름이 특정 임계값을 넘지 않도록 잘라내는 기법이다. 이는 주로 기울기 폭발을 제어하는 데 효과적이다. 근본적인 해결책은 LSTM과 GRU와 같은 게이트 메커니즘을 도입한 구조를 사용하는 것이다. 이 구조들은 망각 게이트와 입력 게이트 등을 통해 정보 흐름을 제어하는 경로를 만들어, 기울기가 장기간에 걸쳐 비교적 안정적으로 전파될 수 있도록 설계되었다. 또한, ReLU 계열의 활성화 함수를 사용하거나, 가중치 초기화 기법(예: Xavier 초기화, He 초기화)을 신중하게 적용하는 것도 도움이 된다.
5. RNN의 데이터 처리 유형
5. RNN의 데이터 처리 유형
순환 신경망은 입력과 출력 시퀀스의 길이에 따라 다양한 방식으로 데이터를 처리할 수 있다. 이러한 유형은 주로 일대다, 다대일, 다대다의 세 가지 범주로 구분된다. 각 유형은 특정한 문제 구조에 맞게 설계되어, 다양한 응용 분야에 적용된다.
처리 유형 | 입력 시퀀스 길이 | 출력 시퀀스 길이 | 주요 응용 예시 |
|---|---|---|---|
일대다 (One-to-Many) | 1 (단일 데이터 포인트) | N (시퀀스) | |
다대일 (Many-to-One) | N (시퀀스) | 1 (단일 데이터 포인트) | |
다대다 (Many-to-Many) | N (시퀀스) | N (시퀀스) |
다대다 유형은 다시 두 가지 하위 유형으로 나뉜다. 첫째는 입력과 출력이 완전히 정렬된 경우로, 기계 번역이나 음성 인식에서 볼 수 있다. 입력 시퀀스의 각 타임스텝에 대해 대응하는 출력이 순차적으로 생성된다. 둘째는 입력과 출력이 정렬되지 않은 경우로, 대표적으로 비디오 프레임에 대한 설명 생성과 같은 작업이 있다. 이 경우 전체 입력 시퀀스를 모두 인코딩한 후, 그 정보를 바탕으로 출력 시퀀스를 디코딩하는 인코더-디코더 구조를 사용한다. 이러한 데이터 처리 유형의 구분은 문제를 정의하고 적합한 RNN 아키텍처를 선택하는 데 중요한 기준이 된다.
5.1. 일대다 (One-to-Many)
5.1. 일대다 (One-to-Many)
일대다 구조는 하나의 입력 벡터를 받아 일련의 출력 시퀀스를 생성하는 순환 신경망의 데이터 처리 유형이다. 이 구조는 입력이 단일 시점의 데이터로 고정되어 있지만, 출력은 여러 시점에 걸쳐 순차적으로 발생한다는 특징을 가진다. 입력과 출력의 길이가 명확하게 다르며, 은닉 상태의 순환 연결을 통해 출력 시퀀스가 만들어지는 과정이 핵심이다.
주요 응용 분야는 다음과 같다.
응용 분야 | 설명 | 예시 |
|---|---|---|
이미지 캡셔닝 | 단일 이미지를 입력받아 해당 이미지를 설명하는 문장(단어 시퀀스)을 생성한다. | 컨볼루션 신경망으로 이미지 특징을 추출한 후, 이를 RNN의 초기 입력으로 사용한다. |
음악 생성 | 하나의 시작 조건(예: 장르, 첫 음표)을 입력받아 연속적인 악보나 음표 시퀀스를 생성한다. | 초기 입력으로 주어진 시드를 바탕으로 다음 음표를 반복적으로 예측하여 전체 곡을 만든다. |
텍스트 생성 | 시작 단어나 특정 주제를 나타내는 벡터를 입력받아 문장이나 문서를 생성한다. | 시퀀스의 시작을 알리는 특수 토큰을 첫 입력으로 사용하여 이후 단어를 순차적으로 생성한다[9]. |
작동 과정은 일반적으로 첫 번째 시간 단계에서만 실제 외부 입력을 받는다. 이후 시간 단계에서는 이전 단계에서 RNN이 생성한 출력이 다음 단계의 입력으로 재사용되거나, 특정 조건에 따라 조정된 값이 입력된다. 이렇게 함으로써 모델은 자체적으로 출력 시퀀스를 이어나가는 자기 회귀적인 생성을 수행한다. 이러한 구조는 창의적인 콘텐츠 생성 작업에 적합하지만, 생성 과정에서 오류가 누적될 수 있는 단점도 존재한다.
5.2. 다대일 (Many-to-One)
5.2. 다대일 (Many-to-One)
다대일 구조는 여러 개의 입력 시퀀스를 받아 하나의 출력을 생성하는 순환 신경망 처리 유형이다. 입력은 일련의 시계열 데이터로 구성되며, 각 시간 단계마다 순차적으로 네트워크에 입력된다. 최종 출력은 일반적으로 마지막 시간 단계에서의 은닉 상태를 완전 연결 계층과 같은 추가 층에 통과시켜 생성된다. 이 구조는 입력 전체의 정보를 요약하거나 집계하여 하나의 결정이나 값을 도출하는 데 적합하다.
주요 응용 분야는 다음과 같다.
응용 분야 | 설명 | 예시 |
|---|---|---|
감정 분석 | 문장이나 문서 전체의 감정(긍정/부정)을 분류한다. | 영화 리뷰 텍스트를 입력받아 평점을 예측한다. |
문서 분류 | 문서의 내용을 기반으로 카테고리를 지정한다. | 뉴스 기사를 입력받아 정치, 경제, 스포츠 등으로 분류한다. |
시계열 분류/예측 | 과거 일정 기간의 데이터를 입력받아 미래의 단일 값을 예측한다. | 주가의 과거 30일 데이터를 입력받아 다음 날의 종가를 예측한다. |
이 구조의 학습은 시간 역전파 알고리즘을 통해 이루어진다. 손실은 최종 단일 출력값과 정답 레이블을 비교하여 계산되며, 이 오차가 시간 축을 따라 역방향으로 전파되어 네트워크의 가중치를 업데이트한다. 다대일 구조는 입력의 길이가 가변적일 수 있다는 점이 특징이며, 패딩과 같은 기법을 통해 서로 다른 길이의 입력을 효율적으로 처리한다.
5.3. 다대다 (Many-to-Many)
5.3. 다대다 (Many-to-Many)
다대다 구조는 입력 시퀀스와 출력 시퀀스가 모두 여러 개의 타임스텝을 가지는 처리 유형이다. 이 구조는 입력의 각 요소가 출력의 특정 요소에 대응되는 경우가 많다. 대표적인 예로는 기계 번역과 음성 인식이 있다. 예를 들어, 영어 문장(입력 시퀀스)을 한국어 문장(출력 시퀀스)으로 번역하는 작업이 여기에 해당한다.
구현 방식에 따라 두 가지 주요 하위 유형으로 나눌 수 있다. 첫 번째는 입력과 출력의 타임스텝이 완전히 동기화되는 경우이다. 시퀀스 레이블링이나 품사 태깅과 같은 작업이 이에 속한다. 문장의 각 단어를 입력으로 받아 동시에 해당 단어의 품사를 출력하는 구조이다. 두 번째는 입력 시퀀스를 모두 읽은 후에 출력 시퀀스를 생성하는 비동기적 방식이다. 인코더-디코더 구조가 이 방식을 사용하며, 번역 작업에서 입력 문장 전체를 인코딩한 후에 디코딩 과정을 통해 번역문을 순차적으로 생성한다.
다대다 구조의 RNN은 일반적으로 다음과 같은 구성 요소를 가진다.
처리 유형 | 설명 | 주요 응용 예시 |
|---|---|---|
동기화된 다대다 | 입력과 출력의 타임스텝이 1:1로 대응함. | 품사 태깅, 개체명 인식 |
인코더-디코더 (비동기) | 전체 입력 시퀀스를 인코딩한 후 출력 시퀀스를 디코딩함. | 기계 번역, 텍스트 요약 |
이 구조는 시퀀스 간의 복잡한 매핑을 학습해야 하므로, 기본 RNN보다는 LSTM이나 GRU와 같은 게이트 메커니즘을 갖춘 변형 구조, 또는 어텐션 메커니즘이 결합된 모델이 더 효과적으로 사용된다.
6. RNN의 주요 응용 분야
6. RNN의 주요 응용 분야
순환 신경망은 시퀀스 데이터의 패턴을 학습하는 데 특화되어 있어, 시간적 또는 순차적 의존성이 중요한 다양한 분야에서 핵심적으로 활용된다.
자연어 처리 분야에서 RNN은 단어의 순서와 문맥을 이해하는 데 필수적이다. 기계 번역에서는 소스 언어의 단어 시퀀스를 입력받아 타겟 언어의 시퀀스를 생성하는 인코더-디코더 구조의 기반이 된다. 또한 텍스트 생성, 감정 분석, 품사 태깅, 개체명 인식 등에도 광범위하게 적용된다. 시계열 예측 분야에서는 주식 가격, 전력 수요, 기상 데이터 등 과거 관측값의 패턴을 바탕으로 미래 값을 예측하는 모델을 구축하는 데 사용된다.
음성 인식에서는 오디오 신호의 시퀀스를 문자 또는 단어 시퀀스로 변환하는 작업에 RNN이 효과적이다. 연결주의 시간 분류(CTC)[10] 손실 함수와 결합된 RNN은 음성-텍스트 정렬 문제를 해결하는 강력한 도구가 된다. 이 외에도 비디오 프레임 분석을 통한 행동 인식, 자율 주행 차량의 센서 데이터 처리, 그리고 생물정보학에서의 DNA 서열 분석 등에도 응용 범위가 확대되고 있다.
응용 분야 | 주요 작업 예시 | 데이터 특성 |
|---|---|---|
자연어 처리 (NLP) | 기계 번역, 텍스트 생성, 감정 분석 | 단어, 문자, 서브워드 토큰의 시퀀스 |
시계열 예측 | 주가 예측, 수요 예측, 기상 예보 | 시간에 따라 순차적으로 기록된 수치 데이터 |
음성 인식 | 음성-텍스트 변환(STT), 화자 인식 | 오디오 신호의 시간축 프레임 또는 특징 벡터 |
기타 | 비디오 캡셔닝, 알고리즘 학습, 시퀀스 생성 | 프레임 시퀀스, 상태 시퀀스, 다양한 시퀀스 데이터 |
6.1. 자연어 처리 (NLP)
6.1. 자연어 처리 (NLP)
순환 신경망은 자연어 처리 분야에서 핵심적인 역할을 수행하는 모델이다. 이는 언어 데이터가 본질적으로 순차적이고, 이전 단어의 맥락이 다음 단어의 의미를 결정하는 데 중요하기 때문이다. RNN의 은닉 상태는 문장을 구성하는 단어를 순차적으로 읽으면서, 지금까지 읽은 모든 단어의 정보를 요약하여 저장하는 역할을 한다. 이러한 특성 덕분에 RNN은 단어의 시퀀스를 입력받아 하나의 의미 벡터로 압축하거나, 반대로 하나의 벡터에서 단어 시퀀스를 생성하는 작업에 적합하다.
RNN은 자연어 처리의 여러 하위 과제에 광범위하게 적용되었다. 대표적인 응용 분야는 다음과 같다.
응용 분야 | 설명 | RNN 구조 유형 |
|---|---|---|
언어 모델링 | 다음에 올 단어의 확률을 예측하여 문장 생성 또는 평가 | |
기계 번역 | 한 언어의 단어 시퀀스를 다른 언어의 시퀀스로 변환 | 인코더-디코더 구조 (다대다) |
감정 분석 | 문장이나 문서의 긍정/부정 등 감성을 분류 | |
개체명 인식 | 문장에서 사람, 장소, 조직명 등의 고유명사를 태깅 | |
문서 생성 | 주제나 시작 단어를 바탕으로 자동으로 문장 작성 |
초기 RNN은 장기 의존성 문제로 인해 긴 문장의 맥락을 효과적으로 포착하는 데 한계가 있었다. 이를 해결하기 위해 LSTM과 GRU 같은 게이트 메커니즘을 도입한 변형 구조가 자연어 처리에서 표준적으로 사용되었다. 특히 양방향 RNN은 문장의 각 단어를 처리할 때 앞뒤 방향의 맥락을 모두 고려할 수 있어, 개체명 인식이나 품사 태깅과 같은 정밀한 분석 작업에서 성능을 크게 향상시켰다.
그러나 RNN 기반 모델은 본질적인 순차 처리 방식 때문에 병렬 계산이 어려워 학습 속도가 느리다는 단점이 있었다. 이 한계를 극복하고 장기 의존성 문제를 더 효과적으로 해결하기 위해 어텐션 메커니즘과 Transformer 구조가 등장하며, 자연어 처리의 주류 패러다임이 전환되게 된다.
6.2. 시계열 예측
6.2. 시계열 예측
시계열 예측은 순환 신경망의 핵심 응용 분야 중 하나이다. 시계열 데이터는 시간의 흐름에 따라 순차적으로 관측된 값들의 집합으로, 주식 가격, 기상 관측치, 에너지 소비량, 산업 장비의 센서 신호 등이 대표적인 예이다. RNN은 이전 시간 단계의 정보를 은닉 상태를 통해 유지하며 다음 값을 예측하는 모델링에 적합한 구조를 가진다.
기본적인 RNN 기반 시계열 예측 모델은 과거 t개의 시퀀스 데이터(예: 지난 30일간의 주가)를 입력받아 미래의 하나 또는 여러 개의 값을 출력한다. 이는 목차의 다대일 또는 다대다 데이터 처리 유형에 해당한다. 모델은 훈련 과정에서 실제 관측값과 예측값 사이의 오차(예: 평균 제곱 오차)를 최소화하도록 학습하여, 데이터에 내재된 추세, 계절성, 주기성 등의 패턴을 포착한다.
보다 복잡한 장기 의존성을 가진 시계열을 다루기 위해 LSTM이나 GRU 셀이 널리 사용된다. 이러한 게이트 메커니즘은 중요한 과거 정보를 선택적으로 장기간 보존하고, 불필요한 정보는 잊도록 함으로써 기본 RNN의 장기 의존성 문제를 완화한다. 예를 들어, 수요 예측에서는 공휴일, 이벤트, 장기적인 추세 등 다양한 시간 규모의 요인이 복합적으로 작용하는데, LSTM은 이러한 복잡한 의존 관계를 학습하는 데 효과적이다.
응용 분야 | 예시 데이터 | 예측 목표 |
|---|---|---|
금융 | 주식 가격, 거래량 | 미래 가격, 변동성 |
에너지 | 전력 수요, 재생 에너지 발전량 | 부하 예측, 발전량 예측 |
제조/유지보수 | 공정 센서 데이터, 진동 신호 | 장비 고장 예측, 잔여 수명 예측 |
기상/기후 | 기온, 강수량, 대기 오염 농도 | 기상 예보, 미세먼지 농도 예측 |
시계열 예측을 위한 RNN 모델의 성능은 데이터 전처리(정규화, 결측치 처리), 입력 시퀀스 길이 설정, 모델 구조의 깊이, 그리고 BPTT를 통한 학습 과정 등 여러 요소에 의해 크게 영향을 받는다. 또한, 양방향 RNN은 과거 정보뿐만 아니라 미래의 일부 문맥(예: 실시간이 아닌 완성된 시계열 분석)을 활용하여 예측 정확도를 높일 수 있는 경우도 있다.
6.3. 음성 인식
6.3. 음성 인식
음성 인식은 순환 신경망의 주요 응용 분야 중 하나이다. 음성 신호는 시간에 따라 변하는 연속적인 시계열 데이터로, RNN의 순환 구조는 이러한 시간적 의존성을 효과적으로 모델링할 수 있다. 음성 인식 시스템은 일반적으로 음성 신호를 일련의 음소 또는 단어 시퀀스로 변환하는 작업을 수행한다.
초기 음성 인식 시스템은 은닉 마르코프 모델(HMM)과 가우시안 혼합 모델(GMM)을 주로 사용했으나, 심층 학습의 발전과 함께 RNN 기반 접근법이 성능을 크게 향상시켰다. 특히 LSTM과 GRU 같은 게이트 메커니즘을 가진 RNN 변형은 장기간의 음성 신호에서 중요한 맥락 정보를 유지하는 데 유리하다. 이들은 음성의 지속 시간, 억양, 주변 음소의 영향 등을 학습하는 데 효과적이다.
현대의 고성능 음성 인식 시스템은 종종 양방향 RNN(Bi-RNN)이나 심층 양방향 LSTM을 사용하여 과거와 미래의 문맥을 모두 고려한다. 또한, 인코더-디코더 구조와 어텐션 메커니즘을 결합한 RNN 모델은 긴 음성 발화를 정확하게 텍스트로 변환하는 데 널리 사용된다. 이러한 시스템은 연속 음성 인식 및 대화형 음성 비서의 핵심 기술로 자리 잡았다.
모델 유형 | 주요 특징 | 활용 예 |
|---|---|---|
기본 RNN | 단순한 순환 구조, 짧은 의존성 처리 | 간단한 단어 인식 |
LSTM/GRU | 게이트 메커니즘, 장기 의존성 학습 | 연속 음성 인식, 대화 시스템 |
양방향 RNN (Bi-RNN) | 과거 및 미래 문맥 동시 활용 | 정확한 음소 분할 및 인식 |
어텐션 기반 인코더-디코더 | 입력 시퀀스의 중요한 부분에 집중 | 장문 음성-텍스트 변환 |
RNN 기반 음성 인식의 성공은 음성 합성, 화자 인식, 감정 인식 등 관련 분야에도 영향을 미쳤다. 그러나 매우 긴 시퀀스 처리와 계산 효율성 측면에서 한계가 지적되며, 최근에는 Transformer 기반 모델이 음성 인식 분야에서도 주목받고 있다[11].
7. RNN의 한계와 발전 방향
7. RNN의 한계와 발전 방향
순환 신경망은 시퀀스 데이터 처리에 효과적이지만, 장기 의존성을 학습하는 데 근본적인 한계를 지녔다. 이는 시간 역전파 알고리즘을 통해 기울기를 역방향으로 전파할 때, 기울기의 크기가 시간을 거슬러 올라가며 기하급수적으로 감소(기울기 소실)하거나 증가(기울기 폭발)하는 현상 때문이다. 결과적으로, 네트워크는 입력 시퀀스에서 시간적으로 멀리 떨어진 요소들 간의 관계를 학습하기 어렵다. 이 문제를 완화하기 위해 LSTM과 GRU와 같은 게이트 메커니즘을 도입한 변형 구조가 개발되었다. 이들은 정보의 흐름을 제어하는 게이트를 통해 장기적인 정보를 보다 효과적으로 전달하고 잊는 것을 가능하게 했다.
그러나 LSTM과 GRU도 완전히 문제를 해결하지는 못했으며, 여전히 매우 긴 시퀀스를 처리할 때는 계산 효율성과 성능 면에서 제약이 따른다. 또한, 순차적인 처리 방식으로 인해 병렬 계산이 어려워 학습 속도가 느리다는 단점도 존재한다. 이러한 한계들은 어텐션 메커니즘과 이를 기반으로 한 Transformer 구조의 등장을 촉진했다.
Transformer 구조는 순환 연결을 완전히 제거하고 대신 셀프 어텐션 메커니즘을 핵심으로 삼았다. 이 메커니즘은 시퀀스의 모든 위치에 있는 토큰이 서로 직접적으로 상호작용할 수 있게 하여, 장기 의존성 문제를 근본적으로 해결했다. 더불어, 순차적 처리가 필요 없어 대규모 병렬 계산이 가능해져 학습 속도가 획기적으로 향상되었다. Transformer의 등장 이후, 자연어 처리를 비롯한 여러 시퀀스 모델링 분야에서 RNN 기반 구조는 주류 자리를 내주게 되었다.
RNN의 발전 방향은 특정 도메인에의 적용이나 Transformer와의 결합에 초점이 맞춰지고 있다. 예를 들어, 저전력 임베디드 시스템이나 실시간 스트리밍 데이터 처리와 같이 엄격한 순차성과 낮은 지연 시간이 요구되는 환경에서는 RNN의 단순한 구조가 여전히 유리할 수 있다. 또한, 양방향 RNN과 어텐션을 결합하는 하이브리드 모델이나, 효율성을 높인 새로운 RNN 셀 구조에 대한 연구도 지속되고 있다. 요약하면, RNN은 시퀀스 모델링의 중요한 초기 기반을 제공했지만, 장기 의존성과 병렬화의 한계로 인해 현재는 보다 강력한 Transformer 구조에 주도권을 넘겨주었다.
7.1. 장기 의존성 문제
7.1. 장기 의존성 문제
순환 신경망은 이전 단계의 정보를 활용하여 현재 출력을 계산하는 구조를 가졌다. 그러나 이러한 구조는 긴 시퀀스 데이터를 처리할 때, 초기 입력 정보가 시간이 지남에 따라 점차 희미해지거나 변형되는 장기 의존성 문제를 겪는다. 이는 네트워크가 먼 과거의 중요한 맥락 정보를 현재 결정에 효과적으로 반영하지 못하게 만드는 근본적인 한계이다.
문제의 핵심 원인은 시간 역전파 학습 과정에서 발생하는 기울기 소실 현상이다. 오차 신호가 여러 시간 단계를 거쳐 역전파되면서, 기울기가 반복적으로 곱해지며 지수적으로 작아져 0에 가까워진다. 결과적으로 네트워크의 초기 층 가중치는 거의 업데이트되지 않고, 먼 과거의 입력과 현재 출력 사이의 연결 관계를 학습하는 것이 매우 어려워진다. 반대로 기울기가 지수적으로 커지는 기울기 폭발 문제도 발생할 수 있으나, 이는 기울기 클리핑 등의 기법으로 비교적 제어가 가능하다.
이 문제를 해결하기 위해 고안된 주요 구조가 LSTM과 GRU이다. 이들은 게이트 메커니즘을 도입하여 정보의 흐름을 제어한다. 망각 게이트, 입력 게이트, 출력 게이트(LSTM) 또는 리셋 게이트, 업데이트 게이트(GRU)를 통해 셀 상태에 중요한 정보는 장기간 보존하고, 불필요한 정보는 삭제하는 방식을 학습한다. 이를 통해 기존 RNN보다 훨씬 긴 의존 관계를 효과적으로 포착할 수 있게 되었다.
그러나 LSTM과 GRU도 완전히 문제를 해결한 것은 아니며, 여전히 매우 긴 시퀀스(예: 수백 단계 이상)에서는 한계를 보인다. 이러한 한계는 주의 메커니즘을 기반으로 한 Transformer 구조의 등장을 촉진하는 요인이 되었다. Transformer는 순환 연결을 완전히 제거하고 자기 주의 메커니즘을 통해 입력 시퀀스의 모든 위치 정보를 병렬적으로 처리함으로써 장기 의존성 문제에서 자유로워졌다. 이로 인해 자연어 처리 등 많은 분야에서 RNN 기반 모델을 대체하는 주류 구조가 되었다.
7.2. Transformer 구조와의 비교
7.2. Transformer 구조와의 비교
순환 신경망은 시퀀스 데이터 처리의 기본 구조로 자리 잡았으나, 장기 의존성 문제를 근본적으로 해결하지 못했다는 한계를 지녔다. 이에 대한 대안으로 등장한 트랜스포머 구조는 어텐션 메커니즘에 전적으로 의존하여 순환 연결을 제거함으로써, 병렬 처리와 장기 의존성 포착 측면에서 RNN을 크게 능가하는 성능을 보여주었다.
두 구조의 핵심 차이는 정보 흐름과 처리 방식에 있다. RNN은 입력 시퀀스를 시간 순서대로 단계적으로 처리하며, 이전 단계의 은닉 상태를 다음 단계로 전달하는 순환 구조를 가진다. 이는 본질적으로 순차적 처리(Sequential Processing)를 요구하므로, 긴 시퀀스의 병렬 계산이 어렵고 계산 속도가 느려진다. 반면, 트랜스포머는 셀프 어텐션을 통해 입력 시퀀스의 모든 요소(토큰) 간의 관계를 한 번에 계산한다. 이는 시퀀스 내 모든 위치에 대한 정보에 동시에 접근할 수 있게 하여, 장거리 의존 관계를 직접적으로 모델링하고, 전체 시퀀스에 대한 병렬 처리를 가능하게 한다.
아래 표는 두 구조의 주요 특성을 비교한 것이다.
특성 | 순환 신경망 (RNN/LSTM/GRU) | 트랜스포머 (Transformer) |
|---|---|---|
핵심 메커니즘 | 순환 연결(Recurrent Connection) | 어텐션 메커니즘 (Attention), 특히 셀프 어텐션 |
처리 방식 | 순차적 처리 (Sequential) | 병렬 처리 (Parallel) |
장기 의존성 | 제한적 (기울기 소실/폭발 문제) | 효과적 (직접적인 모든 위치 간 연결) |
계산 효율성 | 시퀀스 길이에 선형적 시간 복잡도 | 시퀀스 길이의 제곱에 비례하는 메모리 사용[12] |
주요 적용 분야 | 실시간 시계열 처리, 문자 단위 생성 |
이러한 비교에도 불구하고, RNN은 여전히 특정 영역에서 유용성을 지닌다. 트랜스포머의 자기 어텐션은 시퀀스 길이의 제곱에 비례하는 계산 복잡도를 가지므로, 매우 긴 시퀀스(예: 긴 문서, 고해상도 비디오)를 실시간으로 처리해야 하는 경우에는 부담이 될 수 있다. 또한, RNN의 순차적 본성은 스트리밍 데이터나 온라인 학습이 필요한 응용 분야에 더 자연스럽게 적합할 수 있다. 결과적으로, 트랜스포머는 대규모 언어 모델과 같은 분야에서 사실상의 표준 구조가 되었지만, RNN은 계산 자원이 제한적이거나 엄격한 순차성이 요구되는 맥락에서 여전히 연구 및 적용되고 있다.
