蒙特卡洛方法与时序差分学习
在深入研究 Q 学习之前,我们需要讨论的最后一件事是两种学习策略。
请记住,强化学习智能体**通过与其环境交互来学习**。其思想是**在给定经验和获得的奖励后,智能体将更新其价值函数或策略**。
蒙特卡洛方法和时序差分学习是**训练价值函数或策略函数的两种不同的策略**。它们都**使用经验来解决强化学习问题**。
一方面,蒙特卡洛方法**在学习之前使用整个情节的经验**。另一方面,时序差分学习**只使用一步( ) 来学习**。
我们将**使用基于价值的方法示例**来解释两者。
蒙特卡洛方法:在情节结束时学习
蒙特卡洛方法等到情节结束,计算(回报)并将其用作**更新 的目标**。
因此,它需要**在更新价值函数之前完成一个情节的交互**。
如果我们举个例子
我们总是从**相同的起点开始情节**。
**智能体使用策略采取行动**。例如,使用 Epsilon Greedy 策略,这是一种在探索(随机动作)和利用之间交替的策略。
我们获得**奖励和下一个状态**。
如果猫吃了老鼠或老鼠移动了 > 10 步,则终止情节。
在情节结束时,**我们得到一个状态、动作、奖励和下一个状态元组列表**。例如 [[状态:底部第 3 格,向左移动,+1,状态:底部第 2 格],[状态:底部第 2 格,向左移动,+0,状态:底部第 1 格]…]
智能体将对总奖励进行求和(以查看其表现如何)。
然后,它将根据公式更新
然后使用这些新知识开始新游戏
通过运行越来越多的回合,智能体将学会玩得越来越好。
例如,如果我们使用蒙特卡洛方法训练状态值函数
我们将初始化我们的值函数,使其对每个状态返回0值
我们的学习率(lr)为0.1,折扣率为1(=不折扣)
我们的鼠标探索环境并采取随机动作
鼠标走了超过10步,所以回合结束。
我们有一个状态、动作、奖励、下一状态的列表,我们需要计算回报(为简单起见,我们不折扣奖励)
我们现在可以计算新的
:
时序差分学习:每一步都学习
另一方面,时序差分只等待一个交互(一步) 来形成 TD 目标并更新使用和.
TD 的思想是在每一步更新 。
但因为我们没有经历整个情节,所以我们没有(预期回报)。相反,我们通过添加 和下一个状态的折扣值来估计 。
这被称为**引导学习(bootstrapping)**。之所以这样称呼,**是因为TD部分地基于现有的估计值进行更新,而不是一个完整的样本.**
这种方法被称为TD(0)或**一步TD(在任何单个步骤之后更新价值函数)**。
如果我们以同样的例子为例,
我们将价值函数初始化,使其对每个状态返回0值。
我们的学习率(lr)为0.1,折扣率为1(无折扣)。
我们的老鼠开始探索环境并采取随机动作:**向左走**
它获得了一个奖励因为它吃了一块奶酪
现在我们可以更新
:新的
新的
新的
因此,我们刚刚更新了状态0的价值函数。
现在我们**继续使用更新后的价值函数与该环境交互。**
总结一下
使用蒙特卡洛方法,我们根据完整的一轮episode更新价值函数,因此我们**使用该episode的实际准确折扣回报**。
使用TD学习,我们根据一个步骤更新价值函数,并且我们用称为TD目标的估计回报来替换,我们并不知道。