【发布时间】:2021-02-09 22:02:22
【问题描述】:
我正在使用vowpalwabbit 解决上下文强盗问题。我想按照here 的说明使用cover 选项。
我面临两个问题:
- 一旦学习阶段结束并且我使用 vw 模型进行预测,这些预测(在这种情况下,pmf over the actions)就不稳定
- 如果我保存模型并将其重新加载到内存中,则预测会有所不同
这是一个例子(使用 VW 的 python 包装器):
import vowpalwabbit.pyvw as pyvw
data_train = ["1:0:0.5 |features a b", "2:-1:0.5 |features a c", "2:0:0.5 |features b c",
"1:-2:0.5 |features b d", "2:0:0.5 |features a d", "1:0:0.5 |features a c d",
"1:-1:0.5 |features a c", "2:-1:0.5 |features a c"]
data_test = ["|features a b", "|features a b"]
model1 = pyvw.vw(cb_explore=2, cover=10)
for data in data_train:
model1.learn(data)
model1.save("saved_model.model")
model2 = pyvw.vw(cb_explore=2, cover=10, i="saved_model.model")
for data in data_test:
print(data)
print(model1.predict(data))
print(model2.predict(data))
我得到以下输出:
|features a b
[0.75, 0.25]
[0.5, 0.5]
|features a b
[0.7642977237701416, 0.2357022762298584]
[0.5, 0.5]
如您所见,模型 1 的预测正在发生变化(略微),而模型 2(应该与模型 1 相同)的预测有所不同。
如果我用bag 替换cover,我不会遇到这个问题。对此有何解释,有没有办法在 VW 中解决?
【问题讨论】:
标签: reinforcement-learning vowpalwabbit