들어가기 전에
이전 강의에서 자연어 처리 필수 개념인 '워드 임베딩(Word Embedding)'를 학습했습니다. 이번 시간에는 본격적으로 자연어 처리를 위한 '딥러닝 모델'을 알아봅니다. 가장 대표적인 딥러닝 모델인 RNN은 언어의 Seqeuntial한 특징을 잘 학습하기 위해 등장했습니다. RNN은 어떠한 특징과 종류를 가지고 있는지 강의를 통해 확인해봅시다.
학습 목표
RNN 모델의 동작원리에 대해서 학습하며, RNN 모델의 여러가지 예시를 살펴봅니다.
핵심 단어
- RNN(Recurrent Neural Network)
- input vector x
- hidden state h
- output vector y
- time step t
강의 듣기
RNN(Recurrent Neural Network)

- RNN은 현재 타임스텝에 대해 이전 스텝까지의 정보를 기반으로 예측값을 산출하는 구조의 딥러닝 모델입니다.
- 매 타임스텝마다 동일한 파라미터를 가진 모듈을 사용하므로, '재귀적인 호출'의 특성을 보여주어 'Recurrent Neural Network'라는 이름을 가지게 되었습니다.
RNN 계산 방법

- t : 현재 타임스텝(time step) , w : 웨이트(weight)
- h_t-1 ht−1 : old hidden-state vector
- x_t xt : input vector at some time step
- h_t ht : new hidden-state vector
- f_w fw : RNN function with parameters W
- y_t yt : output vector at time step t
- 위의 변수들에 대하여, h_t = f_w(h_t-1,x_t) ht=fw(ht−1,xt) 의 함수를 통해 매 타임스텝마다 hidden state를 다시 구해준다.
- 이 때, W와 입력값( x_t, h_t-1 xt,ht−1 )으로 tan_h tanh 를 곱해서 h_t ht 를 구해준다.
- 구해진 h_t, x_t ht,xt 를 입력으로 y_t yt 값을 산출하게 된다.
다양한 타입의 RNN 모델
실제 활용 예시를 통해 다양한 타입의 RNN 모델을 구분해봅시다.

1 | one to one | [키, 몸무게, 나이]와 같은 정보를 입력값으로 할 때, 이를 통해 저혈압/고혈압인지 분류하는 형태의 태스크
|
2 | one to many | '이미지 캡셔닝'과 같이 하나의 이미지를 입력값으로 주면 설명글을 생성하는 태스크 |
3 | many to one | 감성 분석과 같이 문장을 넣으면 긍/부정 중 하나의 레이블로 분류하는 태스크
|
4 | many to many | 기계 번역과 같이 입력값을 끝까지 다 읽은 후, 번역된 문장을 출력해주는 태스크
|
5 | many to many | 비디오 분류와 같이 영상의 프레임 레벨에서 예측하는 태스크 혹은 각 단어의 품사에 대해 태깅하는 POS와 같은 태스크 |
생각해보기
1) 딥러닝에서 tanh와 같은 비선형함수를 곱해주는 이유는 무엇일까요?
2) RNN에는 어떤 타입들이 있으며, 타입별로 예시는 무엇이 있는지 정리해봅시다.
참고자료
comment
감사합니다