우선 RNN의 입력과 출력에 따른 모델을 한번 살펴보자.
입력이 여러개이고 출력이 한개인 경우(Many to One), 텍스트 분류에 쓰인다고 한다. 즉, 이 텍스트가 뉴스 카테고리인지 연예 카테고리인지 자기계발인지 하는 텍스트가 속한 카테고리를 정해주는 것이라고 생각하시면 될 것 같다. 최종 출력만 필요하고 나머지 이전의 출력값은 다 버린다.
일대다(One to Many)의 모델의 경우에는 NLG와 Machine Translation이 있다. NLG는 Natural Language Generation 즉, 자연어 생성을 뜻한다. 예를 들어 '나는 멍멍이와 뛰고 싶다'라는 문장이 있을 때 '나는'이라는 단어를 입력하면 뒤에 '멍멍이와'라는 단어가 생성되고, 그 '멍멍이와'라는 출력이 다시 입력으로 들어가면 '뛰고'라는 단어가 생성되고. '뛰고'라는 단어가 또 입력으로 들어가면 '싶다'라는 단어가 생성되는 것을 말한다.
Machine Translation은 기계 번역이다. 기계 번역의 경우, 우리가 흔히 쓰는 구글 번역기. 네이버의 파파고 등을 떠올리면 쉽겠다. 내가 '나는 소년이다'라는 문장을 입력했을 경우, 영어로 번역을 원했을 때 출력이 'I am a boy'라는 결과로 나타나는 것을 Machine Translation의 한 예로 보면 되겠다.
다대다(Many to Many)의 경우 POS Tagging, MRC 등의 분야가 있다고 한다. POS Tagging의 경우에는 Part of Speech. 즉 한국어의 경우에는 형태소 단위로 분리하는 것이라고 보면 될 것 같다. 이 때도 문장이 들어가면 각각에 대한 출력이 나오게 된다. 자세한 건 POS Tagging을 검색해보시면 쉽게 이해하실 수 있을 것이다.
각각의 모델은 다음과 같다.
'프로그래밍 > 김기현의 딥러닝을 활용한 자연어처리 입문과정' 카테고리의 다른 글
RNN의 Gradient 문제 해결하기 위한 기법? LSTM(Long Short Term Memory)와 GRU(Gated Recurrent Unit)이란? (0) | 2020.07.04 |
---|---|
Vanilla RNN(Recurrent Neural Network)이란? (0) | 2020.07.02 |
Maximum Likelihood Estimation(MLE)과 Cross Entropy(CE)와의 관계. 결국 같은것이었다. (0) | 2020.07.01 |
Maximum Likelihood Estimation(MLE)를 프로그래밍에 적용하는 방법. Negative Log Likelihood(NLL) (0) | 2020.06.30 |
Maximum'Likelihood'Estimation 란? (0) | 2020.06.29 |
댓글