强化学习:多臂赌博机--磨刀不误砍柴工

强化学习:多臂赌博机–磨刀不误砍柴工

平时我们说,“磨刀不误砍柴工”,通常说的是做事之前精心准备,虽然耗费了一定的时间,但由于提高了后面做事情的效率,相比于直接低效率做事情,还是会有更多的收益。

强化学习中也有一个类似的问题,即 探索开发 之间的平衡问题(Explore-Exploit)。

探索试错的过程,就像磨刀一样,会浪费一些机会、时间或者精力,导致一定时间内的收益会很少或者没有,但为了后面的开发打下了很好的基础;

开发收获的过程,经过了一定的探索并从中总结经验后,能够以相对较高的效率,获得较多的收益。

然而,探索和开发是矛盾的。磨刀的时间太久或者太短,都会导致砍柴变少。后面将以“多臂赌博机”的简单游戏,介绍强化学习中是怎样对待这个问题的。

多臂赌博机

多臂赌博机,源于老虎机(或者叫单臂老虎机),不同之处是它有多个摇臂,“k臂赌博机”即有k个摇臂。当拉下某一个摇臂时,机器将吐出奖金,每一个摇臂对应奖金的有着不同的均值/期望,如下图所示。
多臂赌博机
游戏规则是,假设有若干次机会,如N=105次,每次机会可以拉下一个摇臂,赌博机吐出一定数量的奖金;问采取什么策略,能够获得最多的奖金?

上图中,摇臂1,2,3,4中,摇臂1对应奖金期望最高,但事先我们是不知道的。

很自然的一个思路是:

  1. 先尝试一定次数(如M次),统计每个摇臂奖金的均值和方差,就能知道哪个摇臂奖金期望最高,这个过程可视作探索的过程。这个例子中,探索后会发现,最优策略就是每次都拉摇臂1;
  2. 一番探索之后,发现摇臂1对应的奖金期望最高,也就找到了最优策略:在剩下的(N-M)次机会中,每次都拉摇臂1。这个过程可视作开发的过程。

然而,如何确定M,或确定M和(N-M)的比例 是个问题,即如何平衡探索开发

动作-价值方法

上面的方法中,采取了先探索、在开发的思路。实际上,探索和开发是可以交替同步进行的。

动作-价值函数:
Q t ( a ) = . t 时刻之前执行动作 a 的总收益 t 时刻之前执行动作 a 的总次数 Q_t(a) \overset{.}{=} \frac{t时刻之前执行动作a的总收益}{t时刻之前执行动作a的总次数} Qt(a)=.t时刻之前执行动作a的总次数t时刻之前执行动作a的总收益
其中 a a a是动作空间 A \mathbf A A中的一个动作,即 a ∈ A a \in \mathbf A aA

游戏过程中,统计不同动作的动作-价值函数。根据大数定律,随着每一个动作执行次数增加,该动作的价值函数将收敛到该动作的收益期望值。

那么游戏过程中,如何确定每一次执行的动作? 或者说,在t时刻,已知所有动作 a a a的价值函数 Q t ( a ) , a ∈ A Q_t(a), a \in \mathbf A Qt(a),aA,如何确定t时刻该执行的动作 A t A_t At

贪心策略

贪心策略:每次都选历史表现最好的
A t = . arg max ⁡ a Q t ( a ) A_t \overset{.}{=} \argmax_a Q_t(a) At=.aargmaxQt(a)
贪心策略不会花费太多的机会去尝试历史表现相对较差的动作,导致这些动作可能没有机会被充分的探索。

例如,上面的4摇臂赌博机中,1号摇臂可能在前几次机会中均“表现不佳”,反而最差的3号摇臂“超长发挥”,如果决策者采取的是贪心策略,1号摇臂在后续可能不会再次被启用,导致不能获得最高的收益。

ϵ \epsilon ϵ-贪心策略

大部分时间都表现的贪心,但偶尔(比如以一个很小的概率 ϵ \epsilon ϵ) 随机选取一个动作。

相比于贪心策略, ϵ \epsilon ϵ-贪心策略的一个优点是,随着时间的无限延长,每个动作都会被无限次采样,即充分试探,从而可以保证 Q t ( a ) Q_t(a) Qt(a)收敛到动作a的期望值。

动作选择函数:
A t = . { arg max ⁡ a Q t ( a ) P = 1 − ϵ 任选一个动作 P = ϵ ∣ A ∣ A_t \overset{.}{=} \begin{cases} \argmax_a Q_t(a) & P = 1 - \epsilon \\ 任选一个动作 & P = \frac{\epsilon}{|A|} \end{cases} At=.{argmaxaQt(a)任选一个动作P=1ϵP=Aϵ

其中, ∣ A ∣ |A| A表示动作空间大小;“任选一个动作”也有可能选到 A t = arg max ⁡ a Q t ( a ) A_t =\argmax_a Q_t(a) At=argmaxaQt(a)。即历史表现最优的动作被选到的概率:
P { A t = arg max ⁡ a Q t ( a ) } = 1 − ϵ + ϵ ∣ A ∣ P\{A_t =\argmax_a Q_t(a)\} = 1 - \epsilon + \frac{\epsilon}{|A|} P{At=aargmaxQt(a)}=1ϵ+Aϵ
其他的动作被选到的概率:
P { o t h e r s } = ϵ ∣ A ∣ P\{others\} = \frac{\epsilon}{|A|} P{others}=Aϵ

乐观初始值

上面介绍了贪心策略和 ϵ \epsilon ϵ-贪心策略,依靠动作价值函数,以相对贪心的策略进行动作选择。

对于动作价值函数 Q t ( a ) Q_t(a) Qt(a),在没有历史数据参考的情况下,即t=0时,设置一个相对乐观的初始值 Q t = 0 ( a ) Q_{t=0}(a) Qt=0(a),鼓励决策器尽量多得对所有动作进行探索。这是一个比较实用的小技巧。

例如,上面4摇臂赌博机,假设所有摇臂奖金期望值均小于10,不妨设置一个很乐观的初始值 Q t = 0 ( a ) = 100 Q_{t=0}(a)=100 Qt=0(a)=100。随着后面的不断尝试,被探索次数越多的摇臂的价值函数下降得越快,被探索次数少的摇臂价值函数保持相对较高的水平,从而在贪心思想的驱动下,被探索次数少的摇臂后期会以较大概率 P P P被探索。对于贪心算法 P = 1 P=1 P=1;对于 ϵ \epsilon ϵ贪心算法, P = 1 − ϵ + ϵ ∣ A ∣ P=1 - \epsilon + \frac{\epsilon}{|A|} P=1ϵ+Aϵ

相反,如果初始值设置的相对较低,被探索次数越多的摇臂的价值函数上升得越快,被探索次数少的摇臂价值函数依然维持在相对较低的水平,那么被探索次数少的摇臂后期会以较小概率( P = ϵ ∣ A ∣ P=\frac{\epsilon}{|A|} P=Aϵ)被探索,甚至没有机会被探索。

基于置信度上界的动作选择

A t = . arg max ⁡ a [ Q t ( a ) + ln t N t ( a ) ] A_t \overset{.}{=} \argmax_a \bigg\lbrack Q_t(a) + \sqrt{\frac{\text{ln} t}{N_t(a)}} \bigg\rbrack At=.aargmax[Qt(a)+Nt(a)lnt ]

梯度赌博机算法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值