Epsilon-Greedy算法

Posted 拉风小宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Epsilon-Greedy算法相关的知识,希望对你有一定的参考价值。

翻译自 The Epsilon-Greedy Algorithm – James D.McCaffrey

epsilon-greedy算法(通常使用实际的希腊字母 ϵ \\epsilon ϵ)非常简单,并且在机器学习的多个领域被使用。epsilon-greedy的一种常见用法是所谓的多臂匪徒问题(multi-armed bandit problem)。

假设你站在k = 3台老虎机前面。每台机器都会根据不同的概率分布进行支付,而你不知道这些分布。假设你总共可以玩100次。

你有两个目标。第一个目标是使用一些硬币以尝试确定哪台机器的支出最佳。第二个与此相关的目标是获得尽可能多的钱。术语“ explore”和“ exploit”用于表示您必须使用一些硬币进行探索(explore)才能找到最佳机器,并且你希望在最佳机器上使用尽可能多的硬币来利用(exploit)您的知识。

在玩游戏时,你会跟踪每台机器的平均收益。然后,选择当前平均收益最高的机器,概率为 ( 1 – ϵ ) + ( ϵ / k ) (1 – \\epsilon)+(\\epsilon / k) (1ϵ)+(ϵ/k),其中epsilon是一个很小的值,例如0.10。然后,您选择的机器的当前支出平均值不是最高,概率为 ϵ / k \\epsilon / k ϵ/k

下面我们举个例子。假设在开始我们尝试了12次,为了得到平均收益

  • 其中4次玩1号机器,两次赢得1元,两次赢得0元。1号机器的平均值为 2/4 = 0.50元
  • 5次2号机器,赢得了3次1元和两次0元。2号机器的平均支出为3/5 =0.60元
  • 在3号机上玩了3次,一次赢了1元,两次赢了0元。3号机器的平均支出为1/3 = 0.33元

从第13次开始,你就需要选择一个机器尝试了。首先生成一个介于0.0和1.0之间的随机数p。假设 ϵ \\epsilon ϵ设置为0.10。如果 p > 0.10 p> 0.10 p>0.10(有90%的机会),则选择2号机器,因为它具有当前最高的平均支出。但是,如果 p < 0.10 p <0.10 p<0.10(只有10%的时间),则选择一台随机计算机,因此每台计算机都有1/3的机会被选中。请注意,由于您是从所有计算机中随机选择的,因此2号计算机仍可能会被拾取。

随着时间的流逝,最好的机器会越来越频繁地被选择,因为选择它将得到更多的收益。简而言之, ϵ \\epsilon ϵ贪婪意味着大多数时候都选择当前最佳选项(“贪婪”),但有时选择概率很小的随机选项。

还有许多其他算法可以解决多臂匪徒问题。但是epsilon-greedy非常简单,并且通常比UCB(“upper confidence bound”)等更复杂的算法有更好的效果。

以上是关于Epsilon-Greedy算法的主要内容,如果未能解决你的问题,请参考以下文章

[BZOJ1163&1339]Mafia

9.1强化学习全貌

LR(逻辑回归)算法实现

LR(逻辑回归)算法实现

101.自定义玩家类

101.自定义玩家类