이번 포스팅에서는 RNN의 역사에 대해 살펴보겠습니다. RNN은 BERT, GPT(ChatGPT 모델)와 같은 언어모델의 근간이 되었습니다. 그런 의미에서 RNN을 이해하는 것은 중요하다고 할 수 있죠. 그럼 RNN이 어떻게 발전해 왔는지 알아보도록 하겠습니다.
RNN(Recurrent Neural Network) 이란
RNN을 해석해 보면 순환 신경망입니다. 그런데 왜 순환일까요? 이유는 순서의 의미가 있으며, 순서가 달라질 경우 의미가 손상되는 데이터에 적합한 방식이기 때문입니다. 예를 들어, 텍스트나 시계열 데이터의 경우에 해당됩니다. RNN의 개념은 1986년 최초 등장했습니다. 그리고 유명한 LSTM 아키텍처는 1997년에 나오게 됐습니다.
순환 신경망의 아이디어는 장기기억을 잊어버리지 않게하자는 것이었습니다. 최대한 많은 것을 장기 기억화하려고 했죠. 그래서 옆으로 네트워크를 형성하는 방식입니다. 앞에도 말했지만 자연어(Natural Language)나 음성신호, 주식과 같은 연속적인(sequential) 시계열(time series) 데이터에 적합한 모델로 활용되었습니다.
RNN의 모델은 단점, 즉 부족한 점을 개선하면서 발전해 왔습니다. 아래는 모델 별로 단점을 보완하면 발전하는 과정입니다.
RNN/LSTM
텍스트를 읽는 방법이 이전의 데이터의 정보를 반영하는 것에 착안하여 만들어진 뉴럴 네트워크 모델이었습니다.
단점 : 길이가 길면, 입력이 먼저 들어온 노드(node)일수록 학습에 반영이 되지 않음
Seq-to-Seq
Seq-to-Seq모델은 스퀀스투스퀀스, 줄여서 싯투싯이라고 부릅니다. RNN or LSTM을 두 개를 붙여서 하나를 encoder, 다른 하나를 decode로 사용하는 모델입니다. 이 방법을 통해 길이가 길더라도 장기 기억화 하는 점을 보완하죠. encoder, decoder 개념은 다음 포스트에 더 자세히 다루겠습니다.
단점 : 여전히 RNN/LSTM이 길어지면 문제가 생김
Transformer
트랜스포머(Transformer)는 획기적인 방법이었습니다. 지금 사용하는 대부분의 모델이 트랜스포머 기반이라고 한다면 얼마나 대단한지 알 수 있죠. 트랜스포머는 seq-to-seq의 문제였던 입력이 먼저 들어오는 노드가 정보를 주지 못했던 것을 어텐션 메커니즘(attention mechanism)으로 해결했습니다. seq-to-seq에 attention을 추가한 방법을 self-attention이라는 구조로 바꾸어 계산량을 급격하게 감소하는 장점도 생겼습니다. 또 문장 단위 embedding quality도 좋아졌습니다.
BERT
BERT는 트랜스포머는 기반으로 한 모델입니다. BERT는 엄청난 양의 파라미터와 학습량이 필요하지만, Large Model의 경우 성능이 뛰어났죠. 특정 task 뿐만 아니라, 언어에 대한 이해 자체가 목표인 대용량 모델의 등장으로 multi-lingual Language model이 많이 생겨났습니다.
GPT
GPT도 BERT와 같이 방대한 양의 데이터에서 복잡한 패턴과 표현을 학습할 수 있는 언어모델 입니다. GPT는 단방향으로 정보를 왼쪽에서 오른쪽으로 순차적으로 처리하는 반면, BERT는 양방향의 콘텍스트를 고려하여 양방향입니다. 양방향이라고 해서 BERT가 더 좋은 것은 아니고 서로 경쟁하는 모델이라고 생각하면 됩니다.
'딥러닝' 카테고리의 다른 글
신경망 구조 설계: 딥러닝 아키텍처, Layer(층) 수 (0) | 2024.01.10 |
---|---|
텐서(Tensor)의 개념: 텐서플로우 vs 파이토치 vs 케라스 (1) | 2024.01.09 |
CNN(합성곱 신경망)의 역사: 왜 CNN인가? (2) | 2024.01.04 |
딥러닝의 암흑기 원인: 기울기 소실(Vanishing Gradient) (2) | 2024.01.03 |
퍼셉트론과 역전파(Back propagation) (0) | 2024.01.02 |