[NLP 11] RNN(Recurrent Neural Network) 1 : 기본 원리

방선생·2025년 1월 19일

Natural Language Processing

목록 보기
11/22

순환 신경망 - RNN (Recurrent Neural Network)

  • 신경망 : 입력층 > 은닉층 > 출력층을 지나면서 가중치를 계산해 나가는 구조

  • RNN은 순차적인 데이터(예: 텍스트, 음성, 시계열 데이터)를 처리하는데 특화됨
  • 대상이 되는 데이터 : 순차 데이터(Sequential Data)
    • 시간적, 순차적(순서) 특성을 가진 데이터
    • 순서가 변경될 경우 고유의 특성을 잃어버리는 특징이 있음.
      한가지 예로, ‘도’와 ‘시’라는 글자로 ‘도시’와 ‘시도’라는 단어들의 조합이 가능하지만 이들은 서로 다른 의미를갖는 것과 같음
    • 종류 : 텍스트 데이터, 시계열 데이터(주가, 환율 등)

RNN의 기본 원리

  • 과거의 기억을 저장 : 여러 개의 데이터가 순서대로 입력되었을 때 앞서 입력 받은
    데이터의 연산 결과를 기억(저장)한다
  • 과거의 기억을 현재 학습에 반영 : 기억된 데이터(과거)를 가지고 현재 입력과 함께
    연산한다

다른 신경망과의 차이

  • 과거의 결과가 현재 입력 값에 영향을 준다
  • 비슷한 두 문장이 입력되어도 과거의 차이로 인해서 두 문장의 차이를 반영할 수 있다

RNN의 기본 개념

  • 순환(recurrent) 구조로써 과거의 정보를 기억하고, 현재 학습에 반영됨(현재 시점의 입력과 결합하여 출력에 반영)
  • 각 단어를 시간의 흐름에 따라 차례로 입력되며, 앞서 본 단어들을 바탕으로 다음 단어를 처리함

  • RNN의 입력층 (Embedding layer)
    • 시점 tt에서의 입력 xtx_t를 받음 (텍스트의 경우 단어 벡터)

  • RNN의 은닉층 (RNN layer)
    • 은닉상태(hidden state) hth_t는 시점 tt에서의 입력 xtx_t와 이전 시점 t1t-1의 은닉 상태 ht1h_{t-1}를 결합 하여 계산됨
    • hth_tht1h_{t-1}와 현재 입력xtx_t를 결합하여 다음 시점에 전달되며, 이전 모든 시점에서 축적된 정보를 포함하여 은닉 상태를 유지함

  • RNN의 출력층 (Dense layer)
    • RNN의 출력은 주어진 문제에 따라 달라짐
    • 마지막 은닉 상태 hTh_T를 기반으로 결과를 생성함

  • 데이터 전처리(토큰화 등)을 할때 데이터 벡터사이즈를 동일하게 맞춰주는것이 중요함

  • RNN의 한계
    • RNN은 시간 순서대로 데이터를 처리하기 때문에 시퀀스가 길어질수록 과거의 정보가 점차 희석되거나 잊혀지는 문제가 발생함
    • RNN의 역전파 과정에서 시간축을 따라 기울기를 전파할때 시퀀스가 길어지면서, 기울기가 소실되거나, 지나치게 커져 가중치의 업데이터가 제대로 이루어 지지 않게 될 수 있음

  • 정리
    • 반복적이고 순차적인 데이터(Sequential) 학습에 적합한 인공신경망
    • 결과물 : text data → 문장(문단) 임베딩 벡터 → 전체 text data에 대한 임베딩 행렬

(자세한 내용은 [NLP13]을 참고해 주세요)








참고자료

[NLP13] - RNN 이론

profile
AI & Robotics

0개의 댓글