在 Q 学习中使用 softmax 函数不会违背 Q 学习的目的吗?

人工智能 强化学习 q学习
2021-10-26 03:46:10

我的理解是,在 Q-learning 中,你试图模仿最优的Q功能Q, 在哪里Q是对从采取行动中获得的预测奖励的度量a在状态s使奖励最大化。

我知道要正确计算这一点,您必须探索所有可能的游戏状态,而这显然是难以处理的,因此使用神经网络来近似此函数。

在正常情况下,网络会根据收到的实际奖励的 MSE 和网络预测的奖励进行更新。因此,一个旨在选择移动方向的简单网络将为整个游戏的所有状态预测接收正梯度,并从那里执行正常的反向传播步骤。

然而,对我来说,让网络的最后一层成为某些游戏的 softmax 函数是很直观的。这是因为在很多情况下(例如围棋),每个游戏状态只能选择一个“移动”,因此,只有一个神经元应该是活跃的。在我看来,梯度更新也可以很好地工作,并且网络会适当地学习。

但这里最大的问题是,这不再是 Q 学习。网络不再预测每个可能动作的奖励,它现在预测哪个动作可能给出最大的奖励。

我对 Q 学习的假设错了吗?Q学习中是否使用了softmax函数?

2个回答

然而,对我来说,让网络的最后一层成为某些游戏的 softmax 函数是很直观的。这是因为在很多情况下(例如围棋),每个游戏状态只能选择一个“移动”,因此,只有一个神经元应该处于活动状态。

您正在描述一个近似为策略函数的网络,π(a|s),对于一组离散的动作。

在我看来,梯度更新也可以很好地工作,并且网络会适当地学习。

是的,有一些方法可以做到这一点,基于策略梯度定理如果您阅读它,您可能会发现这比您最初想象的要复杂得多,问题是代理永远不会被直接告知“最佳”动作是什么,以便以有监督的方式简单地学习。相反,它必须从行动时观察到的奖励中推断出来。这比从贝尔曼最优方程中采样的 Q 学习更新规则更难弄清楚。

您可以将强化学习方法大致分为基于值的方法和策略梯度方法。Q learning 是一种基于值的方法,而 REINFORCE 是一种基本的策略梯度方法。策略梯度方法中使用基于值的方法也很常见,以帮助估计用于驱动策略梯度更新的可能未来回报 - 这种组合称为 Actor-Critic ,其中参与者学习策略函数π(a|s)评论家学习价值函数,例如V(s).

但这里最大的问题是,这不再是 Q 学习。网络不再预测每个可能动作的奖励,它现在预测哪个动作可能给出最大的奖励。

这是事实,但这不是一个大问题。主要问题是策略梯度方法比基于值的方法更复杂。它们可能会或可能不会更有效,这取决于您尝试为其创建最佳代理的环境。

Q学习中是否使用了softmax函数?

我想不出任何非人为的环境,在这种环境中,这个函数对于动作值近似是有用的。

但是,可以使用 softmax 的变体来创建 Q 学习的行为策略。这使用温度超参数T对 Q 值进行加权,并提供选择动作的概率,如下所示

π(ai|s)=eQ(s,ai)/TjeQ(s,aj)/T

什么时候T高时所有动作的概率都是相似的,低时即使是很小的差异Q(s,ai)将对选择行动的概率产生很大影响ai. 这是一个很好的探索分布,同时避免了以前的错误决定。它将倾向于让代理专注于探索类似的高评分动作之间的差异。它的主要问题是它引入了超参数来决定开始T, 结尾T以及如何在它们之间移动。

这仍然是 Q-learning,记住 Q-learning 是 off-policy value-based。对于贝尔曼最优算子 TQ=r+max Q. 如果你有足够的探索,它总是需要Q到最优不动点。