然而,对我来说,让网络的最后一层成为某些游戏的 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)/T∑jeQ(s,aj)/T
什么时候T高时所有动作的概率都是相似的,低时即使是很小的差异Q(s,ai)将对选择行动的概率产生很大影响ai. 这是一个很好的探索分布,同时避免了以前的错误决定。它将倾向于让代理专注于探索类似的高评分动作之间的差异。它的主要问题是它引入了超参数来决定开始T, 结尾T以及如何在它们之间移动。