强化学习笔记-06 Temporal-Difference TD时分学习

news/2024/5/19 2:07:28 标签: 强化学习, TD learning, Q-learning, Sarsa

本文是博主对《Reinforcement Learning- An introduction》的阅读笔记,不涉及内容的翻译,主要为个人的理解和思考。

TD学习是现代强化学习方法的核心,其是蒙特卡罗法和动态规划法的结合,一方面,其同蒙特卡罗法一样,不需要对于环境完全了解,而是通过从环境交互中学习,另一方面,其类似于动态规划法,根据前一轮的估计中去更新新一轮的估计,而不需要像蒙特卡罗法通过最终的reward来估计更新。可以看出TD学习仍然是类似于generalized policy iteration (GPI) 过程,相比于蒙特卡罗法和动态规划法,其核心不同点在于价值函数的估计。

1. TD学习的预估

首先我们考虑上一节所讨论的蒙特卡罗法的价值估计函数,将其改下为如下迭代更新过程,即新一轮的估计通过前一轮的估计去更新。此时如果更新因子\alpha设置为固定时,称为固定步长的MC方法。

\\ Q_n(s,a)=\frac{\sum_{k=0}^n \rho_k(s,a)G_k(s,a) }{\sum_{k=0}^n \rho_k(s,a)} \\ =\frac{\sum_{k=0}^{n-1} \rho_k(s,a)G_k(s,a) + \rho_n(s,a)G_n(s,a)}{\sum_{k=0}^{n-1} \rho_k(s,a)}\frac{\sum_{k=0}^{n-1} \rho_k(s,a) }{\sum_{k=0}^{n} \rho_k(s,a)} \\ =(Q_{n-1}(s,a)+\frac{\rho_n(s,a)G_n(s,a)}{\sum_{k=0}^{n-1} \rho_k(s,a)})(1-\frac{\rho_n(s,a)}{\sum_{k=0}^{n} \rho_k(s,a)})\\ =Q_{n-1}(s,a) + \frac{\rho_n(s,a)}{\sum_{k=0}^{n} \rho_k(s,a)}(G_n(s,a)-Q_{n-1}(s,a))\\ =Q_{n-1}(s,a) + \alpha (G_n(s,a)-Q_{n-1}(s,a))

此时再考虑动态规划中求解累积收益G的公式,此时s',a'表示下一状态和动作,R表示reward

G_n(s,a)=R + \gamma Q_\pi (s', a')

此时迭代更新的公式可以改写为

\\ Q_{n}(s,a)=Q_{n-1}(s,a) + \alpha (G_n(s,a)-Q_{n-1}(s,a))\\ =Q_{n-1}(s,a) + \alpha (R+\gamma Q_\pi (s',a')-Q_{n-1}(s,a))

其中Q_\pi (s',a')表示最优决策\pi下,这个是不可知的,因此我们只能用当前已知的Q_{n-1} (s',a')来求解。因此这个之间会存在一定偏差。但是我们可以推出当\gamma <1时,这个偏差是可以收敛的。假设\delta_t = R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_{t},A_{t}),此时偏差可以写为:

G(S_t,A_t)-Q(S_t,A_t)=R_{t+1} +\gamma G(S_{t+1},A_{t+1})-Q(S_t,A_t) + \gamma Q(S_{t+1},A_{t+1})-\gamma Q(S_{t+1},A_{t+1})\\ =R_{t+1} +\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t) + \gamma (G(S_{t+1},A_{t+1})- Q(S_{t+1},A_{t+1}))\\ =\sum_{k=t}^{T-1} \gamma^{k-1}\delta

特别是当更新因子\alpha设置为较少的值时,这个偏差是近似的,理论证明可以收敛到最优的决策函数。

TD学习其结合了动态规划和蒙特卡罗的优点,一方面其不需要对环境建模,另一方面其不需要像蒙特卡罗法一样,需要等待完整采样一轮样本,因此对于一些一轮时间太长或者成本太高的情况下,采用TD学习能加快学习。 

我们完整描述上述的TD学习方法的初始版本,也称之为Sarsa (on-policy TD control)

2. Off-policy

在上一节我们对于累积收益G的估计是真实下一轮状态s'和动作a'确定的,这种方式称为on-policy策略,实际上我们可以参考上一章中off-policy策略,不采用下一轮真实状态,而根据现有价值函数预估一个状态和动作,一种直观的方式是,这种方式也被称为Q-learning

G(s,a)=R + \gamma \text{max}_{\hat{a}}\ Q (s', \hat{a})

但是取max会带来所谓的Maximization Bias,其是因为取argmax的值往往会大于其实际期望值,即:

\text{max}_{\hat{a}}\ Q (s', \hat{a})\geq E(Q (s', a))\approx Q_\pi(s',a')

因此一方式是不取最大值,而是取期望,即所谓的Expected Sarsa方法,其相较于前者,可以更好地消除随机选择动作所带来的方差,因此会有更为稳定的效果,但同时求期望也增加了计算成本

G(s,a)=R + \gamma \sum_{\hat{a}}\pi(\hat{a}|s')Q (s', \hat{a})

 还有一种方式称为Double Q-learning,其认为Maximization Bias主要是由于分布所带来(有大于期望概率,必然会有小于期望的概率),因为其通过两个独立的Q分布来扭正这个偏差。

G(s,a)=R + \gamma Q_1 (s', \text{argmax}_{\hat{a}}\ Q_2 (s', \hat{a}))

 


http://www.niftyadmin.cn/n/334399.html

相关文章

智能的本质人工智能与机器人领域的64个大问题阅读笔记(3)

目录 哥德尔不完备定理是什么&#xff1f; 文件重命名的快捷键 第一个质疑这类言论的哲学家是休伯特德雷福斯 (HubertDreyfus)&#xff0c;他在《Alchemy and Artifcial Intelligence》(1965)一书中写道:“人工智能的长足发展......必须有待于全新计算机的问世。现有的计算机…

“伙伴+华为”体系,数字时代的新航标

如果从1994年中国实行税制改革&#xff0c;要求以“以计算机网络为依托”开展企业税务工作算起&#xff0c;转瞬间&#xff0c;中国企业的信息化、数字化建设已经走过了近三十年历程。 这期间&#xff0c;信息化、数字化成为了企业走向管理现代化、全球化的依托&#xff0c;成为…

如何使用ChatGPT生成Excel公式?

Excel是日常工作和生活中经常使用的一款数据统计和分析软件&#xff0c;它可以帮助我们快速完成各种复杂的数据计算。但对于一些复杂的计算公式&#xff0c;不是每个人都能轻松掌握&#xff0c;或者说有时候并不想手动输入计算公式。如果能有一个智能工具&#xff0c;帮助我们快…

Hardhat内置区块链节点

Hardhat内置了一个为开发而设计的本地以太坊网络&#xff0c;Hardhat Network。这个节点允许你部署合约&#xff0c;运行测试和调试代码。 Hardhat Network是如何工作的&#xff1f; - 它在收到每笔交易后&#xff0c;立即按顺序出块&#xff0c;没有任何延迟。 - 底层是基于…

抖音SEO矩阵营销系统/MVC源码部署二次开发搭建

首先&#xff0c;抖音SEO矩阵系统源码开发&#xff0c;如何做独立部署&#xff0c;首先我们需要深刻理解这个系统的开发逻辑是什么&#xff1f;开发的前言是在抖音平台做流量新增&#xff0c;现在抖音及各大主流短视频平台&#xff0c;流量新增&#xff0c;各大企业需要在短视频…

leecode 数据库:586. 订单最多的客户

数据导入&#xff1a; Create table If Not Exists orders (order_number int, customer_number int); Truncate table orders; insert into orders (order_number, customer_number) values (1, 1); insert into orders (order_number, customer_number) values (2, 2); inse…

在Ubuntu操作系统和centos7上安装docker环境的详细步骤

Ubuntu操作系统安装Docker环境步骤&#xff1a; 1、更新系统软件包&#xff1a; sudo apt-get update2、安装依赖包&#xff1a; sudo apt-get install apt-transport-https ca-certificates curl software-properties-common3、添加Docker官方GPG密钥&#xff1a; curl -f…

基础篇007. 串行通信(一)--阻塞方式发送接收

目录 1. 串行通信 1.1 串行通信概述 1.2 串行通信协议 2. 实验任务 3. 硬件原理 4. 利用STM32CubeMX创建MDK工程 4.1 STM32CubeMX工程创建 4.2 配置调试方式 4.4 配置GPIO 4.5 配置串口参数 4.6 配置时钟 4.7 项目配置&#xff1a; 4.8 串口初始化程序说明 5. 串行…