Intro
순환 신경망(RNN, Recurrent Neural Network)
- X(혹은 y)가 단일의 독립 데이터 포인트뿐 아니라 데이터 포인트의 시간 순서 [X1, X2, .. Xt]
(또는 [y1, y2, …, yt])를 모델링 할 수 있는 종류의 신경망
- X2는 X1에 종속되고 X3은 X2와 X1에 종속되는 식
- 네트워크에서 주기를 생성하는 모델에 추가적인 가중치를 포함해 데이터의 시간적 측면을 모델링할 수 있음
- RNN 네트워크에서 은닉 계층을 시간 차원을 따라 펼치면 해당 네트워크에는 실제로 T개의 은닉 계층이 있다는 것을 확인할 수 있음
- $T$: 순차 데이터에서 전체 시간 단계의 수
- RNN은 다양한 길이($T$)의 순차 데이터를 다룰 수 있음
- 길이가 짧은 데이터에 패딩을 추가하고 길이가 긴 데이터는 잘라내는 방법을 통해 길이가 서로 달라도 처리 가능
✔ 주기(cycle)
- RNN에서는 숨겨진 내부 상태를 유지하면서 시간 단계 t에서 중간 출력을 시간 단계 (t+1)의 입력으로 쉽게 사용할 수 있음
- 시간 단계에 걸친 연결을 순환 연결(recurrent connection)이라고 함
순환 신경망의 발전

순환 신경망 유형
- RNN은 다음 유형의 입출력 관계를 모델링할 수 있음
- 다대다(동시적)
ex) 명명된 개체 인식
→ 문장/텍스트가 주어지면 이름, 조직, 위치 등과 같이 명명된 개체 범주로 단어를 태깅
- 다대다(encoder-decoder)
ex) 기계 번역
→ 자연어로 된 문장/텍스트를 가져와 통합된 고정 크기의 표현으로 인코딩하고 해당 표현을 디코딩해 다른 언어로 된 같은 뜻의 문장/텍스트 생성
- 다대일
ex) 감성 분석
→ 문장/텍스트 일부가 주어졌을 때 긍정적인 표현인지, 부정적인 표현인지, 중립적인 표현인지 등을 분류
- 일대다