곰퓨타의 SW 이야기

Lab 11-0 RNN intro 본문

인공지능/부스트코스_파이토치로 시작하는 딥러닝 기초

Lab 11-0 RNN intro

곰퓨타 2021. 3. 23. 16:48

부스트 코스 강의를 들으며 정리하였다!!

www.boostcourse.org/ai214/lecture/43773/?isDesc=false

 

파이토치로 시작하는 딥러닝 기초

부스트코스 무료 강의

www.boostcourse.org

 

 

RNN ?

RNN은 sequential data를 다룬다.

Sequential data는 값 뿐만 아니라 data 순서도 중요한 의미를 가진다.

ex) 단어 (hello : h->e->l->l->o)

 

neural network도 position index라는 dimension을 추가하여 sequential data를 다룰 수 있다. 

 

앞에서 전달된 값은 hidden state라고 한다. h1, h2,,, ht는 이전의 결과값도 담고 있기 때문에 순서 정보를 가지고 있다.

'hello'의 경우 어떨 때는 l뒤가 l이고 어떨 때에는 l뒤에 o이다. 이는 rnn에서 모든 cell이 파라미터를 공유하기 때문에 (A 한개) cell A에 들어가는 파라미터만 안다면 다음 단어를 예측할 수 있다.

 

 

 

 

Cell A에서 일어나는 일은 다음과 같다.

 

전 단계에서의 hidden state와 현재 값을 통해 ht를 도출해낸다.

 

 

LSTM, GRU와 같은 것들이 유명한 설계방법 중 하나이다.

복잡한 cell일수록 학습까지의 더 많은 자원이 필요로 하다. 

 

 

 

 

 

Usages of RNN

one-to-many : ex. 1개의 이미지가 들어가고 출력값으로 문장이 나오는 경우, 이미지에 대해 자막이 달리는 경우

many-to-one : 여러개의 입력값을 받고 출력값은 하나인 경우

     ex. 문장이 들어갔을 때 감정에 대한 label을 추출하는 경우

many-to-many : ex . 문장이 들어오고 문장이 출력되는 경우

첫번째로 제시된 many-to-many : 한 문장이 다 들어오고 -> 새롭게 문장을 쓰는 경우 ex . 번역기

두번째로 제시된 many-to-many : video에서 image가 들어갈 때마다 출력값을 내보내는 경우 

 

 

 

 

Comments