모두를 위한 딥러닝 2 :: RNN intro

Uomnf97·2021년 8월 23일
0

RNN

RNN의 도입 배경

  • Sequential Data를 처리하기 위해 도입됨. 기존에는 Position index를 이용해서 순서를 분류해서 NN을 만들어서 데이터를 학습했었음. 하지만 사람의 언어와 같이 모델을 파악하는데에는 쉽지 않은 모델이었음. 하지만 RNN은 사람의 언어, 자연어와 같은 복잡한 Sequential 데이터도 같이 처리할 수 있음.

Sequential Data란 ? 데이터의 값 뿐만아니라 순서도 중요하게 여기는 데이터를 말함.
Ex) Hello와 같이 단어라는 데이터를 이해하는데 순서가 중요한 역할을 하는 데이터를 말함
cf) 개, 고양이를 분류할때 순서를 바꿔서 학습할 수 있는 데이터는 Sequence data형태에 포함되지 않음. 데이터의 순서와 상관없이 학습할 수 있는 데이터

모델 형태


위의 있는 루프를 펼친 그림이 아래의 그림임. 현재 출력값을 출력하는 동시에 출력값의 일부를 다음셀에 전달하는 방식으로 뉴럴네트워크를 구성함. 이렇게 전달되는 보이지 않는 출력값을 hidden state라고 부르고 이 hidden state덕분에 RNN의 셀은 이전 state와 현재의 input값을 이용해서 출력할 수 있게됨

  • hidden state : 출력되지 않고 다음에 전달되는 셀을 말함

RNN 특징

  • 모든 Parameter을 공유함. 이를 통해 같은 문자가 오더라도 순서를 명확하게 기억해 다음연산을 진행할 수 있음
  • 구조가 복잡할 수록 Trainability는 감소함
    ->같은 수준의 셀에서는 높은 성능을 낼 수 있으나, 더 많은 양의 학습량이 필요

RNN

  • 예시: LSTM(Long short term Memory)[가장 높은 trainabiliy]
    GRU(Gate Recurrent Unit )[보통수준의 trainability]

RNN의 여러가지 형태

  • one to one: RNN(X), 일반적인 네트워크
  • one to many: image captioning
  • many to one : 감정에 대한 레이블, 감정 분석
  • many to many: 번역 task ( 출력값 일부 이용)
  • many to many: 비디오 분석 (모든 출력값 이용)
profile
사회적 가치를 실현하는 프로그래머

0개의 댓글