【发布时间】:2020-04-22 06:14:21
【问题描述】:
最后几天我正在尝试训练一个上下文强盗算法 throw Vowpalwabbit,所以我正在做一些玩具模型,可以帮助我理解算法的工作原理。
所以我想象了一个有 4 种可能动作的状态,并在两个不同的上下文中训练我的模型。 每个上下文在 4 个动作中只有一个最优动作。
我就是这样做的。
vw = pyvw.vw("--cb_explore 4 -q UA --epsilon 0.1")
vw.learn('1:-2:0.5 | 5')
vw.learn('3:2:0.5 | 5')
vw.learn('1:2:0.5 | 15')
vw.learn('3:-2:0.5 | 15')
vw.learn('4:2:0.5 | 5')
vw.learn('4:2:0.5 | 15')
vw.learn('2:2:0.5 | 5')
vw.learn('2:2:0.5 | 15')
因此,对于我的示例,对于他的特征等于 5 的上下文,最佳动作是 2,而对于另一个,最佳动作是 3。
当我在这两个上下文中进行预测时,没有问题,因为算法已经遇到过一次并且已经获得了奖励来调节他的选择。
但是当我到达一个新的上下文时,我希望算法能够让我做出最相关的动作,例如通过考虑上下文特征的相似性。
例如,如果我给出一个等于 29 的特征,我希望得到动作 3,因为 29 比 5 更接近 15。
所以我现在的审讯。
谢谢!
【问题讨论】:
标签: python reinforcement-learning vowpalwabbit