如何解决当 vw LDA 使用 `--save_resume` 运行时,学习率是否会在传递之间自动降低
vowpal wabbit (vw
) 支持使用 --save_resume
进行核外学习。这就是 --help
选项告诉最终用户有关 --save_resume
选项的内容:
--save_resume save extra state so learning can be
resumed later with new data
我有一个庞大的实时数据集,目前有数亿个文档被分类为 1024 个批次,我的目标是在所有批次上训练 LDA 模型,为此我运行了一个调用 vw
的脚本,例如这个(注意我没有设置--passes
,所以每个数据点只看到一次)。
初始调用:
vw -d clean.txt --lda 100 --lda_D 307000000 -f weights --readable_model lda.model.vw
vw -d clean.txt --lda 100 --lda_D 307000000 --save_resume -i weights -f weights --readable_model lda.model.vw
我已经以这种方式通过 vw 成功运行了所有批次,但是从每次调用中 vw
给出的输出来看,学习率似乎从未下降,它始终如下所示:
learning rate = 0.5
initial_t = 0
power_t = 0.5
我会猜到在请求 --save_resume
时会保存学习率,并且 vw
在看到更多数据时会自动降低学习率,但事实似乎并非如此,对吗?
您是否必须使用vovpal wabbit 手动管理学习率?
解决方法
LDA 的学习率似乎是基于全局学习率计算的(但与全局学习率分开存储)。 LDA 的学习/衰减率似乎没有打印在任何地方,因此您不会在日志中看到它们。
https://github.com/VowpalWabbit/vowpal_wabbit/blob/master/vowpalwabbit/lda_core.cc#L892
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。