본문으로 이동

순환 신경망

Conaonda Wiki
Admina7ec671ac513 (토론 | 기여)님의 2026년 8월 20일 (목) 13:19 판 (migrate: import legacy Wiki content to Vultr)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

순환 신경망(recurrent neural network, RNN)은 시계열, 문장 같은 순차 데이터를 처리하기 위한 인공신경망 구조이다. 은닉 상태(hidden state)를 유지하며 이전 시점의 정보를 다음 시점으로 전달한다.

개요

순차 데이터는 각 항목이 앞뒤 항목과 의미적으로 연결되어 있다. RNN은 시점(time step)마다 입력을 처리하면서 은닉 상태에 이전 정보를 축적하고, 이를 다음 시점의 계산에 사용한다. 모든 시점이 같은 가중치를 공유하므로 시퀀스 길이가 달라져도 파라미터 수는 변하지 않는다. 시퀀스 전체를 다루는 구조로는 인코더-디코더(시퀀스-시퀀스) 모델이 널리 사용되었다.

핵심 개념

은닉 상태와 순환 연결

은닉 상태는 현재 시점까지의 정보를 요약한 벡터이다. 각 시점에서 이전 은닉 상태와 현재 입력을 결합해 새 은닉 상태를 만들고, 필요하면 출력을 계산한다. 이 순환 연결이 RNN과 일반 신경망의 차이이다.

양방향 RNN

양방향 RNN은 순방향과 역방향으로 각각 처리한 은닉 상태를 결합하여, 각 위치가 이후의 정보도 참고할 수 있게 한다.

시간 역전파

RNN은 시간 방향으로 펼친 계산 그래프에 오차역전파를 적용한다(backpropagation through time, BPTT). 시퀀스가 길수록 기울기가 여러 단계를 거쳐 전파된다.

장기 의존성 문제

시퀀스가 길어지면 기울기가 점점 작아지거나(소실) 커지는(폭주) 현상이 발생해 먼 과거의 정보를 학습하기 어렵다. 이 문제를 완화하기 위해 게이트 구조를 가진 변형이 등장했다.

LSTM과 GRU

  • LSTM(long short-term memory): 입력, 망각, 출력 게이트를 사용해 정보를 선택적으로 저장·삭제한다. 1997년 Hochreiter와 Schmidhuber가 제안했다.
  • GRU(gated recurrent unit): 게이트 수를 줄인 간소화된 구조로, LSTM에 버금가는 성능을 보이며 계산량이 적다.

활용과 현재

RNN 계열은 언어 모델, 기계 번역, 음성 인식 등 순차 데이터 문제에 널리 사용되었다. 이후 트랜스포머가 등장하면서 대부분의 분야에서 어텐션 기반 구조로 대체되었다. 트랜스포머는 순차 처리가 아닌 병렬 처리가 가능하고 장거리 의존성을 더 잘 포착한다.

함께 보기

출처