"阿尔法"和"start_alpha"的区别



我想使用"gensim"训练一个Word2Vec模型。我想确定初始评级率。但是,它写道"alpha"和"start_alpha"参数都可以用来做到这一点。它们之间有什么区别?它们是一样的吗?

参数alpha在构造函数中使用:

classgensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, vector_size=100, alpha=0.025, 窗口=5, min_count=5, max_vocab_size=无,样本=0.001,种子=1,工作器=3, min_alpha=0.0001, SG=0, hs=0, 负=5, ns_exponent=0.75, cbow_mean=1, 哈希fxn=, epochs=5, null_word=0, trim_rule=无,sorted_vocab=1,batch_words=10000,compute_loss=假, 回调=(), 注释=无, max_final_vocab=无)

而参数start_alpha用于训练方法:

火车(corpus_iterable=无,corpus_file=无,total_examples=无, total_words=无,纪元=无,start_alpha=无,end_alpha=无, word_count=0, queue_factor=2, report_delay=1.0, compute_loss=假, 回调=(), **kwargs)

至于使用哪个:

start_alpha(浮点型,可选)– 初始学习率。如果提供, 替换构造函数中的起始alpha,对于这一次调用 到train().仅当对 train() 进行多次调用时使用,当您 想要自己管理 alpha 学习率(不推荐)。

它们本质上是相同的。如果在构造函数中指定非默认值:

  • 它们作为alphamin_alpha缓存在模型中

  • 如果你也选择了在构造函数中指定训练语料库(sentences/corpus_iterable/corpus_file),alpha&min_alpha将成为自动.train()start_alphaend_alpha

如果您改为显式调用.train()

  • 您可以指定一个start_alpha&end_alpha,仅用于该调用,该调用将用于代替构造函数期间设置的值(但不会缓存在模型中以供将来调用)

如果您出于某种原因在同一型号上多次调用.train()- 这通常是一个不必要的坏主意,除非在某些非标准的专家使用情况下 - 您可能希望正确选择alpha范围的正确进度在每次调用中(这样它就不会无意义地上下弹跳)。

这种专家使用是单独的、非缓存的start_alphaend_alpha参数存在的真正原因。大多数用户应该坚持使用默认值(所以不要使用其中任何一个),如果他们确实到了修补的地步,只需在构造函数中尝试不同的alpha值,仔细监控它是否有帮助。

最新更新