
BERT : Pre-training of Deep Bidirectional Trnasformers for Language Understanding BERT 모델은 Transformer의 Encoder 모델을 겹겹이 쌓아 만든 모델이다. BERT의 경우 Encoder가 매우 많기 때문에 복잡한 모델에 속한다. 때문에 일반적인 기업이나 개인이 학습하기 어렵다. 이런 이유들로 인해 BERT는 대형 기업들이 학습을 해놓은 모델을 가져다가 fine-tuning 방법으로 사용하는 것이 맞다. 위와 같이 기존에 pre-trained 된 BERT 모델을 fine-tuning하여 다양한 task에 적용시키는 것을 추천한다고 논문에서는 언급하고 있다. BERT는 다른 자연어처리 모델들이 적용하는 word embedding..

Seq2Seq (시퀀스 투 시퀀스) seq2seq 기법은 transformer가 2017년에 제안되기 전까지 딥러닝 기계번역에서 state-of-the-art였던 기법이다. 이전까지의 기계번역 기법들보다 훨씬 큰 성능을 나타냈으며 Context Vector라는 새로운 개념의 도입으로 이 후 제안된 유명 기법 논문들에도 영향을 많이 끼치게 된다. seq2seq는 RNN 또는 LSTM을 사용하여 구현할 수 있다. 여기서는 LSTM 기반의 seq2seq라고 가정하자. seq2seq의 구조는 위 그림과 같다. 인코더에서 LSTM 한 개, 디코더에서 LSTM 한 개를 사용해 기계번역과 같은 task를 처리한다. 이 때 인코더에서는 순차적으로 sequence를 받아 내부적으로 hidden state를 누적하여 최종..

RNN RNN은 Recurrent Neural Network의 약자로 순환 신경망이라고 부르는 sequence model이다. sequence형태의 input을 받아 sequence 형태의 output을 내뱉는다. 위의 그림은 RNN의 구조이다. 왼쪽 그림은 RNN의 진짜 구조이고 오른쪽은 시간에 따라 unfold한 모습이다. RNN은 위 그림과 같이 task에 따라 one-to-many, many-to-one, many-to-many 방식으로 결과값을 조절할 수 있다. RNN의 작동방식 RNN은 입력으로 들어오는 x와 직전 시점(t-1)의 h(hidden state)의 가중치 합에 의해서 현재 시점의 hidden state를 도출하고 이를 다시 선형, 비선형 계산을 통해 결과값을 도출해낼 수 있다. t..

CNN 기반 텍스트 분류 이전에는 이미지의 처리에서 사용되었던 CNN(Convolutional Neural Network)를 자연어처리 과업에도 가져와 사용해본다. 자연어처리 문제에서도 CNN이 사용가능한 이유는 공간의 정보를 보존하는 CNN의 장점때문인데, 자연어의 문장에서도 지역적인 정보가 텍스트안에 내재되어 있으므로 좋은 성능을 보인다. 하지만 이미지를 처리하는 과정과는 조금 다르다. 이미지에 대해서 convolutional 계산을 적용할 때는 가중치를 가진 sliding window가 왼쪽 위부터 오른쪽 아래까지 모두 훑으면서 연산을 진행한다. 하지만 텍스트가 input일 때는 임베딩 벡터 크기는 유지를 해주면서 convolutional 연산이 진행된다. 또한 N-gram처럼 문장에서 몇개의 인접..