问题描述
混淆是因为当我们在vw命令行中指定--sgd时,它将运行经典sgd,而没有自适应,规范化和不变的更新。因此,当我们在vw-hyperopt中将算法指定为sgd时,它是作为经典算法运行还是具有特殊更新?在vw-hyperopt中指定算法是否必须?哪个是默认算法?谢谢。
解决方法
查看the source code可以确认--algorithm sgd
的含义仅保留了默认值。
这与vw --sgd
不同。它不会通过将--sgd
传递给vw
来禁用默认值。 IOW:是的,自适应,规范化和不变式更新将仍然有效。
也:您可以通过在当前目录中查看vw-hyperopt
创建的日志文件来进一步验证这一点,并确认其中没有--sgd
选项。此日志包含完整的vw
命令行,它会执行以进行培训和测试,例如:
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