1. RNN (1986)
RNN은 시퀀스 데이터를 학습시키기 위해 제안된 신경망 모델로 RNN 기법이 처음으로 제안된 논문은 아래와 같다. 이 논문을 기틀로 RNN 연산을 거치는 신경망모델에 대한 수많은 연구가 수행되었다.
2. LSTM (1997)
LSTM은 RNN의 은닉층에서 계산되는 연산을 변형시켜 장기적 기억을 더 잘하도록 고안된 신경망 모델이다. 처음으로 LSTM 매커니즘이 제안된 논문은 아래와 같다.
최종적으로 자리잡은 RNN과 LSTM에 대한 개념은 아래의 논문에서 확인할 수 있다.
- Fundamentals of Recurrent Neural Network (RNN) and Long Short-Term Memory (LSTM) Network
- 정리글 1) RNN(Recurrent Neural Network) 순환신경망 공부하기 2) LSTM(Long Short-Term Memory) 신경망 모델 공부하기
3. Seq2Seq (2014)
시퀀스 데이터에 대한 입출력을 처리할 수 없는 DNN의 한계를 보완하기 위해 고안된 모델로 LSTM 연산을 여러 layer로 쌓은 Encoder-Decoder 구조이다. 이는 기계 번역에서 성능 향상의 효과로 인기를 얻게되었다.
하지만 Seq2Seq 모델까지는 데이터마다 다른 길이의 입력값에 대해 고정된 길이의 문맥벡터를 출력하는 한계점이 있었다. 이러한 이유로 정보 손실과 비효율적인 연산이 이루어지는 Bottleneck문제가 발생했다.
4. Attention (2015)
Attention은 기존의 고정길이 문맥벡터를 사용하던 것으로 인한 Bottleneck문제를 해결하기 위해 고안되었다.
위의 논문에서는 Encoder로 bidirectional RNN을 사용하여 순서와 문맥정보를 담고있는 문맥벡터(context vector)를 출력하고, Decoder에서만 Attention 기법을 제안하고, 적용하였다.
Attention 기법을 간단하게 설명하면, 전체 입력 시퀀스에 대해 어떤 정보에 가장 주의를 기울일 것인지 판단하여, 다음 시퀀스를 예측하는데 활용하는 방식이다. 따라서, Attention기법을 사용한 Decoder 구조에서는 아래의 세가지를 활용하여 다음 시퀀스를 예측한다.
- 전체 입력 시퀀스에 대한 hidden states(은닉값)에 가중치를 적용한 문맥벡터 ($ c_{i} $)
- 이전 step때 decoder에서 출력한 문맥벡터 ($ s_{i-1} $)
- 이전 step때 decoder에서 출력한 단어벡터 ($ y_{i-1} $)
5. Transformer (2017)
Transformer는 기존의 RNN,CNN과 같은 core machanism을 쓰지않고, 오직 Attention 방식만을 활용한 Encoder-Decoder 구조의 신경망 모델이다.
Attention 매커니즘에서는 전통적으로 수행하던, 시퀀스를 순차적으로 입력하는 방식을 사용하지 않기 때문에 데이터의 순서정보를 입력해주기 위해서 Positional Encoding이라는 기법을 추가적으로 수행해줘야 한다. 이 방식을 통해 인코더에 전체 시퀀스를 하나의 임베딩 행렬로 입력하는 방식으로 병렬적인 계산이 가능하게하여 연산 효율성을 높혔다. 결과적으로 기존의 RNN, CNN기반의 모델보다 Attention만 사용하여 학습했을 때의 성능이 훨씬 높아 지금까지 큰 인기를 얻고 있다. 이후에 나온 유명한 BERT와 최근까지도 계속 발전되고 있는 GPT, LLM 모델도 모두 Transformer를 활용한 모델이다.
'AI > Fundamental' 카테고리의 다른 글
[멀티모달] OpenAI의 GPT-4o (omni)는 GPT-4에서 얼마나 향상되었는가? (0) | 2024.05.14 |
---|---|
프롬프트 엔지니어링이란? Prompt Engineering, in-context learning (Zero, One, Few-shot) (0) | 2024.05.07 |
Tensorflow 기초 : 모듈, 레이어, 모델 클래스 구조 알아보기 (1) | 2024.03.27 |
Transformer 모델 - Positional Encoding 포지셔널 인코딩에 대해서 알아보자. (1) | 2023.12.28 |
딥러닝에서 Multi Granularity Feature (다중 세분화 기능) 이란? (0) | 2023.12.15 |