목록Study/AI (11)
serendipity

임베딩 파인튜닝 🌱 파인 튜닝이란? 프리트레인 이후 추가 학습을 시행해 임베딩을 다운스트림 태스크에 맞게 업데이트하는 것 전이학습은 BERT의 언어 모델의 출력에 추가적인 모델을 쌓아 만든다. 일반적으로 복잡한 CNN, LSTM, Attention을 쌓지 않고 간단한 DNN만 쌓아도 성능이 잘 나오며 별 차이가 없다고 알려져 있다. 단어 임베딩 활용 1) 입력 문장을 토크나이즈한 뒤 해당 토큰에 대응하는 단어 벡터를 참조해 파인 튜닝 네트워크의 입력값으로 만든다. 2) 단어 임베딩을 1개 층의 양방향 LSTM 레이어에 태우고, 각 LSTM셀에서 나온 출력 벡터들에 어텐션 메커니즘을 적용해 고정된 길이의 히든 벡터로 만든다. 3) 히든 벡터를 활성함수가 ReLU인 피드포워드 네트워크에 입력한다. 4) 피드..

5. BERT 2018년에 구글이 공개한 사전 훈련된 마스크 언어 모델이다. BERT는 트랜스포머를 이용하여 구현되었고, 모델의 속성이 양방향을 지향한다. '주어진 시퀀스 다음 단어를 맞추는 것에서 벗어나, 일단 문장 전체를 모델에 알려주고 빈칸에 해당하는 단어 예측' BERT는 Transformer의 인코더-디코더 중 인코더만 사용하는 모델이다. 기존 인코더-디코더 모델들과 다르게 Transformer는 CNN, RNN을 이용하지 않고 Self-attention이라는 개념을 도입하였다. 🌱 Attention이란? : decoder에서 출력단어를 예측하는 매 timestamp마다 encoder에서 전체 입력문장을 다시 참고하는 것 입력값들을 동일한 비중으로 참고하는 것이아니라, decoder에서 현재 t..

4. 트랜스포머 네트워크 구글 연구 팀이 NIPS에 공개한 딥러닝 아키텍처로, 뛰어난 성능으로 주목받았다. 이후 발표된 GPT, BERT 등 기법은 트랜스포머 블록을 기본 모델로 쓰고 있다. - Scaled Dot-Product Attention 트랜스포머 블록의 주요 구성 요소 중 하나다. 입력(X)은 기본적으로 행렬 형태를 가지며 그 크기는 입력 문장의 단어 수 X 입력 임베딩의 차원 수다. 예로, 드디어 /금요일/ 이다 라는 문장이 입력으로 들어가면, 히든 차원 수가 768일 때, 입력 행렬의 크기는 3 X 768이다. 매커니즘은 쿼리(query), 키(key), 값(value) 세가지 사이의 다이내믹스가 핵심이다. 아래 그림의 과정처럼 계산을 수행하며, 소프트맥스 행렬과 값 행렬을 내적하는 것으로..

3. ELMo (Embeddings from Language Models) 문장 임베딩 기법 중 하나로 전이학습(transfer learning)을 NLP에 접목시킨 언어 모델이다. 단어 sequence가 얼마나 자연스러운지에 대한 확률값을 부여하고 입력한 단어들 뒤에 어떤 단어가 올 지 맞추는 방식으로 학습된다. ELMo가 제안된 후 자연어 처리 분야에서는 모델을 '프리트레인'(사전 학습)한 뒤 이를 각종 '다운스트림 태스크'(우리가 풀고 싶은 구체적 문제들) 에 적용하는 양상이 일반화되었는데 이는 곧 알아볼 BERT, GPT 등이다. 프리트레인한 모델을 다운스트림 테스크에 맞게 업데이트 하는 과정을 '파인튜닝'이라고 한다. 🌱 전이학습이란? : 이미 학습된 모델 결과를 다른 모델의 입력 또는 부분으로..

문장 수준 임베딩 1. Doc2Vec Word2Vec에 이어 구글 연구 팀이 개발한 문서 임베딩 기법이다. 문장 전체에 대해 단어 k개씩 슬라이딩해가며 단어 k개가 주어졌을 때 다음 단어를 맞추는 과정을 학습한다. 예를 들어, 'The cat sat on the mat'라는 문장에서 k=3일 때 아래 그림처럼 the, cat, sat으로 on을 예측한다. 이 과정을 한 단어씩 sliding하며 문장 내 모든 단어에 대해 예측하는 과정을 학습하는 것이다. 모델 학습 구조) Doc2Vec 모델은 아래 로그 확률 평균을 최대화하는 과정에서 학습된다. 이는 학습 데이터 문장 하나의 단어 개수가 T일 때 해당 문장의 로그 확률의 평균이다. 위 수식의 값이 커진다는 것은 모델에 이전 k개 단어들을 입력하면 모델이 ..

5. GloVe (Global Word Vectors) 2014년 미국 스탠포드대에서 개발된 워드 임베딩 기법이다. GloVe는 다음 Word2Vec과 LSA의 단점을 극복하여, 단어 벡터 간 유사도를 잘 측정하면서 말뭉치 전체에 대한 통계량을 잘 반영할 수 있는 임베딩 기법을 목표로 만들어졌다. 기존의 임베딩 기법인 Word2Vec은 단어 간 유사도 측정은 잘 할 수 있었으나, 사용자가 지정한 윈도우 내 문맥만 학습하기 때문에 말뭉치 전체에 대해 학습하기에는 어려웠다. LSA는 말뭉치 전반적인 통계량은 잘 파악되었지만 단어간 유사도 측정은 잘 하지 못한다는 단점이 있었다. '임베딩된 단어 벡터 간 유사도 측정을 수월하게 하면서도 말뭉치 전체의 통계정보를 더 잘 반영해보자' 가 Glove가 지향하는 핵심..

3. FastText Word2Vec에서 단어 대신 문자 단위(character) n-gram을 한 모델로, 페이스북에서 2017년에 개발했다. 모델 기본 구조) Word2Vec과 대부분 내용이 동일하며, 사용하는 단위가 다르다는 차이점이 있다. ex, '티스토리'라는 단어를 n=3인 n-gram을 나타낼때, ,로 나타낸다. (는 단어의 경계를 나타내주기 위해 FastText 모델이 사용하는 특수기호이다.) 단어 임베딩은 5개의 문자 단위 n-gram 벡터의 합으로 표현한다. U티스토리 = Z + Z 일반 수식으로 나타내면, Ut = Σ zg (g ∈ Gt) *Gt는 타깃 단어 t에 속한 문자 단위 n-gram 집합을 가리킨다. FastText도 네거티브 샘플링 기법을 사용한다. 1. Positive s..

단어 수준 임베딩 모델 (Word Embedding) 1. NPLM (Neural Probabilistic Language Model) 모델 기본 구조) 기존 언어 모델의 한계 : - 학습 데이터에 존재하지 않은 n-gram이 포함된 문장이 나타날 확률 값을 0으로 부여하는데, 백오프나 스무딩으로 이런 문제를 일부 보완할 수 있지만 완전한 것은 아니다. - 문장의 장기 의존성을 포착해내기가 어렵다. 즉, n-gram 모델의 n을 5 이상으로 길게 설정할 수 없다. - 단어 문장 간 유사도를 계산할 수 없다. NLPM은 통계 기반의 전통적인 기존 언어 모델의 한계를 일부 극복한 언어 모델이라는 점에서 의의가 있다. 그뿐만 아니라 NPLM 자체가 단어 임베딩 역할을 수행할 수 있다. NPLM의 학습) NPL..

들어가기에 앞서 ... 임베딩 학습용 말뭉치는 라인 하나가 문서면 좋습니다. 한국어 위키백과, KorQuAD, 네이버 영화 리뷰 말뭉치 등을 이같이 전처리하였습니다. 형태소 분석 방법 국어학 전문가들이 태깅한 데이터로 학습된 모델을 분석하는 지도 학습 기법과 가지고 있는 말뭉치의 패턴을 학습한 모델을 적용하는 비지도 학습 기법 등이 있다. 지도 학습이란? : 정답이 있는 데이터의 패턴을 학습해 모델이 정답을 맞도록 하는 기법 1) 분류(Classification) 분류는 주어진 데이터를 정해진 카테고리(라벨)에 따라 분류하는 문제를 말한다. darknet의 YOLO, network architecture GoodLe Net for image classification을 이용하여 이미지를 분류한다. 분류는..

1) 자연어 계산과 이해, 임베딩에 자연어 의미를 어떻게 함축할 수 있을까? 그 비결은 자연어의 통계적 패턴(Statistical pattern)정보를 통째로 임베딩에 넣는 것이다. 자연어의 의미는 해당 언어 화자들이 실제 사용하는 일상 언어에서 드러나기 때문이다. 임베딩을 만들 때 쓰는 통계 정보 , 첫째는 문장에 어떤 단어가 (많이) 쓰였는지이고, 둘째는 단어가 어떤 순서로 등장하는지이며, 마지막으로는 문장에 어떤 단어가 같이 나타났는지와 관련한 정보다. 2) 어떤 단어가 많이 쓰였는가, - 백오브워즈 가정 수학에서 백(bag)이란 중복 원소를 허용한 집합(multiset)을 뜻한다. 원소의 순서는 고려하지 않는다, 따라서 중복집합 {a,a,b,c,c,c}는 {c,a,b,c,a,c}, {c,a,c,b..