RNN intro [11-0]

Sung.K·2021년 8월 15일
0

모두를 위한 딥러닝2

목록 보기
19/25

RNN(Recurrent Neural Network/순환신경망)

RNN은 sequential data를 잘 다루기 위해 도입되었다.
sequential data는 data의 값 뿐만 아니라, data의 순서도 중요한 의미를 가지는 데이터를 말한다.

예를 들어,hello라는 단어는 h->e->l->l->o라는 순서가 단어의 의미를 형성하는데 중요한 역할을 한다. 이러한 경우를 sequential data라고 한다.

RNN입장에서 학습하는 layer가 position index차원으로 입력되는 순서 정보를 받아서 학습을 할 수 있게 된다.

RNN의 구조


하나의 Cell A를 살펴보면, 이 셀에 t번째 입력값이 들어가게되면 t번째 출력값이 나오게 되고, 동시에 다른 출력값이 하나 있어서 다음 셀A로 들어가는 구조이다.

여기서 출력되지 않고 다음 셀로 이동하는 것을 hidden state라고 한다.
RNN의 바깥에서 보게되면 hidden state로 유통되는 값들은 밖에서 보이지 않기 때문이다.

셀A의 복잡도는 LSTM > GRU >RNN 순이다.

RNN의 함수연산


셀A에서 함수 연산이 일어나는데, 이 함수는 기본적으로 hidden state 이전 단계의 hidden state와 지금 단계에서의 입력값을 가지고 함수 연산을 통해 어떤 출력값을 만드는게 본질이다.

RNN의 적용

  • one to one : RNN이 아니다. 일반적인 neural network이다.
  • one-to-many : 하나의 입력값을 받고 출력값이 여러개인 경우(1개의 이미지가 들어가고 출력값으로 문장이 나오는 경우, 이미지에 대해 자막이 달리는 경우)
  • many-to-one : 여러개의 입력값을 받고 출력값은 하나인 경우(문장이 들어갔을 때 감정에 대한 label을 추출하는 경우)
  • many-to-many : 입력값과 출력값이 모두 여러개인 경우(문장이 들어오고 문장이 출력되는 경우)
profile
Towards the goal 👀

0개의 댓글