Skip to content

Latest commit

 

History

History
143 lines (95 loc) · 3.71 KB

11-0. RNN intro.md

File metadata and controls

143 lines (95 loc) · 3.71 KB

1. RNN 이란?

  • RNN은 sequential data를 다루기 위해 도입 되었다.
  • sequential data : 데이터의 값 뿐만 아니라 데이터의 '순서'도 중요한 의미를 갖는 데이터
  • 단어(h->e->l->l->o), 문장, 시계열 등



2. RNN의 구조 1

(1) Input

  • input 값으로 x0가 들어온다.

(2-1) Output

  • x0가 셀 A를 거쳐 output h0이 된다.

(2-2) Hidden state

  • x0가 셀 A를 거쳐 다음 셀 A로 전달 된다.



3. RNN의 구조 2

(1) RNN 구조의 장점

  • 앞에서 살펴본 RNN의 구조 덕분에, output h1, h2 등은 그 전 셀들의 값을 반영하게 된다.
  • 모델이 데이터의 '순서'를 이해하게 된다.
  • RNN의 셀은 하나이다. 따라서 모든 셀이 파라미터를 공유한다.

(2) RNN 구조 예제

  • 'h->e'가 입력 되었을 때 'h->e->l->l->o'를 예측하게 하기
1) Input
  • Input 값으로 'h'가 들어온다.
2-1) Output
  • 'h'가 셀 A를 거쳐 output 'e'가 된다.
2-2) Hidden state
  • 'h'가 셀 A를 거쳐 다음 셀로 전달 된다.
3) Input
  • Input 값으로 'e'가 들어온다.
4-1) Output
  • 'e'가 셀 A를 거쳐 output 'l'이 된다.
4-2) Hidden state
  • 'l'이 셀 A를 거쳐 다음 셀로 전달 된다.
위 과정 반복!



4. 셀의 구조

(1) 셀 이해하기

  • 셀을 어떻게 설계하느냐에 따라 복잡도가 달라진다.
  • 셀은 기본적으로 함수 연산이다.

(2) 셀 기본 함수

  • ht = f(h(t-1), xt)
  • '현재의 Hidden state'는 '이전 단계의 Hidden state'와 '지금 단계의 입력 값'의 함수 연산을 통해 output인 ht를 출력한다.

(3) 셀 함수 설계 예시 1

  • ht = tanh(W(h)h(t-1) + W(x)x(t))
  • '현재의 Hidden state'는 '이전 단계의 Hidden state'와 매트릭스 W(h)를 곱해주고, '지금 단계의 입력 값'과 매트릭스 W(x)를 곱해준 후 둘을 더한 다음, 활성화 함수 tanh를 통해 output인 ht를 출력한다.

(4) 셀 함수 설계 예시 2

  • LSTM
  • GRU



5. 셀의 복잡도

(1) 셀의 복잡도가 높다면?

  • 셀의 복잡도가 높아지면 좋은 성능을 낼 수 있지만, 거기에 도달하기 까지 많은 학습 자원이 필요하다.
  • 즉, 셀의 복잡도가 높아질수록 학습율은 감소한다.

(2) 모델별 셀의 복잡도

  • RNN < GRU < LSTM



6. RNN의 입력과 출력

  • RNN에 데이터를 어떤 형식으로 입력하고, 어떤 출력값들을 취하느냐에 따라 굉장히 다양한 작업을 할 수 있다!

(1) One to one

  • 입력 1 - 셀 1 - 출력 1
  • RNN이라고 볼 수 없다. 일반적인 NN이다.

(2) One to many

  • 입력 1 - 셀 3 - 출력 3
  • ex) Input으로 이미지가 들어가서, Output으로 이미지를 설명하는 문장(여러 단어로 구성)이 나온다.

(3) Many to one

  • 입력 3 - 셀 3 - 출력 1
  • ex) Input으로 문장(여러 단어로 구성)이 들어가서, Output으로 감정(단어)가 나온다.

(4) Many to many 1

  • 입력 3 - 셀 5 - 출력 3
  • 셀 5개가 내놓는 5개의 출력 값 중 3개만 취하고, 2개는 무시한다.
  • ex) Input으로 문장(여러 단어로 구성)이 들어가서, 문장의 입력이 다 끝나면 Output으로 번역된 문장(여러 단어로 구성)이 나온다.

(5) Many to many 2

  • 입력 3 - 셀 3 - 출력 3
  • 셀 3개가 내놓는 3개의 출력 값 중 3개를 모두 취한다.
  • ex) Input으로 비디오(여러 이미지로 구성)가 들어가서, 각 Input으로 이미지가 들어갈 때 마다 각 이미지를 분석한 출력값이 나온다.