本文将对 AWS Deepracer model 的超参进行介绍,并分享个人在使用时的一些经验,由于本人刚入坑不久,经验有限,本文所说仅供参考,如有错误请联系我及时更正。
超参数 (Hyperparameters)
超参数是控制强化学习训练 的变量。可以调整它们以优化训练时间 和模型性能 。
梯度下降批量大小(Gradient descent batch size)
从经验缓冲区中随机采样的近期车辆经验数量,用于更新底层深度学习神经网络权重。随机抽样有助于减少输入数据中固有的相关性。使用更大的批量大小来促进对神经网络权重的更稳定和平滑的更新,但要注意训练时间可能更长或更慢的可能性。
该批次是体验缓冲区的子集,由安装在 AWS DeepRacer 车辆上的摄像头捕获的图像和车辆采取的操作组成。 默认值是64 ,建议迭代时,第一次可以选择大一点,使曲线快速收敛。
时代数 (Number of epochs)
在梯度下降期间通过训练数据更新神经网络权重的次数。训练数据对应于经验缓冲区中的随机样本。使用更多的 epoch 来促进更稳定的更新,但预计训练速度会更慢。当批量较小时,您可以使用较少数量的 epoch。 这个值我没有改过,都是选择的默认值。
学习率(Learning rate)
在每次更新期间,新权重的一部分可以来自梯度下降(或上升)贡献,其余来自现有权重值。学习率控制梯度下降(或上升)更新对网络权重的贡献。使用更高的学习率来包括更多的梯度下降贡献以加快训练速度,但要注意如果学习率太大,预期奖励可能不会收敛。 学习率是用来控制学习的步长,太大时在最终可能出现抖动,建议首次迭代可以选择大一点,便于使损失函数快速降低,后面选择小一点,便于收敛
熵(Entropy)
用于确定何时向策略分布添加随机性的不确定性程度。增加的不确定性有助于 AWS DeepRacer 车辆更广泛地探索行动空间。更大的熵值鼓励车辆更彻底地探索动作空间。
折扣系数(Discount factor)
折扣因子确定在计算给定状态的奖励时对未来奖励的折扣程度,作为所有未来状态的平均奖励。折扣因子 0 表示当前状态与未来步骤无关,而折扣因子 1 表示包括所有未来步骤的贡献。折扣因子为 0.9 时,给定步骤的预期奖励包括来自未来 10 个步骤的奖励。使用 0.999 的折扣因子,预期奖励包括来自 1000 个未来步骤的奖励。
损失类型(Loss type)
更新网络权重的目标函数的类型。一个好的训练算法应该对车辆的策略进行增量更改,使其逐渐从采取随机行动过渡到采取战略行动以增加奖励。但是如果改变太大,那么训练就会变得不稳定,代理最终不会学习。 Huber 和均方误差损失类型对于小更新的行为类似。但是随着更新变大,与均方误差损失相比,Huber 损失的增量更小。当您遇到收敛问题时,请使用 Huber 损失类型。当收敛良好并且您想更快地训练时,请使用均方误差损失类型。
每次策略更新迭代之间的经验集数(Number of experience episodes between each policy-updating iteration)
用于从学习策略网络权重中提取训练数据的经验缓冲区的大小。情节是车辆从给定起点开始并最终完成轨道或离开轨道的时期。不同的情节可以有不同的长度。对于简单的强化学习问题,一个小的经验缓冲区可能就足够了,学习会很快。对于具有更多局部最大值的更复杂问题,需要更大的经验缓冲区来提供更多不相关的数据点。在这种情况下,训练会更慢但更稳定。推荐值为 10、20 和 40。
SAC α (α) 值 (SAC alpha (α) value)
大多数算法的目标函数只关注最大化总回报。 SAC 的目标函数最大化熵(随机性)和总回报。这会鼓励您的智能体在寻找奖励的同时继续探索,这有助于它成为终身学习者并防止过度拟合。 alpha 值加权熵的重要性。较高的 α 值鼓励代理采取更随机的行动。
训练参数
速度范围:
可选择范围:[0.5,4]
转弯角度
选择范围:[-30,30]
强化学习算法
默认选择 PPO
训练时长
范围:·[5,1440]`
总结以及建议
我在实践中一般首次选择的参数是: batch size:256 learning rate: 0.0004 speed:[0.5,4] Reinforcement learning algorithm: PPO train time:30min
后面迭代时: batch size:128 或者 64 learning rate: 0.0003 或者 0.0002 speed:[0.5,4] Reinforcement learning algorithm: PPO train time:30min
|