3

我正在查看以下 2 个关于使用 --adaptive 标志时 VW 所做更新的演示文稿。好像这些都不一样。

  1. http://www.slideshare.net/jakehofman/technical-tricks-of-vowpal-wabbit
  2. https://github.com/JohnLangford/vowpal_wabbit/wiki/v6.1_tutorial.pdf

使用这两个描述(分别):

#1

在此处输入图像描述

#2

在此处输入图像描述

我的问题:

  1. 哪些是正确的(或者它们是相同的)?

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

4

1 回答 1

2

正如您所注意到的,第一个演示文稿在 AdaGrad 公式中包含一个错误/错字。公式应该是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 的思想)默认是开启的。但是--normalizedand--invariant也是默认开启的,这意味着在普通的 AdaGrad 之上应用了更多的技巧/改进。所有这些技巧的交互都很复杂,没有一张幻灯片可以描述所有方面,所以唯一的参考是源代码(gd.cc)。

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

我认为它们不一样,但它们是复杂代码的不同“层”。我认为第二个演示文稿的幻灯片 33(您引用为 #2)对应于第一个演示文稿幻灯片 31(您没有引用) ,但我不确定。

于 2015-02-18T17:33:23.620 回答