목록전체 글 (37)
버티의 블로그
이번에 배울 모델을 Transformer의 구조를 활용한 대표적인 사전훈련모델 2가지인 BERT와 GPT를 알아볼 것이다.BERTBERT는 Transformer의 encoder를 활용한 사전 훈련 언어 모델로, 다음과 같은 특징이 있다.양방향성(Bidirectional) Language Model이다.대용량 corpus data로 모델을 학습시킨 후, task에 맞게 전이학습(transfer learning)을 하는 모델이다.기존의 word embedding 방법인 Word2Vec, GloVe, FastText와 같은 방법들은 이후 task를 위해 LSTM이나 Seq2seq같은 복잡한 구조를 사용해야만 했지만, BERT를 사용하면 이러한 구조 없이 단순한 Nerual Network만 BERT에 얹어서 t..
Attention기존 seq2seq는 encoder에서 나오는 context vector에 모든 정보가 함축되어 있어 원래 단어에 대한 정보 손실이 발생할 수도 있고, 이 context vector을 단어 생성 시마다 모두 사용하므로 비효율적이다. 이를 개선하기 위해 탄생한 메커니즘이 Attention이다. Attention은 seq2seq와 동일한 구조를 기반으로 하는데, 차이점은 decoder에서 번역 단어를 예측할 때 decoder의 hidden state와 encoder의 hidden state를 내적해서 유사도를 파악한다. 이 값을 Attention Score라고 하고 이후 softmax를 붙여 정규화를 진행하면 이 값들을 확률적으로 접근할 수 있기 때문에 일종의 가중치로 사용할 수 있다. 그럼..
위와 같이 영어 문장을 프랑스어 문장으로 번역할 시, 내부 구조를 RNN을 사용해서 문장의 한 단어씩 input으로 넣어 사용할 수 있을 것이다. 그러나 번역을 할거면 전체 문장의 맥락을 파악하여 한번에 번역해야 하므로 이 방법은 문제가 있다. 따라서 문장 전체를 encoding하여 특징을 파악하고 번역된 문장을 생성해야 하고 이에 제시된 방법이 sequence to sequence, seq2seq이다. seq2seq은 Encoder RNN(LSTM) 구조와 Decoder RNN(LSTM) 구조 2가지를 병렬로 사용하는 방식이다. 각각의 원리를 살펴보면 다음과 같다. 1) Encoder입력 문장을 단어 단위로 잘라서 encoder의 input으로 넣는다.encoder의 output은 사용하지 않고, 마지..
RNNRecurrent Neural Network로, 시계열 데이터를 처리하기에 좋은 뉴럴 네트워크 구조이다. 시간 별로 같은 weight를 공유한다는 특징이 있어 과거와 현재는 같은 weight를 사용한다.First-Order System은 현재 시간의 상태가 이전 시간의 상태와 관련있다고 가정하는 것으로 첫번째 식이고 상태를 x_t라고 한다. 이 시스템은 외부 입력 없이 시간에 따라 혼자 작동하므로, autonomous system이라고도 한다. 이때 현재의 입력에도 관계가 있는 경우가 2번째 식이고 입력은 u_t이다.그러나 First-Order System에서 모든 시간 t에서 x_t가 관측 가능하진 않다. 보이지 않는 변수나 입력이 있을 수 있기 때문에 일부만 관측 가능하다. 이렇게 관측 가능한 ..
Word2Vec기존 정수 인코딩과 one-hot 인코딩의 단점들은 다음과 같았다.단어 사이 연관성 파악의 어려움과도한 메모리 사용 문제희소 표현 (Sparse Representation) : 1이 0에 비해 너무 적어 확률이 낮아질 수 있다.Word2vec은 이러한 단점들을 개선한 방법이다.단어 사이 유사도를 Neural Network를 사용하여 Dense Representation으로 표현벡터 차원을 원하는 대로 설정 가능데이터를 이용해서 표현을 학습함.CBOW와 Skip-Gram이 존재1) CBOW (Continuous Bag of Words) : 주변 단어를 활용해 중간 단어를 예측주변 단어를 one-hot 인코딩하여 Input Layer로 입력, 이 값들을 산술평균 후 weight matrix를 ..
화분에 예쁜 꽃이 피었다.이 문장을 토큰화하면 다음과 같이 해야한다. 아래 처럼 명사/조사 사이나 어간/어미 사이도 분리해야한다.화분(명사) + 에(조사) + 예쁘(어간) + -ㄴ(어미) + 꽃(명사) + 이(조사) + 피(어간) + 었(어미) + 다(어미) 이런식으로 컴퓨터가 자연어를 효과적으로 처리할 수 있도록 전처리 과정을 거쳐야 한다. Pre-Processing텍스트 전처리 과정은 크게 3가지 단계가 있다. 1) Tokenization문장을 형태소 단위로 자른다. 주어진 문장에서 의미 부여가 가능한 단위를 찾는다.표준화 토큰화 방법인 Treebank Tokenization이 있다.문장 의미별로 나누는 문장 토큰화도 존재한다.한국어는 토큰화가 어렵다. Ex) 필요하다면 -> 필요(명사) + 하(접미..