深度强化学习-基于价值的强化学习-TD算法和Q学习(三)

本文主要介绍TD算法和Q学习算法


目录

TD算法:

Q学习算法:

同策略,异策略:


TD算法:

即时间差分 (Temporal Difference):此处用举例子方法来帮助大家理解

1.假设我从天津到郑州,初始预测时间为12个小时(这个时间是初始的,并不那么准确),则有预测时间q=12;有一次我实际开车从天津到郑州只用了9个小时,则有实际时间y=9;由此就产生了误差,损失函数\small L=\frac{1}{2}\left ( q-y \right )^{2}.计算梯度用损失函数对参数w求偏导,得出梯度之后用梯度下降来更新参数w。

关于梯度和梯度下降可以参考深度强化学习-深度学习基础(一)

2.假设从天津到郑州的预测时间仍然为12个小时,我从天津出发,但是走到霸州车抛锚了,走不了了,已经花了3个小时。但是根据模型,从霸州到郑州需要走7个小时。此时我们有了一个新的估计从天津到郑州只需要3+7=10小时,因为有一段实际行走的路段3小时,因此此时的估计10小时相比于初始的12小时更为可靠。此时就使y=10;我们不需要跑完全程也能对其进行更新,损失函数,梯度计算,梯度下降和上面一样。q与y之间的差值就称为TD error。

我们下面理解一下:TD error,模型预测霸州到郑州需要7小时,总共12小时,则天津到霸州则5小时。但是我们实际走了3小时,实际与预测差值为2小时,和整体的TD error相等。TD算法最终的目标是使得TD error接近0.

具体公式:

先回忆一下回报\small U_{t}:从当前时刻开始到回合结束的奖励的和。也可看作\small U_{t}=\small R_{t}+\small \gamma*\small U_{t+1}

\small U_{t}\small U_{t+1}做期望就得到了t和t+1时刻的动作价值函数。

左侧是预估的总时间,右侧\small r_{t}是当前真实观测到的时间,再加上对t+1时刻做的估计。在TD目标的动作a实际上就是根据动作价值函数对应动作得到奖励最大的那个动作。

 不断更新,使得q与y逐渐接近。仍旧使用梯度下降公式。


Q学习算法:

Q学习的目的是学到最优动作价值函数\small Q_{\bigstar }。会构建一个Qtable,行列分别为当前状态与动作,对应的值表示奖励。给定状态求动作时,会自动选择该行最大的奖励所对应的动作表示要进行的动作,以此来进行决策。问题是Qtable是如何建立的呢?我们就是利用Q学习算法不断更新Qtable,使其能做出最优的决策。

最优贝尔曼方程:

 左边就是我们要求的最优动作价值函数,右侧的期望是关于t+1时刻的。给出当前状态st,以及动作at会给出奖励rt和下一状态\small s_{t+1}.Qtable初始为0矩阵,针对某一点(st,at)有在表格中已经存在的实际值,经过Q学习更新会得到一个新的预测值,最终更新为:实际值+学习率*(新的预测值-实际值)。最终Qtable的值趋于收敛,也就近似得到了最优动作价值函数。


同策略,异策略:

同策略代表行为策略和目标策略相同,异策略表示二者不同。

行为策略:控制智能体和环境交互,行为策略一般是用来收集经验,即观测的环境,动作,奖励。

目标策略:用这个策略函数来控制智能体,这个策略函数就叫做目标策略。

上面提到的Q学习就是利用行为策略收集(当前状态,当前动作,当前奖励,下一状态)这个四元组,并用他们训练目标策略。

贪婪策略是常用的行为策略,也是在Q学习中常用的策略,给定一个概率p,有1-p的概率按照预定策略进行,有p的概率从动作空间中完全随机地选取一个动作执行。让行为策略带有随机性是为了能获得更多未见过的状态。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值