强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码
1.K摇臂赌博机模型
K-摇臂赌博机(MAB,Multi-armed Bandit)是一种单步强化学习任务理论模型。K-摇臂赌博机有k个摇臂,投入一枚硬币后,按下其中一个摇臂,每个摇臂会以一定的概率吐出硬币作为回报,但是这个概率是未知的,需要通过一定的策略实现回报最大化。
2.仅探索和仅利用
仅探索(exploration-only)
,探索各个摇臂的奖赏均值,以相同的概率选择每一个摇臂;
仅利用(exploitation-only)
,每次选择当前平均奖赏最大的摇臂。
探索和利用两者之间是相互矛盾的,由于总的尝试次数是有限的,采用“探索”则无法每次选择最优的选项,选择“利用”则无法发现可能潜在的更优的选项,这就是强化学习中的“探索-利用窘境(Exploration-Exploitation dilemma)”所以要实现累积回报最大化,需要在“探索”和“利用”之间达到一个较好的折中。
3.epsilon greedy与softmax算法
(1)epsilon贪心算法
: 每次决策时,以概率e进行仅探索(以均匀的概率随机选择一个摇臂);以概率1-e进行仅利用(选择目前为止平均奖赏最大的摇臂)
(2)softmax算法
: 每次决策时,先计算所有摇臂的平均奖赏的softmax值,然后以这个值为摇臂的概率来选择摇臂。其中有个τ值,用来控制倾向于探索或利用的程度。
4.Python 代码
1.设置摇臂arm数目