Q-learning中的迭代和奖励

在Q-learning中,代理会采取行动直到达到其目标。算法会被执行多次直到达到收敛。例如,目标是获得最大吞吐量直到时间模拟结束。模拟时间被分为n个相等的周期T,奖励随时间变化。因此,代理会在每个周期开始时更新其状态n次。在这种情况下,n被认为是步骤数还是迭代次数?此外,Q值的更新是在执行选定动作之后还是之前进行的(使用奖励函数,它是对真实奖励的近似)?


回答:

首先,您应该知道,在强化学习中存在两种任务类型,一种是代理-环境交互自然分解为一系列独立情节的任务(情节性任务),另一种是没有这种分解的任务(持续性任务) [Sutton书籍参考]

代理的目标是最大化它接收到的总奖励(在模拟中或在真实环境中)。这意味着最大化不是即时奖励,而是长期的累积奖励。

在情节性任务的情况下,每个情节通常具有不同的持续时间(例如,如果每个情节是一场国际象棋游戏,每场游戏通常以不同的移动次数结束)。

奖励函数不会改变,但代理接收到的奖励会根据其采取的行动而变化。在Q-learning算法中,代理在每一步之后(而不是在每个周期/情节开始时)更新Q函数。

根据您的定义,n被认为是每个情节的步骤数(这可能因情节而异,如前所述)。总步骤数是所有情节中n的总和。术语“迭代”在一些论文/书籍中可能指的是情节的数量,因此需要了解上下文。

Q函数的更新是在执行选定动作之后进行的。请注意,代理需要执行当前动作才能观察到奖励和下一个状态。

奖励函数不是真实奖励的近似。没有所谓的真实奖励。奖励函数是由用户设计的,用来“告诉”代理目标是什么。关于这个话题,可以再次参考Sutton和Barto的书:第3.2节 目标和奖励

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注