Vowpal Wabbit公式中的自适应更新

时间:2015-02-15 17:03:31

标签: vowpalwabbit

我正在查看以下2个关于使用--adaptive标志时大众所做更新的演示文稿。 似乎这些是不同的。

  1. http://www.slideshare.net/jakehofman/technical-tricks-of-vowpal-wabbit
  2. https://github.com/JohnLangford/vowpal_wabbit/wiki/v6.1_tutorial.pdf
  3. 分别使用这两个描述:

    #1

    enter image description here

    #2

    enter image description here

    我的问题:

    1. 其中哪一项是正确的(或它们是否相同)?

    2. 对于数字1,似乎在分母中使用来自t + 1示例的梯度。这是怎么做到的?这是否意味着新的重量(标记为w_i)是重量,例如t + 1?

1 个答案:

答案 0 :(得分:2)

正如您所注意到的,first presentation包含AdaGrad公式中的错误/拼写错误。公式should be w_ {i,t + 1}:= w_ {i,t} - (\ eta * g_ {i,t} / \ sqrt {sum}),其中sum = \ sum_ {t' = 1} ^ t g_ {i,t'} ^ 2。

在VowpalWabbit中,--adaptive(对应于AdaGrad的想法)默认开启。但默认情况下,--normalized--invariant也处于启用状态,这意味着除了简单的AdaGrad之外,还会应用更多技巧/改进。所有这些技巧的相互作用很复杂,没有单一的幻灯片描述所有方面,所以唯一的参考是源代码(gd.cc)。

  

哪些是正确的(或它们是否相同)?

我认为它们不相同,但它们是复杂代码的不同“层”。我认为second presentation的幻灯片33(您引用为#2)对应于幻灯片31(您没有引用) first presentation,但我不确定。