본문 바로가기

딥러닝/자연어(NLP)

[논문 리뷰] Very Deep Transformers for Neural Machine Translation 트랜스포머가 훈련이 잘 안되는 이유와 그걸 가능하게 만든 방법. Abstract 인코더 60층, 디코더 12층 까지 쌓아서 트랜스포머를 훈련시키는데 성공했습니다. $\color{blue}{WMT14 English-French}$ 밴치마크에서 SOTA를 찍었습니다. (43.8BLEU and 24.4 BLEU with back-translation) 1 Introduction Deeper model은 더 더양한 표현을 소화할 수 있습니다. 현재 NMT에서 SOTA인 모델의 사이즈는 Enc6/Dec12밖에 되지 않습니다.* Optimization Challenge : 각 층의 분산이 쌓여서 훈련이 불안정하고 발산하게 됩니다. 최근에 나온 초기화 방법인 ADMIN방법으로 Variance problem을 해소합니.. 더보기
Transformer 모델 학습은 생각보다 어렵다. Computational Linguistics의 발달로 모델의 성능을 인간을 뛰어넘는 경우가 종종 생기고 있다. Squad 2.0의 Q&A모델이 대표적인 예인데, 사람이 정답을 찾는 것보다 모델이 찾는 게 훨씬 더 정확도가 높으며 사람들은 모델이 생성해낸 가짜 뉴스를 쉽게 구분하지 못하고 있습니다.[1] NLP의 경우, 데이터의 양이 어마무시하고, 모델의 사이즈가 크기 때문에, 훈련하는 게 마냥 쉽지만은 않다. Facebook의 fairseq[2]는 sequential모델에 대한 open source 라이브러리로 직접 transformer 모델을 훈련시키고 내부를 변화시킬 수 있습니다. 현재 이 모델을 훈련하고 있는데, 트랜스포머의 주변에 새로운 모듈을 추가해서 그 성능을 높이는 일을 하고 있습니다. 따.. 더보기
나만의 자연어처리 공부방법 1. 학습교재 📚 '김기현의 자연어처리 딥러닝 캠프'를 사용했습니다. 자연어 처리에 대한 배경지식이 부족해서 전반적으로 이 분야를 설명해주는 책을 선택했습니다. 내용에 대해서 부족한 점은 많지만 한번 훑어보기에는 적당합니다. 2. 학습방법 👩‍🏫 자연어에 대한 설명을 건너 뛰고 시퀀스 모델링부터 학습을 진행했습니다. 딥러닝에 대한 단편적인 지식이 있으므로 NLP 모델에 중점을 뒀습니다. A. 모델링 [중요도 :🌟🌟🌟🌟] 모델을 스터디한 순선대로 나열했습니다. 모델 중요도 설명 RNN ⭐⭐⭐⭐ NLP 모델들의 기초가 됩니다. 순차적으로 학습시키는 모델로 생각하면 됩니다. LSTM ⭐⭐ 장기기억이 불가능한 RNN 를 개선했습니다 GRU ⭐ LSTM의 복잡성을 개선했습니다. light versi.. 더보기
About NLP Turing Test 기계가 작성한 문서와 사람이 작성한 문서가 있을 때, 두 개를 구분하지 못한다면 머신은 인공지능이 아닐까? History Ambiguity 단어가 지니는 의미는 Contextual할 수 있기 때문에, 머신이 그 의미를 파악하는 게 쉽지 않다. Syntactic ambiguity : 문맥을 해석하는 순서 Lexical ambiguity : verb, noun, what does it mean? Semantic ambiguity : 의미를 해석하는 방법 Perplexity 외부 평가(extrinsic evaluation) : 모델에 대한 결과를 사람들이 수동적으로 평가한다. N : 문장의 길이 W : 단어 더보기
Colab에서 한글 사용하기 Colab에서 matplotlib를 사용할 때 설정된 폰트는 한글이 지원이 안되기 때문에, 코렙에서 한글 폰트를 다운 받고 matplotlib에서 폰트를 설정해줘야 합니다. # 주의 사항 # 한글 설치. 설치 후 [ ctrl + M + . ] 으로 런타임 다시 시작해야 함. import matplotlib import matplotlib.pyplot as plt import matplotlib.font_manager as fm # 폰트 다운 받기 !apt -qq -y install fonts-nanum # 폰트 설정하기 path = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf' font = fm.FontProperties(fname=path, size=.. 더보기
Word2Vec을 활용한 단어 유사성 Word2Vec을 활용한 단어 시각화 이미 학습된 모델 Word2Vec을 활용한 유사단어 ⭐⭐⭐ coffee와 유사한 단어 tea : 69.4% cocoa : 64.3% beans : 61.9% espresso : 61.3% drinks : 60.4% drink : 58.9% beer : 58.7% wine : 58.4% starbucks : 58.2% sugar : 55.7% 나라 분류 모델 만들기 ⭐ 나라로 분류한 단어: ['senegal', 'latvia', 'colombia', 'serbia', 'nepal', 'maldives', 'croatia', 'brazil', 'uganda', 'slovakia'] 나라가 아닌 단어 :['qbs', 'allmänna', '1,617', 'zingiber'.. 더보기
Word2Vec Gensim 실습 코드 단어 임베딩을 이용한 텍스트 유사성🤚 의미 유사성을 바탕으로 적절한 공간에 위치시키는 방법이 단어임베딩입니다. One-hot enconding을 사용할 수도 있지만, 이 경우 단어의 유사성을 파악하기는 어렵습니다. 단어가 10M 개가 있다고 가정해봅시다. 100,000,000 개를 1000개의 차원의 벡터 x = (x_1, ..., x_1000) 으로 투영시키는 경우를 생각할 수 있습니다. 두 단어의 유사성은 한 문장에 두 단어가 동시에 위치할 경우, 관계가 높다고 할 수 있습니다. 코드를 리뷰하면서 관련 내용을 살펴보겠습니다. 중요한 라이브러리 %matplotlib inline import os from keras.utils import get_file import gensim import numpy .. 더보기
[논문 리뷰] 트위터 길이와 감성의 관계 분석 자연어처리 중에서 감성분야는 사회적으로나 상업적으로 유용한 분야 중 하나라고 생각합니다. 사용자들에 대한 감성을 파악하는 것은 우리가 인지할 수 있지만 컴퓨터는 이를 인간처럼 이해하기 힘든 분야죠. 오늘은 쉬운 논문 중 하나인 "A Clustering Analysis of Tweet Length and its Relation to Sentiment" 을 리뷰하고자 합니다. 주장의 근거를 빠르게 접근하기 위해서 맨 뒤에서 처리하지 않고 바로 문단의 끝에 적었습니다. 저자가 너무 많을 경우 가독성이 떨어져서 2명까지만 적었습니다. Reference에 대한 자세한 내용은 해당 논문을 참조해주세요. (저처럼 논문이 익숙하지 않은 사람들을 위해서 적었습니다.) Abstract 논문에서는 두 가지 주제를 다루고 있.. 더보기