n-armed bandit problem

n-armed bandit problem的ε-greedy算法

1、实验的目的

    这个实验的目的是想说明,只要一个action被选择的次数足够多,其Qt(a)就会收敛到Qt*(a),即,该actionaction value。而使用ε-greedy算法,能够最终找到action value最大的那个action

2、仿真实验过程

    首先要明白,凡是仿真,都是要重复实验的,最主要的目的是降低随机性的影响,尽管这个n-armed bandit problem本身就是个随机性问题,但也要通过多次实验求出统计值,消除初值的随机性。因此,选择2000组实验同时进行,每一步计算都取2000组的平均值,就可以看出总体趋势。如果只做一次实验,很有可能由于初始随机选择了一个action,随后就以该值为中心选择,最后可能无法收敛到均值最大的那个action

    本实验假设n=10,经过1000action选择,统计2000个实验的数据。实验过程如下:

1)首先,生成2000(0,1)正态分布的随机数,每组10个,即为每个实验所设定的Qt*(ai)值,并选出每组中的最大值(一个检查策略成功与否的指标就是从统计角度看,是否越往后选择这个最大值的action的概率越大,大到什么程度)。

2)然后开始选择action。初始化的各个actionQt(a)都是0,因此,第一次选择是随机的。被选择的action(例如a)reward是服从(Qt*(a)1)正态分布的随机产生的一个值。Q1(a)就等于reward(a)

3)然后根据ε值选择下一步action。随机产生一个数,小于ε就随机选择一个action;大于ε的话,就选择Qt-1(a)最大的一个action,如果有几个actionQt-1(a)同样最大,最好随机选择一个。同样,被选择的actionreward是服从(Qt*(a)1)正态分布的随机产生的一个值。

4)根据Qt-1(a)估值公式更新被选择的actionQt-1(a),可采用average_reward(action, 1, j) = average_reward(action, 1, j)+(reward-average_reward(action, 1, j))/average_reward(action, 2, j),即:Qt(a)*Tt-1= Qt-1(a)*(Tt+1)+reward来计算。

5)上述过程对2000组分别计算,并对Qt(a)取平均,这里,a不是同一个a,分别是各自组中max(Qt(a))对应的a。因为本身2000组实验是同分布的,所要验证的只是能否获取最大均值的这个趋势,因此是对等的。

6) 计算2000组中已经取得最大值的组数,这个指标应该是递增趋势的,表明行为选择将会收敛到这些最大值。 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值