전체 글

One By One
ai.stanford.edu/~amaas/data/sentiment/ Sentiment Analysis Publications Using the Dataset Andrew L. Maas, Raymond E. Daly, Peter T. Pham, Dan Huang, Andrew Y. Ng, and Christopher Potts. (2011). Learning Word Vectors for Sentiment Analysis. The 49th Annual Meeting of the Association for Computational Linguistics (A ai.stanford.edu 스탠퍼드 대학교 인공지능 연구팀의 원본 자료로 classification 진행 import glob import os f..
word2vec의 개념을 문장이나 문서 전체로 확장시켜 활용한다. 기존 단어들에 근거해서 다음 단어를 예측함으로써 단어 벡터들을 학습한다는 착안을 문장이나 문단, 문서 벡터의 학습으로 확장할 수 있다. doc2vec은 점진적 학습이 가능하다. 훈련을 마친 모형에 새로운 문서들을 입력해서 새로운 문서 벡터들을 생성한다. 추론 단계에서 알고리즘은 동결된 단어벡터 행렬과 해당 가중치들로 새 문서 벡터들을 계산해서 문서 행렬에 추가한다. 문서 벡터 훈련 genism 패키지에있는 doc2vec을 위한 함수들을 이용해 문서 벡터 생성 사용할 cpu 코어 수 import multiprocessing num_cores = multiprocessing.cpu_count() genism의 doc2vec과 말뭉치 문서 벡터..
nlpia를 통해 미리 훈련된 구글 뉴스 word2vec 모형을 받아온다. 단어 수 30만개 import os from nlpia.loaders import get_data from gensim.models.word2vec import Word2VecKeyedVectors wv = get_data('word2vec') len(wv.vocab) #3000000 n-gram 단어들이 '_' 문자로 연결된 것을 확인 할 수 있다. import pandas as pd from tqdm import tqdm vocab = pd.Series(wv.vocab) vocab.iloc[1000000:1000006] # Starwood_Hotels_HOT Vocab(count:2000000, index:1000000) # ..
word2vec은 NLP에 혁신을 가져왔지만 반드시 역전파를 이용해 훈련을 해야한다는 신경망 의존이 크다. 이를 스탠퍼드 연구팀은 SVD를 적용해 word2vec으로 산출한 것과 동일한 두개의 가중치 행렬을 통해 역전파 수렴이 불가능한 경우를 발견 했다. 이를 해결하기 위해 Glove 전역에 대한 단어 공동 출현 빈도를 최적화 시켜 해결했다. Word2vec이 큰 말뭉치를 대상으로만 훈련이 가능한 반면 Glove는 더 작은 말뭉치로도 훈련이 가능하다. GloVe의 장점 훈련이 빠르다. RAM과 CPU 효울성이 좋다. 적은 말뭉치도 활용이 가능하다. 같은 훈련 자료로 훈련했을 떄 word2vec 보다 더 정확한 결과를 제공한다.
모델을 학습할 때 손실함수를 지표로 삼고 모델의 학습을 관찰한다. 정확도를 목표로 하면 되는데 왜 정확도를 지표로 하지 않을까? 그 이유는 미분을 주로 사용하는 학습 모델에서 정확도는 대부분이 미분값이 0인 지점으로 삼아 미분값에 대한 변화를 알수 없다. 이에 반면 손실함수는 미분값에 영향을 받지 않아 변화량을 관찰할 수 있다. 정확도는 매개 변수의 변화에 거의 반응을 보이지 않고 반응이 있더라도 그 값이 불연속적으로 변한다. 예를 들면 활성화 함수로 계단 함수를 사용했다고 가정하면 0을 기준으로 미분값이 모두 0이다. 따라서 매개변수가 주는 변화를 계단함수가 모두 사라지게 만들어 손실함수의 값에 아무런 변화가 없다. 시그모이드 함수를 사용하면 미분 값이 0이 되는 구간이 없어 모든 구간에서 매개 변수의..
[tensorboard] 아나콘다 명령 prompt >tensorboard --logdir=./path/logs/ [gpu 메모리 관리] tf version 1.xx config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config) [gpu 메모리 관리] tf version 2.xx config = tf.compat.v1.ConfigProto() config.gpu_options.allow_growth = True session = tf.compat.v1.Session(config=config) [gpu 사용량 80%] config = tf.compat.v1.ConfigProto() conf..
다했다
B's