RNNs 은 순환 신경망(Recurrent Nerual Network)이다.
RNN 은 시퀀스 데이터(Sequence data) 를 모델링하는 데 사용되는 인공 신경망의 한 종류이다.
시퀀스 데이터는 순서에 따라 나열된 데이터로 예를 들어 문장, 음성, 시계열 데이터 등이 있다.
RNN은 다른 유형의 신경망과 달리 이전 단계의 출력을 현재 단계의 입력으로 사용하여 내부 상태를 유지한다. 이는 RNN이 이전 단계에서의 정보를 현재 단계에서 활용할 수 있게 해주는 장점을 제공한다. 이를 통해 RNN은 시퀀스 데이터의 의미와 구조를 파악하고, 문맥을 이해하는데 도움이 된다.
RNN은 시간에 따라 연속적으로 펼쳐진 구조를 가지고 있다. 각 시간 단계(time step)마다 입력을 받고 출력을 생성한다. 이때 입력과 출력은 벡터 또는 행렬로 표현된다. 또한 RNN 은 가중치를 공유하여 시간 단계마다 동일한 모델 파라미터를 사용한다.
RNN은 다양한 응용 분야에서 사용된다. 주요 예시로는 기계 번역, 자연서 처리, 음성 인식, 시계열 예측 등. RNN 의 기본형태인 단순한 순환 신경망 외에도, LSTM(Long Shor-Term Memory) 과 GRU(Gated Recurrent Unit) 과 같은 변종이 개발되었다. 이러한 변종들은 RNN 이 가지고 있는 장기 의존성문제(Long-term dependency problem) 를 해결하기 위해 고안되었다.








따로 다루진 않지만 RNN의 역전파 과정은 굉장히 복잡하다

Sppeech recognition : 입력이 들어갔을 떄
Music generation :
Sentiment classification : 전체 글이 들어가서 거기에 대한 아웃풋이 하나가 나온다
따라서 똑같은 Task 가 아니다.

- 다음은 언어 모델




하지만, vanishing gradient 문제가 있음

이를 해결하기 위해 RNN 중 GRU
수식



<t> 를 결정할 때 내가 후보를 써서 업데이트를 할지 그전에서 올라온 셀을 쓰고 잊어버릴지를 결정


결론 : RNN 도 좋은 테크닉

