모두를 위한 딥러닝 12 :: NN의 꽃 RNN 이야기

Uomnf97·2021년 8월 23일
0

Sequence Data

Sequence Data란? : 시리즈 데이터로 앞선 데이터가 뒤의 데이터의 영향을 미치는 데이터를 말한다. 예를 들어서 음성어와 자연어처럼 단어만 이해한다고 전체를 이해할 수 없고, 앞선 단어와 뒤의 흐름까지 명확하게 이해해야 전체를 이해할 수 있는 데이터들을 말한다.

RNN

RNN이란 : Sequence Data를 다룰수 있는 Neural Network 모델로 시리즈 데이터를 다루기 위해 고안된 네트워크를 말한다. 즉 어떤 데이터를 계산을해줄 때 그전 데이터 State가 영향을 미치는 데이터 모델을 말한다.


RNN 계산방법

이전의 State와 입력값을 function에 대입해서 출력값을 만들어내는 방식으로 네트워크 모델을 구성한다. 주로 하나의 모델로 적어놓는데, 그 이유는 같은 function을 RNN모델에 적용하기 때문이다.

대표적인 RNN :: Vanilla RNN

이전의 State에 가중치를 곱해주고, 입력값의 가중치를 곱한 값을 더하고 activation function인 tanh함수를 이용해서 계산해서 현재의 상태를 구하고, 가중치를 구해 최종 결과를 구한다. 최종 결과는 W(가중치의 형태)에 좌우된다.

계산예 (Hello)

다음 철자를 예측하는 모델로, hello의 문자 'h','e', 'l', 'o'를 구분할 수 있도록 데이터를 모델링해주고, 이후 앞서 말한 이전의 State에 가중치를 곱해주고, 입력값의 가중치를 곱한 값을 더하고 activation function인 tanh함수를 이용해서 계산해서 현재의 상태를 구하고, 가중치를 구해 다음 철자를 예측한다.

사용분야

  • Language Modeling : 언어 모델링
  • Speech Recognition : 스피치 인지 ( 음성인식 )
  • Machine Translation: 번역
  • Conversation Modeling/Question Answering : 챗봇
  • image / Video Captioning
  • image/Music/Dance Generation
profile
사회적 가치를 실현하는 프로그래머

0개의 댓글