【问题标题】:Vowpal Wabbit readable model weight interpretationVowpal Wabbit 可读模型权重解释
【发布时间】:2015-06-20 21:20:42
【问题描述】:

最近我在使用 Vowpal Wabbit 进行分类,我收到一个关于 readable_model 的问题。

这是我的命令:vw --quiet --save_resume --compressed aeroplane.txt.gzip --loss_function=hinge --readable_model aeroplane.txt

可读的模型文件如下:

Version 7.7.0
Min label:-1.000000
Max label:1.000000
bits:18
0 pairs: 
0 triples: 
rank:0
lda:0
0 ngram: 
0 skip: 
options:
:1
initial_t 0.000000
norm normalizer 116869.664062
t 3984.000051
sum_loss 2400.032932
sum_loss_since_last_dump 2400.032932
dump_interval 1.000000
min_label -1.000000
max_label 1.000000
weighted_examples 3984.000051
weighted_labels 0.000051
weighted_unlabeled_examples 0.000000
example_number 2111
total_features 1917412
0:4.879771 0.004405 0.007933
1:5.268138 0.017729 0.020223
2:0.464031 0.001313 0.007443
3:3.158707 0.083495 0.029674
4:-22.006199 0.000721 0.004386
5:7.686290 0.018617 0.011562
......
1023:0.363004 0.022025 0.020973
116060:0.059659 2122.647461 1.000000

每个示例我有 1024 个特征,并使用 i-1 作为第 i 个特征的特征名称。 我的问题是:为什么我为每个功能获得 3 个权重?不是应该只有1个重量吗?我对 ML 比较陌生,而且很困惑。

【问题讨论】:

    标签: vowpalwabbit


    【解决方案1】:

    简单的 SGD(随机梯度下降)每个特征只需要一个参数,即权重。但是,大众默认使用--adaptive --normalized --invariant 更新。 所以除了权重之外,每个特征还需要存储另外两个参数:

    • --adaptive 的梯度总和(AdaGrad 样式更新),
    • --normalized 的每个特征正则化。

    仅当提供--save_resume 时,这两个附加参数才会存储在模型中(可读或二进制)。

    奇怪的是,如果你运行vw --sgd --save_resume,可读模型仍然包含每个特征的三个参数,尽管--sgd 实际上意味着非自适应、非标准化和非不变。我认为这是--readable_model的实现中的一个错误。

    编辑:最后一个奇怪的行为确实是一个错误,它是fixed now

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2014-11-08
      • 2015-03-29
      • 2016-08-22
      • 2016-12-26
      • 2018-01-20
      相关资源
      最近更新 更多