一个论点是,我们通常先验地不知道 RL 问题的最佳解决方案是什么。因此,通过调整奖励函数,我们可能会使代理偏向于我们认为最好的方法,而实际上解决原始问题并不是最优的。
这是主要问题。
我错过了什么吗?
我认为您错过了设置奖励功能的要点。它应该是通过代理实现其设定的目标而最大化的值。每次更改奖励函数时,您都可能明确设置新的不同目标。
不应将更改奖励函数与监督学习中的特征工程进行比较。相反,奖励函数的改变更类似于改变目标函数(例如从交叉熵到最小二乘,或者可能通过不同的加权记录)或选择度量(例如从准确度到 f1 分数)。这些变化可能是有效的,但对特征工程有不同的动机。
调整奖励函数也称为奖励塑造,有时它可以产生良好的效果。它确实具有与上述相同的风险,但如果小心操作,它可以提高学习率。例如,如果要实现主要目标 A,绝对有必要实现 B 和 C 作为中间步骤,那么奖励实现 B 和 C 应该是可以的——通常你需要担心的是是否有可能代理通过状态循环重复实现 B 或 C - 因此您可能需要将其是否已达到 B 或 C 的次数添加到状态向量中,并且仅对第一次访问 B 和 C给予奖励。
特征工程在 RL 中仍然存在,并且是关于如何表示状态和动作空间。例如,在智能体需要靠近移动目标的追逐场景中,您应该发现将状态表示为目标与当前智能体位置的极坐标比学习最优策略要容易得多。您将状态表示为代理和目标的笛卡尔坐标。