-
[모두를 위한 딥러닝 시즌2][Lab 12] RNN모두를 위한 딥러닝 시즌2 2021. 11. 17. 11:29
우리가 사용하는 데이터에는 Sequence data가 많다.
단어를 읽을 때 하나의 알파벳이 아닌 그 앞과 뒤의 알파벳들까지 이해해야 전체 한 단어를 이해할 수 있다.
입력이 있으면 연산을 통해 출력을 뽑는 간단한 NN이나 CNN으론 이것이 어렵다.
그래서 탄생한 것이
현재의 state가 그다음 state에 영향을 미치는 Recurrent Neural Network이다.
x라는 입력값과 이전의 RNN에서 나온 old state 값을 같이 사용해서 함수 f를 적용한 것이 출력 값 ht다.
Vanilla Recurrent Neural Network
최종 출력 y가 몇 개의 벡터로 나올 것인가는 W의 형태(벡터 사이즈)에 따라 정해진다.
Language model
현재 글자가 주어졌을 때 다음에 올 글자가 뭔지 예측하는 시스템을 RNN으로 만들어보자.
먼저 각각 입력을 One Hot encoding으로 벡터로 표현한다.
첫 번째 항은 이전 항이 없으므로 첫 번째 Network의 ht-1 값을 0으로 한다.
마지막으로 y 값이 나오면 거기에 softmax를 취해주어서 가장 큰 값을 고른다.
이 값이
Language Modeling 말고도 다양한 시스템에 RNN이 사용된다.
'모두를 위한 딥러닝 시즌2' 카테고리의 다른 글