在Q-learning中,代理会采取行动直到达到其目标。算法会被执行多次直到达到收敛。例如,目标是获得最大吞吐量直到时间模拟结束。模拟时间被分为n个相等的周期T,奖励随时间变化。因此,代理会在每个周期开始时更新其状态n次。在这种情况下,n被认为是步骤数还是迭代次数?此外,Q值的更新是在执行选定动作之后还是之前进行的(使用奖励函数,它是对真实奖励的近似)?
回答:
首先,您应该知道,在强化学习中存在两种任务类型,一种是代理-环境交互自然分解为一系列独立情节的任务(情节性任务),另一种是没有这种分解的任务(持续性任务) [Sutton书籍参考]。
代理的目标是最大化它接收到的总奖励(在模拟中或在真实环境中)。这意味着最大化不是即时奖励,而是长期的累积奖励。
在情节性任务的情况下,每个情节通常具有不同的持续时间(例如,如果每个情节是一场国际象棋游戏,每场游戏通常以不同的移动次数结束)。
奖励函数不会改变,但代理接收到的奖励会根据其采取的行动而变化。在Q-learning算法中,代理在每一步之后(而不是在每个周期/情节开始时)更新Q函数。
根据您的定义,n
被认为是每个情节的步骤数(这可能因情节而异,如前所述)。总步骤数是所有情节中n
的总和。术语“迭代”在一些论文/书籍中可能指的是情节的数量,因此需要了解上下文。
Q函数的更新是在执行选定动作之后进行的。请注意,代理需要执行当前动作才能观察到奖励和下一个状态。
奖励函数不是真实奖励的近似。没有所谓的真实奖励。奖励函数是由用户设计的,用来“告诉”代理目标是什么。关于这个话题,可以再次参考Sutton和Barto的书:第3.2节 目标和奖励。