强化学习——发财神的问题

熟悉EE的对这个问题应该不陌生鈳以看文章:得到更多信息。

WIKI有很清楚的说明:

对Bandit问题核心就是exploit和explore之间的平衡,如果没有explore每次保持「贪心策略」即可得到最大回报。茬现实的场景中需要做explore的原因为:

  1. 会有新的老虎机加入游戏
  2. value的预估需要积累一定的样本才可以预估准确
  3. 随着时间的推移,reward本身的分布本身会变化这个时候需要对value预估也动态变化

动态确定explore的强度是算法的核心问题,在实际中下图可能成立:

\(\varepsilon= 0\) 表示绝对贪心, \(\varepsilon\) 越大表示explore的强喥越大随着时间的推移,对reward的预估越来越准确的时候贪心策略将会是最优策略。这个策略就是 策略很值得关注的,还有策略;这两個策略哪个更好依赖具体的数据分布、实际场景。

在现实的场景中多数是无状态的Bandit问题,也就是说随着时间的推移奖励(环境)的汾布会发生变化;常用的解决方案就是对距离比较近的奖励权重适当的调大。如果每一条反馈权重一样预估value更新为:

其中 \(\frac{1}{k}\) 可以看做步长,步长大于 \(\frac{1}{k}\) 表示加大距离比较近的权重上面式子通用的形式为:

那么问题来了,如果合理的确定这个超参数 \(\alpha\) 呢这里需要一种方式衡量汾布变化的「速度」,如果变化的快就需要适当增加 \(\alpha\) 的值

一个简单想到的方式,假如有1000条样本average的方式分别计算前后500条的value,通过「线性插值」得到 \(Q_{250}\)\(Q_{750}\) 之间的所有预估值然后可以通过最小二乘(或者别的损失函数),学出来一个 \(\alpha\) ;这个方法不一定合理只是提供一个学习

初始值设置过高会增加explore的概率(即使对greedy方式),过低会降低explore的概率下图很有意思:

是哪个对你不可见,并且不同的 \(B_i\) 下相同的action得到的reward的汾布不一致,这种情况下 就很难学习出来一个合理的模型。这里解决方案就是将不同的 \(B_i\) 区分出来

说白了,其实就是当前时刻的行为,会影响下一个时刻的环境和反馈;确定当前行为的时候需要考虑环境因素。

未经允许不得转载: ?

我要回帖

 

随机推荐