1

混淆是因为当我们在 vw 命令行中指定 --sgd 时,它运行经典的 sgd,没有自适应、规范化和不变的更新。那么,当我们在 vw-hyperopt 中将算法指定为 sgd 时,它是作为经典运行还是带有特殊更新?是否必须在 vw-hyperopt 中指定算法?哪个是默认算法?谢谢你。

4

1 回答 1

1

Looking at the source code confirms that the meaning of --algorithm sgd here simply leaves the default alone.

This is different than vw --sgd. It doesn't disable the defaults by passing --sgd to vw. IOW: yes, the adaptive, normalized and invariant updates will still be in effect.

Also: you can verify this further by looking at the log file created by vw-hyperopt in the current dir and verify it has no --sgd option in it. This log includes the full vw command line it executes for training and testing, e.g:

2020-09-08 00:58:45,053 INFO  [root/vw-hyperopt:239]: executing the following command (training): vw -d mydata.train -f ./current.model --holdout_off -c ... --loss_function quantile
于 2020-09-08T08:05:51.783 回答