Vowpalwabbit Base Learner - 自适应和规范化

Vowpalwabbit Base Learner - adaptive and normalize

我正在尝试了解 vowpalwabbit 中的基础学习器。我了解在线梯度下降和特征哈希。我试图了解它使用的自适应和规范化功能。我了解功能的要点(改变学习率甚至功能),我希望了解如何将它们编程到 vowpalwabbit 中。有人可以分享这些功能的伪代码或在代码库中指出它们吗?

您不会发现 gd.cc 特别容易阅读。它专为吞吐量而设计。话虽如此...

Adaptive 基于 adagrad,它试图调整每个特征的有效学习率。为了实现这一点,它累积了每个特征的平方梯度之和,https://github.com/VowpalWabbit/vowpal_wabbit/blob/aa88627c9e9ffed6c0eea165ff85b04f0a22c0b7/vowpalwabbit/gd.cc#L502 .

归一化基于维度分析参数。它会尝试调整权重以匹配特征尺度。为了实现这一点,它为每个特征保留了迄今为止看到的最大绝对值,https://github.com/VowpalWabbit/vowpal_wabbit/blob/aa88627c9e9ffed6c0eea165ff85b04f0a22c0b7/vowpalwabbit/gd.cc#L507 .

最后,你应该尝试 --coin,这是 vw 中的一个新的基础学习器,它可以在默认设置下产生更好的结果。