为什么奖励工程在 RL 中被认为是“不好的做法”?

数据挖掘 机器学习 强化学习 特征工程
2021-10-12 06:27:02

奖励工程是监督学习的重要组成部分:

提出功能既困难又耗时,需要专业知识。“应用机器学习”基本上是特征工程。— 吴恩达

然而,手动调整奖励函数在 RL 中通常是不受欢迎的。我不确定我明白为什么。

一个论点是,我们通常先验地不知道什么是 RL 问题的最佳解决方案。因此,通过调整奖励函数,我们可能会使代理偏向于我们认为最好的方法,而实际上解决原始问题并不是最优的。这与监督学习不同,监督学习从一开始就知道我们想要优化什么。

另一个论点是,从概念上讲,将问题视为黑匣子更好,因为目标是开发尽可能通用的解决方案。然而,这个论点也可以用于监督学习!

我错过了什么吗?

1个回答

一个论点是,我们通常先验地不知道 RL 问题的最佳解决方案是什么。因此,通过调整奖励函数,我们可能会使代理偏向于我们认为最好的方法,而实际上解决原始问题并不是最优的。

这是主要问题。

我错过了什么吗?

我认为您错过了设置奖励功能的要点。它应该是通过代理实现其设定的目标而最大化的值。每次更改奖励函数时,您都可能明确设置新的不同目标。

不应将更改奖励函数与监督学习中的特征工程进行比较。相反,奖励函数的改变更类似于改变目标函数(例如从交叉熵到最小二乘,或者可能通过不同的加权记录)或选择度量(例如从准确度到 f1 分数)。这些变化可能是有效的,但对特征工程有不同的动机。

调整奖励函数也称为奖励塑造,有时它可以产生良好的效果。它确实具有与上述相同的风险,但如果小心操作,它可以提高学习率。例如,如果要实现主要目标 A,绝对有必要实现 B 和 C 作为中间步骤,那么奖励实现 B 和 C 应该是可以的——通常你需要担心的是是否有可能代理通过状态循环重复实现 B 或 C - 因此您可能需要将其是否已达到 B 或 C 的次数添加到状态向量中,并且仅对第一次访问 B 和 C给予奖励。

特征工程在 RL 中仍然存在,并且是关于如何表示状态和动作空间。例如,在智能体需要靠近移动目标的追逐场景中,您应该发现将状态表示为目标与当前智能体位置的极坐标比学习最优策略要容易得多。您将状态表示为代理和目标的笛卡尔坐标。