순환 신경망 (Recurrent Neural Network)
RNN은 시간의 흐름에 따라 변하는 시계열 데이터나 텍스트와 같은 순차적인 정보(Sequential Data)를 처리하기 위해 설계된 인공신경망이다.
🏃♂️ 릴레이 바통 터치 (순환 구조)
데이터를 독립적으로 처리하는 일반 신경망과 달리, RNN은 이전 단어를 처리할 때 만들어진 은닉 상태(Hidden State, h)를 다음 단어 처리 장치로 릴레이 바통처럼 끊임없이 넘겨주며 기억을 전달한다.
⚠️ 장기 의존성 한계
문장이 너무 길어지면 앞단에서 전달해 온 기억(은닉 상태)이 여러 셀을 거치는 동안 점차 희석되거나 소실되는 장기 의존성 문제를 겪는 한계가 존재한다.
시퀀스-투-시퀀스 (Sequence-to-Sequence, Seq2Seq)
Seq2Seq은 하나의 시퀀스(입력 문장)를 다른 시퀀스(출력 문장)로 변환하는 모델 아키텍처이다. 입력 문장의 길이에 구애받지 않고 유연하게 대응할 수 있어 기계 번역, 요약, 챗봇 등 다양한 자연어 처리 분야의 근간이 된다.
📥 인코더 (Encoder) : 입력 압축
입력되는 단어 시퀀스를 순차적으로 처리하여 그 문맥 정보를 하나의 최종 은닉 상태 벡터(컨텍스트 벡터)에 집약하여 압축 보관한다.
📤 디코더 (Decoder) : 출력 생성
인코더가 넘겨준 컨텍스트 벡터를 최초 기억의 발판 삼아, 출력 문장의 단어들을 순서대로 예측하며 최종 번역 문장을 생성해 낸다.