BERT
·
딥러닝/NLP
BERT(Bidirectional Encoder Represenation from Transformer) 이해하기 BERT는 다양한 자연어 처리 태스크 분야에서 높은 성능을 보이며, 자연어 처리가 전반적으로 발전하는데 영향을 끼쳤다. BERT는 구글에서 발표한 임베딩 모델이다. BERT는 문맥이 없는 WORD2VEC와 같은 다른 임베딩 모델과 달리 문맥을 고려한 임베딩이다. 문맥을 고려하는게 왜 중요하냐면, 동음이의어나 여러가지 의미를 가진 단어에 유연하게 대응할 수 있기 때문이다. bert는 transformer에서 파생된 구조이기 때문에 transformer내용을 먼저 살펴보고 오자 -> 링크 BERT의 동작 방식 bert는 이름에서 알 수 있듯이 트랜스포머 모델을 기반으로 하며, 인코더-디코더가 있..
GPT-1
·
딥러닝/NLP
GPT-1 GPT 1은 Transformer 구조에서 디코더 부분을 활용한 모델 구조 입니다. 원본 논문 해당 논문에서는 라벨링 되지 않은 텍스트 데이터를 이용하여 모델을 pre-training 시킨 후 특정 task에 맞춤 fine-tunning 하는 방식을 제안합니다. 또한 GPT는 두가지 학습단계 1) Unsupervised pre-training, 2)supervised fine-tunning을 활용하여 모델구조를 최소한으로 변화시키고, fine-tuning 단게에서 과제에 맞는 Input representations을 사용 하였습니다. 여러 실험을 통해 해당 모델은 당시 12개의 task 중 9개에서 SOTA 수준의 성능을 발휘 하였습니다. GPT-1에서는 , , 등 다양한 special tok..
Transformer
·
딥러닝/NLP
Transformer는 자연어 처리에서 주로 사용하는 딥러닝 아키텍처 중 하나다. 기존 RNN 기반 모델들은 long-term dependency가 있기 때문에, 입력 문장이 길어지면 앞의 과거 정보가 마지막 시점까지 전달되지 못하는 현상이 발생한다. Transformer는 self-attention이라는 특수한 형태의 attention을 사용해 효과적으로 RNN의 한계점을 극복하였다. Transforemr의 구조 트랜스포머의 전체 구조는 위와 같다. 차근차근 알아 보도록 하자. 우선 트랜스포머는 인코더-디코더로 구성된 모델이다. 그림에서 input이 들어가는 박스가 인코더이고 인코더 오른쪽에 있는 박스가 디코더 이다. 인코더와 디코더가 어떻게 작동하는지 이해해보자 ! 트랜스포머의 인코더 이해하기 트랜스..
BLEU
·
딥러닝/NLP
Beam Search Exhaustive search 지금까지 배운 모델의 형태는 output을 greedy 하게 내놓기 때문에, output을 하나만 잘 못 출력해도 그 뒤의 output까지 모두 꼬여 버리게 된다. 하지만 뭔가 잘못되었다는 것을 중간에 깨달아도 다시 되돌아갈수는 없다. y가 출력, x가 입력일 때 우리가 본래 원하는 값은 아래 값을 최대화 하는 것이다. $P(y|x)=P(y_1|x)P(y_2|y_1,x)P(y_3|y_2,y_1,x)$ ... $P(y_{T}|y_1,...,y_{T-1},x)=\prod_1^TP(y_t|y_1,..y_{t-1},x)$ 다만 이렇게 하려면 모든 경우의 수를 따져야 하는데 시간 복잡도는 $O(V^t)$의 연산이 필요하다. 따라서 이전의 greedy한 방법과 ..
Seq2Seq
·
딥러닝/NLP
Seq2Seq Model Seq2Seq 모델은 어제 보았던 RNN의 종류 중 many-to-many, 그 중에서도 첫번째 유형에 해당하는 모델이다. 먼저 input을 모두 받아온 후 이를 기반으로 output을 내보내는 형태이다. 위 구조에서 입력 문장을 읽어내는 RNN 모델을 Encoder 라고 부르고,문장을 한 단어씩 출력하는 RNN 모델을 Decoder라고 한다. 그리고 RNN 모델로는 LSTM을 사용했다. RNN기반의 모델 구조 이기 때문에 hidden state의 dim이 고정된 상태로 계속해서 정보를 누적한다. 길이가 짧을 때는 괜찮지만 길어지게 되면 앞부분의 정보를 잃을 수 있다. 이러한 문제를 해결하기위해 Attention 모듈을 사용한다. Attention 모듈은 decoder의 hidd..
LSTM/GRU
·
딥러닝/NLP
LSTM LSTM은 RNN의 hidden state에 cell-state를 추가한 구조입니다. LSTM은 Long Short-Term Memory의 약자로, 단기 기억을 길게 가져간다는 의미이다. LSTM 모델의 궁극적 아이디어는 cell state 정보를 어떠한 변환없이 그대로 계속 가져가는데에 있다. 이 모델에서 핵심적으로 사용되는 cell state는 과거의 기억들을 최대한 보존하면서 가져갈 수 있으며 이를 통해 Long Short-Term Memory라는 이름에 걸맞는 역할을 하게 된다. 그래서 사실 cell state는 과거 대부분의 정보를 기억하고 있는 벡터, hidden state는 현재 시점에서 필요한 정보만을 cell state에서 필터링한 벡터라고 보면 된다. i,f,o,g는 각각 In..
ariz1623
코딩의 숲