Dev/언어지능 딥러닝

[언어지능 딥러닝] [PyTorch] Recurrent Neural Networks (RNN)

#코딩 공부 2024. 11. 7. 16:13

Recurrent Neural Networks (RNN)

자연어 처리를 할 때, 시퀀스 데이터를 처리하기 위해 설계된 초기의 신경망 -> 현재는 많이 쓰이지는 않음

시계열 데이터, 텍스트, 오디오와 같은 연속된 데이터를 다루는 데 적합함.

일반적인 신경망과 달리 RNN은 내부에 순환 구조가 있어서 이전 입력에 대한 정보를 네트워크 내에서 기억하고 유지할 수 있다.

 

RNN의 구조

 

1) 두개의 input

  • x_t (현재 시점의 데이터) : 현재 시점에 해당하는 실제 입력 데이터, 이 상태가 각 시점마다 다음 계산에 전달되어 연속적인 입력 간의 종속성을 학습
  • h_ (이전 시점의 숨겨진 상태) : 이전 시점까지의 정보가 포함된 벡터
    ex) 텍스트 처리 - 현재 단어, 시계열 데이터에서->특정 시점의 데이터 값

2) 두개의 가중치

 

  • : 입력과 숨겨진 상태를 연결하는 가중치 행렬.
  • W_: 이전 숨겨진 상태와 현재 숨겨진 상태 간의 가중치 행렬.

 

3) RNN의 실제 출력

  • 값 y_t는 숨겨진 상태값 h_t에 가중치 W_hy를 곱하여 얻어진다. 
  • : 숨겨진 상태에서 출력값으로 연결되는 가중치 행렬

 

RNN의 주요 응용 분야