epsilon-greedy策略
Epsilon-greedy是一种平衡探索(exploration)和利用(exploitation)的策略:
- 探索(Exploration):以ε的概率随机选择动作,以便发现可能更好的策略
- 利用(Exploitation):以(1-ε)的概率选择当前认为最优的动作
例如,epsilon=0.2,意味着20%的概率随机选择动作(探索),80%的概率根据当前Q网络选择最优动作。
如果说epsilon的值在训练初期比较高,意味着这里面侧重于探索。而epsilon的值在训练初期比较低,那么这里面侧重于利用已学到的策略。
设置方式
动态还是静态?
在实践中,epsilon-greedy 策略通过在每个决策步骤中生成一个随机数来工作。如果该数字小于 ε,则智能体选择一个随机动作;否则,它会根据其当前知识遵循最佳动作。
例如,想象一个机器人在迷宫中导航:最初,它可能会探索不同的路径(高 ε),但逐渐转向使用已知的最短路径(低 ε)。一个常见的实现包括从较高的 ε 值开始,以鼓励在训练早期进行探索,然后随着智能体学习,随着时间的推移降低 ε(例如,通过衰减计划)以优先考虑利用。
这种平衡至关重要,因为纯粹的利用可能会错过更好的策略,而纯粹的探索会将时间浪费在已知的糟糕选择上。
如何设置
在推荐系统中,ε 可以决定何时向用户展示新内容(探索)与已被证明的流行项目(利用)。然而,ε 的选择对性能有重大影响:太高,智能体学习缓慢;太低,它可能会错过最佳解决方案。高级变体,例如衰减 ε 或将其与其他探索策略(例如,上限置信区间)相结合,可以解决这些权衡。尽管存在局限性(例如在大动作空间中效率低下),但 epsilon-greedy 方法由于其清晰性和适应性,仍然是强化学习中的一种基本方法。
Reward波动
波动较大的原因
一般,average reward,即episode/average reward的值波动如果较大,原因有两点,一点是环境复杂度较高,第二是超参数设置不够理想。
解决方案
尝试减小epsilon的衰减速度,让智能体更早地采用学到的策略。
调整gamma(折扣因子),看看是否能够改善长期奖励的累积。
Reward后期停滞
停滞的原因
可能陷入了局部最优解,或者探索不足。
改善方法
1、增加replay_buffer的容量,提供更多样化的经验供学习。
2、尝试使用不同的探索策略,比如增加噪声,或者使用更复杂的HER目标生成方法。
Loss波动
原因
可能是数据分布不稳定,或者网络结构不够深。
建议
检查输入数据的预处理步骤,确保数据标准化和归一化正确。
尝试增加网络层数或调整隐藏层大小,看看是否能提高拟合能力
怎么实验
设计一些对比实验,来验证不同超参数对模型性能的影响:
- 不同
epsilon
衰减速度:比如epsilon_decay=0.99
vsepsilon_decay=0.999
。 - 不同
gamma
值:比如gamma=0.9
vsgamma=0.99
。 - 不同
replay_buffer
容量:比如buffer_size=10000
vsbuffer_size=50000
。
2. 记录日志
每次实验后,记得记录下使用的超参数和对应的训练结果,方便后续分析和复现。