AI/DeepLearning
순환신경망(Recurrent Neural Network, RNN)
yunajoe
2022. 9. 11. 11:16
순환 신경망(Recurrent Neural Network, RNN)
입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델
번역기를 생각해보면 입력은 번역하고자 하는 단어의 시퀀스인 문장입니다. 출력에 해당되는 번역된 문장 또한 단어의 시퀀스입니다. 이와 같이 시퀀스들을 처리하기 위해 고안된 모델들을 시퀀스 모델
신경망들은 전부 은닉층에서 활성화 함수를 지난 값은 오직 출력층 방향으로 향함.이를 Feed Forward Neural Newtork라고 함
But, RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고 있다.
각각의 시점(time step)에서 바로 이전 시점에서의 은닉층의 메모리 셀에서 나온 값을 자신의 입력으로 사용하는 재귀적 활동
현재 시점을 t로 표현 출력층 방향 또는 다음 시점인 t+1의 자신에게 보내는 값을 은닉 상태(hidden state)
다시 말해, t 시점의 메모리 셀은 t-1 시점의 메모리 셀이 보낸 은닉 상태값을 t 시점의 은닉 상태 계산을 위한 입력값으로 사용
다양한 형태의 RNN( Various usage of RNN)
- RNN는 주로 sequential data로서 time series 또는 NLP에서 사용이 된다.
- A to B (ex, one to one, one to many, many to one..)에서 A는 input값 B는 output값을 의미한다.
# For Time Series
Forecasting - many-to-many or many-to-one
Classification - many-to-one
# For NLP
Text Classification: many-to-one
Text Generation: many-to-many
Machine Translation: many-to-many
Named Entity Recognition: many-to-many
Image Captioning: one-to-many