(基础)AWS Deepracer model 超参介绍 - 006

2021/10/15 6:17:50

本文主要是介绍(基础)AWS Deepracer model 超参介绍 - 006,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本文将对 AWS Deepracer model 的超参进行介绍,并分享个人在使用时的一些经验,由于本人刚入坑不久,经验有限,本文所说仅供参考,如有错误请联系我及时更正。

文章目录

  • 超参数 (Hyperparameters)
    • 梯度下降批量大小(Gradient descent batch size)
    • 时代数 (Number of epochs)
    • 学习率(Learning rate)
    • 熵(Entropy)
    • 折扣系数(Discount factor)
    • 损失类型(Loss type)
    • 每次策略更新迭代之间的经验集数(Number of experience episodes between each policy-updating iteration)
    • SAC α (α) 值 (SAC alpha (α) value)
  • 训练参数
    • 速度范围:
    • 转弯角度
    • 强化学习算法
    • 训练时长
  • 总结以及建议

超参数 (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



这篇关于(基础)AWS Deepracer model 超参介绍 - 006的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程