ϵ-greedy算法

ϵ-greedy算法的简介和理解

Posted by Zhao Zihao on January 28, 2021

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

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

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

在玩游戏时,我们会跟踪每台机器的平均收益。然后,选择当前平均收益最高的机器,概率为( 1 – ϵ ) + ( ϵ / k ) ,其中epsilon是一个很小的值,例如0.10。然后,我们选择的机器的当前支出平均值不是最高,概率为ϵ / 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。假设ϵ 设置为0.10。如果p > 0.10 (有90%的机会),则选择2号机器,因为它具有当前最高的平均支出。但是,如果p < 0.10(只有10%的机会),则选择一台随机计算机,因此每台计算机都有1/3的机会被选中。请注意,由于是从所有计算机中随机选择的,因此2号计算机仍可能会被选择。

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

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

部分翻译于 The Epsilon-Greedy Algorithm – James D.McCaffrey