Multi-armed bandit problem
强化学习和其它的学习算法的不同之处在于对动作的评价,其它的学习算法如监督学习、神经网络等不去评价或者度量动作的价值,而是直接被“教”去做最好的动作。强化学习是主动地评价动作而不是被“教”怎么去做动作;监督学习是被“教”怎么做动作而不是评价动作的价值。
k臂赌博机是一个非关联(nonassociative)问题,即不考虑在不同的情况下做动作,也就是只有一种情况。而一般的强化学习问题都是关联(associative)问题,即考虑在不同的情形(也就是状态sss)下做动作。
k-armed bandit problem
k臂赌博机问题为:
智能体(agent)需要不断的选择赌博机的kkk个摇杆(对应智能体的kkk个动作)中的一个,在选择了一个摇杆之后(一次只能选择一个摇杆),智能体会因为它的选择而得到和这个摇杆相关联的回报,智能体不知道哪个摇杆是最好的选择,但它的目标是在选择摇杆的过程结束后(如智能体可以选择1000次),自己得到最多的回报。
设智能体做出的每个动作(做动作来选择赌博机的摇杆)都对应一个固定期望的回报。我们称这个回报为智能体动作aaa的价值。设智能体在时间步ttt做的动作为AtA_tAt,这个动作对应的摇杆的回报为RtR_tRt,则任意一个动作aaa的价值为:
q∗(a)≐E[Rt∣At=a].(1)
q_*(a) \doteq E[R_t|A_t = a]. \tag{1}
q∗(a)≐E[Rt∣At=a].(1)
但是智能体不知道动作的价值啊!! 没有办法,智能体只能估计它做的动作的价值,来提高它的回报。设智能体对动作aaa的价值的估计值为Qt(a)Q_t(a)Qt(a), 我们当然希望Qt(a)Q_t(a)Qt(a)能够尽可能地接近q∗(a)q_*(a)q∗(a),只有估计的准确,我们才能对动作的价值做出准确的评价,才能得到更多的回报。
那么如何准确估计每一个动作的价值呢?这就涉及到探索(exploration)和利用(exploitation)的问题。如果智能体坐井观天,只利用现有的对动作的价值的估计,即一直做它认为的最有价值的动作(不一定真的最有价值),我们称为这个动作为贪婪动作(greedy action),那么最后智能体得到的回报一定不多;如果智能体很“积极”,一直去尝试非贪婪动作(nongreedy action),最后的回报也不多,因为最有价值的动作不多,智能体的大量的时间都用在了没有价值的动作上。这是一个两难困境。
upper-confidence bound(UCB) action selection
那么怎么处理这个困境呢?有人提出了智能体按照这个原则来选取动作的方法[?]:
At≐argmaxa[Qt(a)+clntNt(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}
At≐aargmax[Qt(a)+cNt(a)lnt](2)
Nt(a)N_t(a)Nt(a)表示在时间ttt之前智能体做动作aaa的次数,ccc用来控制智能体探索的程度。如果Nt(a)=0N_t(a) = 0Nt(a)=0,那么视动作aaa的价值为最大。
对式(2)的理解:
UCB的思想在于式(2)的平方根项是动作aaa的不确定性的度量,式(2)中被最大化的是动作aaa的可能的价值的一种上界(→\rightarrow→这是原文的生涩翻译),ccc确定了置信程度。每当动作aaa被智能体选择,Nt(a)N_t(a)Nt(a)会加1,ttt也会增加,但是这是lnt\ln{t}lnt函数,它增加的没有分母快,Qt(a)Q_t(a)Qt(a)是对动作q∗(a)q_*(a)q∗(a)的估计,它变化不大,所以方括号内的值整体是下降的;当动作aaa没有被智能体选择,则Nt(a)N_t(a)Nt(a)不变,lnt\ln{t}lnt增加,则下次动作aaa被智能体选择的机会增加。最后,智能体会偏向选择这些动作:
- Qt(a)Q_t(a)Qt(a)大的,说明这个动作对于智能体来说很有吸引力,没有办法,这是动作aaa的实力(选择动作aaa智能体确实可以得到更多的回报)
- clntNt(a)c\sqrt{\frac{\ln{t}}{N_t(a)}}cNt(a)lnt大的动作,这说明动作aaa长期没有被选择,所以该选择这个动作来探索,万一这是个宝藏动作呢。
Gradient Bandit Algorithms
UBC是一个估计动作价值并根据动作的价值做出动作的方法,但是它不是唯一的方法。本节介绍另一个方法:Gradient Bandit Algorithms。
在本节中,每个动作aaa对应一个智能体的偏爱(preference)值,我们称之为Ht(a)H_t(a)Ht(a). 这个偏爱值越大,智能体越可能选择这个偏爱值对应的动作,这个偏爱值不是回报,对于智能体来说只有偏爱值之间的相对大小才有意义。
智能体根Ht(a)H_t(a)Ht(a)选择动作的依据为:
Pr{At=a}≐eHt(a)∑b=1keHt(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)表示在时间ttt做动作aaa的概率。更新Ht(a)H_t(a)Ht(a)的方式是随机梯度下降算法
Ht+1(At)≐Ht(At)+α(Rt−Rtˉ)(1−πt(At))andHt+1(a)≐Ht(a)−α(Rt−Rtˉ)πt(a)∀a≠At(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)+α(Rt−Rtˉ)(1−πt(At))andHt+1(a)≐Ht(a)−α(Rt−Rtˉ)πt(a)∀a=At(4)
其中,Rtˉ\bar{R_t}Rtˉ表示平均回报,它是一个基准,如果动作aaa的回报RtR_tRt大于Rtˉ\bar{R_t}Rtˉ,则智能体下次做动作aaa的概率增加,否则减小。智能体没有做的动作的偏爱会朝着与aaa相反的方向改变。(4)式的推导过程在reinforcement learning:An introduction中有。
本文围绕多臂赌博机问题展开,介绍了强化学习与其他学习算法在动作评价上的差异。阐述了k臂赌博机问题,即智能体选择摇杆以获最大回报,涉及探索与利用的困境。还介绍了上置信界(UCB)动作选择方法和梯度赌博机算法来解决该问题。
1077

被折叠的 条评论
为什么被折叠?



