순환 신경망(RNN)과 어텐션(Attention)의 이해¶
🚀 개요¶
텍스트나 시계열 데이터처럼 순서가 있는 데이터(Sequence Data)를 처리할 때는 이전 단계의 정보가 다음 단계에 영향을 주는 구조가 필요합니다. 이 포스트에서는 기본 RNN의 한계를 극복한 LSTM과, 현대 딥러닝의 판도를 바꾼 어텐션(Attention) 메커니즘을 다룹니다.
💡 RNN에서 LSTM으로¶
기본 RNN은 문장이 길어질수록 앞부분의 정보가 뒤로 전달되지 않는 장기 의존성(Long-term Dependency) 문제를 가지고 있습니다.
LSTM (Long Short-Term Memory)¶
- 핵심: '셀 상태(Cell State)'라는 일종의 컨베이어 벨트를 통해 정보를 오래 유지하거나, 필요 없는 정보는 삭제(Forget Gate)합니다.
- 실습 예제 (로이터 뉴스 분류):
- 결과: 수천 개의 뉴스 기사를 46개의 카테고리로 정확하게 분류할 수 있습니다.
🎯 어텐션(Attention): 중요한 것에 집중하기¶
RNN이나 LSTM도 문장이 아주 길어지면 정보 손실이 발생합니다. 어텐션은 이를 해결하기 위해 "입력 데이터의 모든 부분 중, 지금 출력할 단어와 가장 관련 있는 부분에 더 집중하자"는 아이디어를 제안합니다.
어텐션의 동작 원리¶
- 스코어 계산: 현재 출력하려는 단어와 입력 문장의 각 단어 사이의 유사도를 계산합니다.
- 가중치 부여: 계산된 스코어를 확률값(Attention Weight)으로 변환합니다.
- 가중합 산출: 입력 단어들의 정보를 가중치에 따라 합쳐서 디코더에 전달합니다.
어떻게 학습되는가?¶
어텐션 가중치는 별도의 정답이 주어지지 않습니다. 대신, 전체 모델의 예측 오차(Loss)가 역전파(Backpropagation)되면서 "어느 단어에 집중했을 때 오차가 줄어드는지"를 스스로 학습합니다.
🛠 Self-Attention (GPT, BERT의 근간)¶
문장 쌍이 아닌 단일 문장 내에서 단어들 간의 관계를 파악하는 방식입니다. - 예: "The cat sat on the mat"에서 "sat"은 "cat"과 높은 연관성을 가짐을 스스로 학습하여 문장 구조를 파악합니다.
📐 아키텍처 비교¶
| 모델 | 특징 | 한계 |
|---|---|---|
| RNN | 순서대로 처리 | 장기 의존성 문제 (정보 유실) |
| LSTM | 기억과 망각 게이트 추가 | 여전히 매우 긴 문장에서는 성능 저하 |
| Attention | 입력의 모든 지점을 직접 참조 | 연산 복잡도 증가 (병렬화로 극복) |
📝 배운 점 및 결론¶
- 집중의 미학: 모든 정보를 동등하게 처리하지 않고, 맥락에 따라 중요도를 다르게 부여하는 것이 인간의 인지 과정과 매우 닮아 있다는 점이 인상적입니다.
- 트랜스포머의 시대: 이 어텐션 메커니즘을 극대화한 것이 바로 Transformer 구조이며, 이것이 현재의 ChatGPT와 같은 거대 언어 모델의 근간이 되었습니다.
작성자: kim-hyunjin 작성일: 2026-04-21