Q-learning中的迭代和奖励

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


回答:

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

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

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

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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