reinforcement leanrning : an introduction 第二章

Multi-armed bandit problem

强化学习和其它的学习算法的不同之处在于对动作的评价,其它的学习算法如监督学习、神经网络等不去评价或者度量动作的价值,而是直接被“教”去做最好的动作。强化学习是主动地评价动作而不是被“教”怎么去做动作;监督学习是被“教”怎么做动作而不是评价动作的价值。

k臂赌博机是一个非关联(nonassociative)问题,即不考虑在不同的情况下做动作,也就是只有一种情况。而一般的强化学习问题都是关联(associative)问题,即考虑在不同的情形(也就是状态 s s s)下做动作。

k-armed bandit problem

k臂赌博机问题为:
智能体(agent)需要不断的选择赌博机的 k k k个摇杆(对应智能体的 k k k个动作)中的一个,在选择了一个摇杆之后(一次只能选择一个摇杆),智能体会因为它的选择而得到和这个摇杆相关联的回报,智能体不知道哪个摇杆是最好的选择,但它的目标是在选择摇杆的过程结束后(如智能体可以选择1000次),自己得到最多的回报。

设智能体做出的每个动作(做动作来选择赌博机的摇杆)都对应一个固定期望的回报。我们称这个回报为智能体动作 a a a价值。设智能体在时间步 t t t做的动作为 A t A_t At,这个动作对应的摇杆的回报为 R t R_t Rt,则任意一个动作 a a a的价值为:
q ∗ ( a ) ≐ E [ R t ∣ A t = a ] . (1) q_*(a) \doteq E[R_t|A_t = a]. \tag{1} q(a)E[RtAt=a].(1)
但是智能体不知道动作的价值啊!! 没有办法,智能体只能估计它做的动作的价值,来提高它的回报。设智能体对动作 a a a的价值的估计值为 Q t ( a ) Q_t(a) Qt(a), 我们当然希望 Q t ( a ) Q_t(a) Qt(a)能够尽可能地接近 q ∗ ( a ) q_*(a) q(a),只有估计的准确,我们才能对动作的价值做出准确的评价,才能得到更多的回报。

那么如何准确估计每一个动作的价值呢?这就涉及到探索(exploration)利用(exploitation)的问题。如果智能体坐井观天,只利用现有的对动作的价值的估计,即一直做它认为的最有价值的动作(不一定真的最有价值),我们称为这个动作为贪婪动作(greedy action),那么最后智能体得到的回报一定不多;如果智能体很“积极”,一直去尝试非贪婪动作(nongreedy action),最后的回报也不多,因为最有价值的动作不多,智能体的大量的时间都用在了没有价值的动作上。这是一个两难困境

upper-confidence bound(UCB) action selection

那么怎么处理这个困境呢?有人提出了智能体按照这个原则来选取动作的方法[?]:
A t ≐ arg ⁡ max ⁡ a [ Q t ( a ) + c ln ⁡ t N t ( a ) ] (2) A_t \doteq \mathop{\arg\max}\limits_{a} \left[Q_t(a)+c\sqrt{\frac{\ln{t}}{N_t(a)}}\right] \tag{2} Ataargmax[Qt(a)+cNt(a)lnt ](2)
N t ( a ) N_t(a) Nt(a)表示在时间 t t t之前智能体做动作 a a a的次数, c c c用来控制智能体探索的程度。如果 N t ( a ) = 0 N_t(a) = 0 Nt(a)=0,那么视动作 a a a的价值为最大。
对式(2)的理解:
UCB的思想在于式(2)的平方根项是动作 a a a的不确定性的度量,式(2)中被最大化的是动作 a a a的可能的价值的一种上界( → \rightarrow 这是原文的生涩翻译), c c c确定了置信程度。每当动作 a a a被智能体选择, N t ( a ) N_t(a) Nt(a)会加1, t t t也会增加,但是这是 ln ⁡ t \ln{t} lnt函数,它增加的没有分母快, Q t ( a ) Q_t(a) Qt(a)是对动作 q ∗ ( a ) q_*(a) q(a)的估计,它变化不大,所以方括号内的值整体是下降的;当动作 a a a没有被智能体选择,则 N t ( a ) N_t(a) Nt(a)不变, ln ⁡ t \ln{t} lnt增加,则下次动作 a a a被智能体选择的机会增加。最后,智能体会偏向选择这些动作:

  • Q t ( a ) Q_t(a) Qt(a)大的,说明这个动作对于智能体来说很有吸引力,没有办法,这是动作 a a a的实力(选择动作 a a a智能体确实可以得到更多的回报)
  • c ln ⁡ t N t ( a ) c\sqrt{\frac{\ln{t}}{N_t(a)}} cNt(a)lnt 大的动作,这说明动作 a a a长期没有被选择,所以该选择这个动作来探索,万一这是个宝藏动作呢。

Gradient Bandit Algorithms

UBC是一个估计动作价值并根据动作的价值做出动作的方法,但是它不是唯一的方法。本节介绍另一个方法:Gradient Bandit Algorithms。
在本节中,每个动作 a a a对应一个智能体的偏爱(preference)值,我们称之为 H t ( a ) H_t(a) Ht(a). 这个偏爱值越大,智能体越可能选择这个偏爱值对应的动作,这个偏爱值不是回报,对于智能体来说只有偏爱值之间的相对大小才有意义。

智能体根 H t ( a ) H_t(a) Ht(a)选择动作的依据为:
P r { A t = a } ≐ e H t ( a ) ∑ b = 1 k e H t ( b ) ≐ π t ( a ) (3) Pr\{A_t = a\} \doteq \frac{e^{H_t(a)}}{\sum_{b=1}^{k}e^{H_t(b)}} \doteq \pi_t(a) \tag{3} Pr{At=a}b=1keHt(b)eHt(a)πt(a)(3)
其中, π t ( a ) \pi_t(a) πt(a)表示在时间 t t t做动作 a a a的概率。更新 H t ( a ) H_t(a) Ht(a)的方式是随机梯度下降算法
H t + 1 ( A t ) ≐ H t ( A t ) + α ( R t − R t ˉ ) ( 1 − π t ( A t ) ) a n d H t + 1 ( a ) ≐ H t ( a ) − α ( R t − R t ˉ ) π t ( a ) ∀ a ≠ A t (4) H_{t+1}(A_t) \doteq H_t(A_t) + \alpha (R_t - \bar{R_t})(1 - \pi_t(A_t)) \quad and\\ H_{t+1}(a) \doteq H_t(a) - \alpha (R_t - \bar{R_t})\pi_t(a) \quad \forall a \neq A_t \tag{4} Ht+1(At)Ht(At)+α(RtRtˉ)(1πt(At))andHt+1(a)Ht(a)α(RtRtˉ)πt(a)a=At(4)
其中, R t ˉ \bar{R_t} Rtˉ表示平均回报,它是一个基准,如果动作 a a a的回报 R t R_t Rt大于 R t ˉ \bar{R_t} Rtˉ,则智能体下次做动作 a a a的概率增加,否则减小。智能体没有做的动作的偏爱会朝着与 a a a相反的方向改变。(4)式的推导过程在reinforcement learning:An introduction中有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值