【发布时间】:2023-03-11 05:39:01
【问题描述】:
我正在研究多臂强盗 (MAB) 问题,大约有100万只武器。相比之下,迭代次数当然要大得多,大约 10-20 百万。
大多数 MAB 算法需要一个 argmax 运算符(动作空间的 argmax),必须在每次迭代中执行该运算符才能选择当前臂(它最大化给定的选择标准)。无论选择哪种编程语言来实现,这个过程/这个 argmax 运算符在整个动作空间(100 万臂)上都是非常耗时的。
有人对如何以高效的方式实现 MAB 算法有一些想法吗?
【问题讨论】:
-
您正在尝试哪种算法? (UCB1?EXP3?)当你尝试一个手臂时返回什么值? (整数,实数)关于未采样臂的值,您是否可以利用任何属性? (例如,如果它们保持有序,则对它们进行排序,然后您只需要评估第一个。)也就是说,有很多可能性,但需要更多信息来提供帮助。
-
主要是关于UCB1。返回值是实数。在前 100 万次运行中,每个臂必须至少选择一次,然后再选择任何臂两次。因此,在前 1 m 的运行中不需要 argmax 运算符。根据它们的值对臂进行排序是一种想法,但是在选择臂并更新其值之后,必须将该臂放回排序臂列表的正确顺序/正确位置。这可能需要更少的时间,但问题仍然存在:是否有更好/其他的想法?或者有没有关于如何实现这个想法的建议?优先队列?
标签: performance artificial-intelligence reinforcement-learning