在 Vowpal Wabbit 中离线评估策略 + 探索的正确方法
Proper way to evaluate policy + exploration offline in Vowlpal Wabbit
我的用例是 retrain/make 在批处理模式下使用 VW CB 进行预测(retrain/inference 每晚发生)。
我正在阅读 this 批处理场景中的离线策略评估教程。我正在使用以下方法对记录的数据集进行训练:
--cb_adf --save_resume -f {MODEL_PATH} -d ./data/train.txt
为了调整批量预测的超参数 epsilon
,我 运行 在单独的数据集上使用以下命令 3 次:
-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt
给出最低平均损失的是最佳 epsilon。
我使用的选项是否正确?我的困惑主要来自另一个选项 --explore_eval
。 --explore_eval
和 cb_explore_adf
有什么区别,离线评估模型+探索的正确方法是什么?我应该 运行
--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt
并且平均损失最低的是最佳 epsilon。
-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt
我预测这个实验的结果:最优的epsilon是最小的。这是因为收集了数据之后,就没有探索的价值了。为了评估探索,您必须以对探索算法敏感的方式更改训练中可用的数据。这将我们带到...
--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt
'--explore_eval' 旨在评估探索。它需要更多数据才能正常工作(因为如果探索不匹配它会丢弃数据)但允许您评估探索因为它模拟了 war.
的迷雾
如果您正在测试其他模型超参数,例如基础学习算法或交互,则不需要“--explore_eval”的额外数据开销。
我的用例是 retrain/make 在批处理模式下使用 VW CB 进行预测(retrain/inference 每晚发生)。
我正在阅读 this 批处理场景中的离线策略评估教程。我正在使用以下方法对记录的数据集进行训练:
--cb_adf --save_resume -f {MODEL_PATH} -d ./data/train.txt
为了调整批量预测的超参数 epsilon
,我 运行 在单独的数据集上使用以下命令 3 次:
-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt
给出最低平均损失的是最佳 epsilon。
我使用的选项是否正确?我的困惑主要来自另一个选项 --explore_eval
。 --explore_eval
和 cb_explore_adf
有什么区别,离线评估模型+探索的正确方法是什么?我应该 运行
--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt
并且平均损失最低的是最佳 epsilon。
-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt
我预测这个实验的结果:最优的epsilon是最小的。这是因为收集了数据之后,就没有探索的价值了。为了评估探索,您必须以对探索算法敏感的方式更改训练中可用的数据。这将我们带到...
--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt
'--explore_eval' 旨在评估探索。它需要更多数据才能正常工作(因为如果探索不匹配它会丢弃数据)但允许您评估探索因为它模拟了 war.
的迷雾如果您正在测试其他模型超参数,例如基础学习算法或交互,则不需要“--explore_eval”的额外数据开销。