强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码

强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码

    • 1.K摇臂赌博机模型
    • 2.仅探索和仅利用
    • 3.epsilon greedy与softmax算法
    • 4.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 代码

Python代码 github链接.

1.设置摇臂arm数目
强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码_第1张图片
2.手动输入摇臂编号进行选择
强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码_第2张图片

3.使用epsilon greedy或softmax算法进行选择
强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码_第3张图片

你可能感兴趣的:(强化学习 K-摇臂赌博机模型 Multi-armed Bandit,Python代码)