gensim의 word2vec/doc2vec에서 학습 손실을 출력하면서 학습률 alpha의 값을 바꾸어 학습한다
개요
gensim을 사용한 word2vec/doc2vec의 실행은 아래와 같이 모델을 작성하고 학습시키는 것만으로 간결하게 실현할 수 있습니다.
# https://rare-technologies.com/word2vec-tutorial/
model = gensim.models.Word2Vec(iter=1) # an empty model, no training yet
model.build_vocab(some_sentences) # can be a non-repeatable, 1-pass generator
model.train(other_sentences)
다만, 섬세한 학습의 관리 등은 gensim에 맡겨 버리므로, 가능한 한 정중한 튜닝을 할 수 있도록, 이 기사에서는
alpha
의 값을 바꾸면서 학습시킨다 두 가지 방법을 설명합니다.
참고로 기본적으로 학습률
alpha
의 값은 min_alpha
를 향해 선형으로 떨어지므로 보통 이번과 같은 방법을 취하지 않아도 alpha
및 min_alpha
를 지정하면 문제 없습니다 .alpha is the initial learning rate (will linearly drop to min_alpha as training progresses).
htps : // 라라 m 흔들림 k. 이 m/겐시 m/모두 ls/를 rd2ゔぇc. HTML
방법
학습시 손실을 출력한다
학습의 손실을 출력하기 위해서는, 모델에
compute_loss=True
를 지정한 후에 get_latest_training_loss()
로 취득할 수 있습니다.model = word2vec.Word2Vec(min_count=1, compute_loss=True)
model.build_vocab(texts)
model.train(texts, total_examples=model.corpus_count, epochs=model.iter)
model.get_latest_training_loss()
alpha 값을 변경하면서 학습
학습을 반복하는 동안 학습률
alpha
를 매번 지정하도록 합니다. 또한, min_alpha
가 설정되어 있으면 alpha
의 값이 작아져 가므로, alpha
와 같은 값을 넣어 변화하지 않게 하고 있습니다.alpha = 0.025
alpha_delta = 0.001
passes = 20
loss_val_list = []
for epoch in range(passes):
model.alpha, model.min_alpha = alpha, alpha
model.train(texts, total_examples=model.corpus_count, epochs=model.iter)
alpha -= alpha_delta
loss_val_list.append(model.get_latest_training_loss())
또한 위에서 설명한 학습 손실을 출력하여 목록에 저장하면 다음과 같이 학습 손실을 시각화할 수 있습니다.
참고
Reference
이 문제에 관하여(gensim의 word2vec/doc2vec에서 학습 손실을 출력하면서 학습률 alpha의 값을 바꾸어 학습한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yagays/items/26b1e139b081cf2ad813텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)