大众汽车意外的预测行为

问题描述

我正在使用vowpalwabbit解决上下文强盗问题。我想使用here所述的cover选项。

我正面临2个问题:

  • 一旦学习阶段结束,并且我使用vw模型进行预测,那么这些预测(在这种情况下,针对动作的pmf)将不稳定
  • 如果我保存模型并将其重新加载到内存中,则预测会有所不同

这里是一个示例(使用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相同)却有所不同。

如果我将cover替换为bag,则不会出现此问题。对此有什么解释,是否可以在大众汽车中对其进行修复?

解决方法

谢谢您的举报,这似乎是一个错误。

我为此here打开了一个问题,以便您可以跟踪进度。