Super Kawaii Cute Cat Kaoani

NLP/etc.

[concept] 초기 NN부터 순서대로 개념 막 내뱉기

zozni 2021. 12. 23. 16:13
728x90
반응형
SMALL

FFNN

초기 FFNN 은 입력이 늘 하나의 고정된 벡터였음.

 

RNN

RNN은 벡터의 열을 입력으로 받음. 이전타임의 hidden state 값을 이용해서 현재 hidden state를 변화시킬 수 있기 때문에 연속된 입력에 따라 변화를 모델링.

 

Bidirectional RNN

양방향 RNN. 기존 RNN에서 반대방향으로도 가능하도록 함.

 

LSTM RNN

기존 RNN이 Vanishing Gradient Problem이 있기 때문에 이를 해결하기위해 input/ouput/forget gate를 추가함.

 

Gated Recurrent Unit (GRU)

 LSTM RNN이 많은 게이트를 사용하는 반면 GRU는 게이트 수를 많이 줄였다.

 

Encoder-Decoder Model

encoder RNN과 decoder RNN. 두 개의 RNN으로 구성되어 있음.  단어의 열. 즉 문장을 입력으로 받고 하나의 실수의 벡터인 Encoder state로 바꾼다. 그 하나의 실수의 벡터로부터 decoder에서 한 단어씩 생성한다.  긴 문장이 입력으로 들어오면 성능이 떨어지는 문제가 있음.

 

Attention Mechanism

encoder decoder model의 한계점을 해결하기 위해 나온 모델. 인코더에 있는 hidden state값을 바로 보고 가져오기 때문에 성능이 좋다. 

 

Self Attention

자기 자신과의 유사도까지 구해서 hidden state벡터를 가져오겠다. 기존 인코더 RNN의 역할을 self attention으로 수행하겠다. 최근 연구에서는 RNN을 쓰는 것보다 self attention을 써주는게 성능이 더 좋기 때문에 많이 사용함.

 

Multi Head Self Attention

셀프어텐션을 여러개 사용한 것. 셀프어텐션을 잘게 자른 어텐션에다가 따로 적용한 다음, 마지막에 잘게 잘라진 벡터들을 다시 합친다. 

Transformer Model 

할말하않. 디코더에 있는 RNN, 인코더에 있는 RNN을 셀프어텐션으로 교체. RNN을 완전히 없앴음. RNN을 완전히 대체시키기 위해 셀프어텐션과 포지셔널 인코딩 정보를 함께 더해주어 사용한다. (입력임베딩에 포지셔널 인코딩 값을 더해줌) 기계번역 모델 중 가장 좋은 성능을 보이고 있는 모델이다.

 

BERT(Bidirectional Encoder Representation from Transformers)

트랜스포머의 인코더부분을 사용해서 hidden state를 얻는 것. 

트랜스포머 인코딩에서는 포지셔널인코딩이 고정된 값이었음. BERT에서는 워드임베딩에다가 포지션임베딩값을 더해주고 이 포지션 임베딩을 학습할 수 있게끔했다. 값이 바뀔 수 있도록 수정한 것. 또한 세그먼트임베딩이 추가되어 한문장 뿐만아니라 두문장도 같이 입력받을 수 있게끔 확장이 되었다.

BERT에서 중요한 것은 pre-training 단계를 거친다. (Masked Language Model, Next Sentence Prediction) 

그리고 Fine-Tuning해서 사용한다.

 

OpenAI GPT

GPT는 트랜스포머의 디코더를 가져온 것이다. GPT도 BERT처럼 미리 사전학습을 한다. (GPT는 Generative Pre-Training)

 

+ RoBERTa, KoBERT

 

728x90
반응형
LIST

'NLP > etc.' 카테고리의 다른 글

[concept] RNN : Recurrent Neural Network, 순환신경망  (0) 2021.11.16