Optuna
Deep RL 中有一个重要的任务是找到好的训练超参数。库Optuna 帮助自动化这个搜索。
自动化超参数微调
什么是超参数:是需要手动设置参数,不会通过学习算法本身进行优化,不模型内部的参数不同,超参数是需要在模型开始训练前就设定好。
在强化学习中,常见的超参数包括:
- 学习率 (Learning Rate):控制 Q 网络或策略更新的幅度。
 - 折扣因子 (Discount Factor):决定未来奖励对当前决策的影响程度。
 - 探索率 (Exploration Rate):控制智能体探索环境的程度。
 - 回放缓冲区大小 (Replay Buffer Size):决定存储多少经验样本。
 - 批量大小 (Batch Size):每次更新网络时使用的样本数量。
 - 神经网络结构 (Network Architecture):例如,神经网络的层数和每层的神经元数量。
 - 优化器 (Optimizer):例如,Adam、RMSprop 等。
 - 目标网络更新频率 (Target Network Update Frequency):控制目标 Q 网络更新的频率。
 
为什么要搜索超参数?超参数的选择对强化学习算法的性能有很大影响。不同的超参数值可能导致算法收敛速度、稳定性和最终性能的显著差异。
常见超参数搜索方法:Manual Search,Grid Search, Random Search, Bayesian Optimization,Evolutionary Algorithms, 模拟退火等随机性算法。
自动超参数微调的组件: Sampling && Schedular,
1. Sampler,搜索算法,如何选择采样点?
在搜索空间中搜索最优解的问题。
给定一个搜索空间(也称为解空间或状态空间)和一个目标函数(也称为适应度函数或成本函数),目标是在搜索空间中找到使目标函数达到最大值(或最小值)的解。
本质上是一个优化问题 (Optimization Problem)。
优化问题可表示为:
maximize f(x)   或   minimize f(x)
subject to x ∈ S
x属于搜索空间,找到一个x使得目标函数最大化或最小化。
常见解法:
- 梯度下降 (Gradient Descent):一种基于梯度的优化算法,适用于连续可导的目标函数。
 - 遗传算法 (Genetic Algorithm):一种基于生物进化思想的优化算法,适用于离散和连续优化问题。
 - 粒子群优化 (Particle Swarm Optimization):一种基于鸟群觅食行为的优化算法,适用于连续优化问题。
 - 模拟退火 (Simulated Annealing):一种基于物理退火过程的优化算法,适用于离散和连续优化问题。
 - 贝叶斯优化 (Bayesian Optimization):一种基于贝叶斯模型的优化算法,适用于目标函数评估成本高的问题。
 
2. Schedular, 决定了如何给每一次实验分配预算
有一个平衡 trade-off,“N vs B/n trade-off”
步骤
- 定义搜索空间
 - 定义目标函数,你要优化什么?
 - 选择 Sampler && Schedular
 - 跑起来