【动手学深度学习】05时序差分算法

对于大部分强化学习现实场景(例如电子游戏或者一些复杂物理环境),其马尔可夫决策过程的状态转移概率是无法写出来的,也就无法直接进行动态规划。在这种情况下,智能体只能和环境进行交互,通过采样到的数据来学习,这类学习方法统称为无模型的强化学习

不同于动态规划算法,无模型的强化学习算法不需要事先知道环境的奖励函数和状态转移函数,而是直接使用和环境交互的过程中采样到的数据来学习。无模型强化学习算法中最经典的两大算法是 Sarsa 和 Q-learning,它们都是基于时序差分的强化学习算法。

时序差分算法

时序差分算法是用来估计一个策略的价值函数的方法,它结合了蒙特卡洛和动态规划的思想。时序算法的更新公式为:
V ( s t ) ← V ( s t ) + α [ r t + γ V ( s t + 1 ) − V ( s t ) ] V(s_t) \leftarrow V(s_t) + \alpha[r_t + \gamma V(s_{t+1}) - V(s_t)] V(st)V(st)+α[rt+γV(st+1)V(st)]

其中 R t + γ V ( s t + 1 ) − V ( s t ) R_t+\gamma V(s_t+1)-V(s_t) Rt+γV(st+1)V(st) 为差分误差(TD error)。

Sarsa 算法

既然我们可以用时序差分方法来估计价值函数,那一个很自然的问题是,我们能否用类似策略迭代的方法来进行强化学习。

对于动作函数估计,我们可以使用时序差分算法来进行估计:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha[r_t + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t)] Q(st,at)Q(st,at)+α[rt+γQ(st+1,at+1)Q(st,at)]
之后使用贪婪算法选择在某个状态下动作价值最大的那个动作,即 arg max ⁡ a V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

误伤这又何妨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值