[RL Notes] 乐观初始值

1. 乐观初始值

  在前文提到的学习算法中,如果一个动作 $a$ 从未被选择过,我们就无法根据历史数据去估计该动作的价值 $Q_t(a)$,此时需要为动作价值的估计设置一个初始值 $Q_1(a)$。这使得每个动作价值估计的初始值变成了一个需要配置的参数,通过选择合适的初始值,可以对试探和开发进行平衡。

  使用乐观的初始值有利于试探。如果动作价值估计的初始值大于动作的真实价值,则在学习的初期,选择任何动作的收益都会小于动作的价值估计,导致该动作的价值估计变小,促使学习器在后续时刻选择其他动作。

  使用前文的 10 臂测试平台,比较使用乐观初始值的贪心算法($Q_1 = 5$)和 $\varepsilon$ – 贪心算法($\varepsilon = 0,1$)如图 1、图 2。

图 1

图 2

  可见乐观初始值方法在初期的效果较差,因为它会进行更多的试探,这些试探有助于学习器更准确地对动作的价值进行估计,从而在长期上带来更好的效果。

2. 乐观初始值的问题

  使用乐观初始值并不是平衡试探和开发的最佳方法。乐观初始值只有助于在学习的初期进行更多的试探,这在平稳问题中非常有效。但如果问题是非平稳的,则任何仅关注初始状态的方法都难以生效。

  使用乐观初始值的另一个问题是,我们可能并不知道要把初始值设置为多大才算是“乐观”的。如果我们不知道收益的最大值,也就无从定义“乐观”的值究竟应该是多大。