2015-04-15 2 views
2

Недавно я использую Vowpal Wabbit для классификации, и у меня возникает вопрос о readable_model.Vowpal Wabbit читаемая модель интерпретации веса

Вот моя команда: оч.сл. --quiet --save_resume --compressed aeroplane.txt.gzip --loss_function = Петля --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 и очень запутался.

ответ

0

Простой SGD (стохастический градиентный спуск) требует только одного параметра для каждой характеристики, веса. Однако VW по умолчанию использует --adaptive --normalized --invariant. Таким образом, в дополнение к весу, он должен хранить два других параметра за функции:

  • сумма градиентов для --adaptive (обновление AdaGrad стиле),
  • в-функции регуляризации для --normalized.

Эти два дополнительных параметра сохраняются в модели (читаемой или двоичной) только в том случае, если предоставляется --save_resume.

Странно, что если вы запустите vw --sgd --save_resume, читаемая модель по-прежнему содержит три параметра для каждой функции, хотя --sgd эффективно означает неадаптивный, ненормированный и неинвариантный. Я думаю, что это ошибка в реализации --readable_model.

EDIT: Последнее странное поведение было ошибкой, и это fixed now.

Смежные вопросы