《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch8 值函数拟合 【基于近似函数的 TD 算法:Sarsa、Q-leaning、DQN】

PPT 截取有用信息。 课程网站做习题。总体 MOOC 过一遍

  • 1、学堂在线 视频 + 习题
  • 2、相应章节 过电子书 复习 【下载: 本章 PDF GitHub 页面链接】
  • 3、 MOOC 习题
  • 跳过的 PDF 内容

学堂在线 课程页面链接
中国大学MOOC 课程页面链接
B 站 视频链接

PPT和书籍下载网址: 【GitHub链接】

文章目录

    • 8.1 值表示: 表格 ——> 函数
    • 8.2 状态值 估计
    • 8.4 Deep Q-leaning 【DQN】

在这里插入图片描述


第 7 章: 基于表格的 TD 学习算法
本章: 基于函数的 TD 学习算法

神经网络

DQN

在这里插入图片描述

8.1 值表示: 表格 ——> 函数

在这里插入图片描述

表格:直接重写表中相应的条目
函数:通过更新 w w w 间接地更改值

优点: 直观,便于分析。
缺点: 难以处理 大的 或 连续的 状态或动作
两个方面:1) 存储; 2) 泛化能力。

有很多的 状态-动作 对, 不可能都访问到。

曲线近似, 节省存储空间。

  • 无法精确表示 状态值。

函数近似法通过牺牲精度提高存储效率

idea: 使用参数化函数 v ^ ( s , w ) ≈ v π ( s ) \hat v(s, w)\approx v_\pi(s) v^(s,w)vπ(s) 近似 状态和动作值,其中 w ∈ R m w \in \mathbb R^m wRm 是参数向量。

优点:
1) 存储 w w w 的维数可能比 ∣ S ∣ |\mathcal S| S小得多。
2) 泛化
当一个状态 s s s 被访问时,参数 w w w 被更新,这样其他一些未访问状态的值也可以被更新。通过这种方式,学习值 可以推广到 未访问状态。


8.2 状态值 估计

P2

真实状态值 v π ( s ) v_\pi(s)~~~ vπ(s)    估计值 v ^ ( s , w ) \hat v(s, w) v^(s,w)

为了找到最优的 w w w,我们需要两个步骤:
1、定义一个目标函数。
2、推导 优化目标函数 的算法。

目标函数: J ( w ) = E [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] J(w) =\mathbb E[(v_\pi(S)-\hat v(S, w))^2] J(w)=E[(vπ(S)v^(S,w))2]

误差 的平方。

——————
期望是 关于 随机变量 S ∈ S S\in \mathcal S SS 的, 那么 S S S 的概率分布是什么?

平均分布。 每个 状态的 权重都是 1 ∣ S ∣ \frac{1}{|\mathcal S|} S1

J ( w ) = E [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] = 1 ∣ S ∣ ∑ s ∈ S ( v π ( s ) − v ^ ( s , w ) ) 2 J(w) =\mathbb E[(v_\pi(S)-\hat v(S, w))^2]=\frac{1}{|\mathcal S|}\sum\limits_{s\in\mathcal S}(v_\pi(s)-\hat v(s, w))^2 J(w)=E[(vπ(S)v^(S,w))2]=S1sS(vπ(s)v^(s,w))2

给重要的状态 更大的权重。

平稳分布:稳态分布, 极限分布

马尔可夫过程 的长期行为

在代理执行给定策略足够长的时间后,代理处于任何状态的概率可以用这个平稳分布来描述。

基于策略 π \pi π 的马尔可夫过程 的平稳分布: { d π ( s ) } s ∈ S \{d_\pi(s)\}_{s\in\mathcal S} {dπ(s)}sS

d π ( s ) ≥ 0 d_\pi(s) \geq 0 dπ(s)0 ∑ s ∈ S d π ( s ) = 1 \sum\limits_{s\in\mathcal S}d_\pi(s) =1 sSdπ(s)=1

J ( w ) = E [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] = ∑ s ∈ S d π ( s ) ( v π ( s ) − v ^ ( s , w ) ) 2 J(w) =\mathbb E[(v_\pi(S)-\hat v(S, w))^2]=\sum\limits_{s\in\mathcal S}\textcolor{blue}{d_\pi(s)}(v_\pi(s)-\hat v(s, w))^2 J(w)=E[(vπ(S)v^(S,w))2]=sSdπ(s)(vπ(s)v^(s,w))2

这个函数是加权平方误差
由于访问频率越高的状态具有更高的 d π ( s ) d_\pi(s) dπ(s) 值,因此它们在目标函数中的权重也高于 访问频率越低 的状态。

在这里插入图片描述

在这里插入图片描述

——————
优化目标函数

最小化 梯度下降

在这里插入图片描述
用 随机梯度 替换 真实梯度, 避免 计算期望。

w t + 1 = w t + α t ( v π ( s t ) − v ^ ( s t , w t ) ) ∇ w v ^ ( s t , w t ) w_{t+1}=w_t+\alpha_t(v_\pi(s_t)-\hat v(s_t,w_t))\nabla _w\hat v(s_t, w_t) wt+1=wt+αt(vπ(st)v^(st,wt))wv^(st,wt)

问题: v π v_\pi vπ 未知。——> 用 近似值 替换
方式一:基于 MC 学习。 用 episode 中从 s t s_t st 开始的 折扣回报 g t g_t gt 替换 v π ( s t ) v_\pi(s_t) vπ(st)
w t + 1 = w t + α t ( g t − v ^ ( s t , w t ) ) ∇ w v ^ ( s t , w t ) w_{t+1}=w_t+\alpha_t(\textcolor{blue}{g_t}-\hat v(s_t,w_t))\nabla _w\hat v(s_t, w_t) wt+1=wt+αt(gtv^(st,wt))wv^(st,wt)
方式二: 基于 TD 学习。
v π ( s t ) v_\pi(s_t) vπ(st)
w t + 1 = w t + α t [ r t + 1 + γ v ^ ( s t + 1 , w t ) − v ^ ( s t , w t ) ] ∇ w v ^ ( s t , w t ) w_{t+1}=w_t+\alpha_t[\textcolor{blue}{r_{t+1}+\gamma \hat v(s_{t+1},w_t)}-\hat v(s_t,w_t)]\nabla _w\hat v(s_t, w_t) wt+1=wt+αt[rt+1+γv^(st+1,wt)v^(st,wt)]wv^(st,wt)

在这里插入图片描述

——————
如何选择 v ^ ( s , w ) \hat v(s,w) v^(s,w) ?

方式一: 线性近似。 v ^ ( s , w ) = ϕ T ( s ) w \hat v(s, w)=\phi^T(s)w v^(s,w)=ϕT(s)w

  • 特征向量 ϕ ( s ) \phi(s) ϕ(s)。 系数

方式二: 非线性 近似。 神经网络。

  • 神经网络的输入为 状态, 输出为 v ^ ( s , w ) \hat v(s, w) v^(s,w), 网络参数为 w w w

在这里插入图片描述

线性近似的优缺点:
缺点:难以选择合适的特征向量。
优点:易于理解。

表格表示 是 线性函数近似 的 特例。
考虑 状态 s s s 的特征向量的特殊情况。
ϕ ( s ) = e s ∈ R ∣ S ∣ \phi(s)=e_s\in\mathbb R^{|\mathcal S|} ϕ(s)=esRS
e s e_s es: 第 s s sth 个数为 1 , 其它为 0 的向量。
v ^ ( s , w ) = ϕ T ( s ) w = e s T w = w ( s ) \hat v(s, w)=\phi^T(s)w=e^T_sw=w(s) v^(s,w)=ϕT(s)w=esTw=w(s)
w ( s ) w(s) w(s) w w w 的 第 s s sth 个数

在这里插入图片描述

——————
例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

——————

TD-Linear 算法最小化的是 投影 贝尔曼误差。

在这里插入图片描述

P3 Sarsa + 值函数近似

w t + 1 = w t + α t [ r t + 1 + γ q ^ ( s t + 1 , a t + 1 , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) w_{t+1}=w_t+\alpha_t[r_{t+1}+\gamma\hat q(s_{t+1}, a_{t+1}, w_t)-\hat q(s_t,a_t,w_t)] \nabla_w\hat q(s_t, a_t, w_t) wt+1=wt+αt[rt+1+γq^(st+1,at+1,wt)q^(st,at,wt)]wq^(st,at,wt)

在这里插入图片描述

Q 学习 + 函数近似

w t + 1 = w t + α t [ r t + 1 + γ max ⁡ a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) w_{t+1}=w_t+\alpha_t[r_{t+1}+\gamma \textcolor{blue}{\max\limits_{a\in\mathcal A(s_{t+1})}}\hat q(s_{t+1},\textcolor{blue}{a} , w_t)-\hat q(s_t,a_t,w_t)] \nabla_w\hat q(s_t, a_t, w_t) wt+1=wt+αt[rt+1+γaA(st+1)maxq^(st+1,a,wt)q^(st,at,wt)]wq^(st,at,wt)

在这里插入图片描述

8.4 Deep Q-leaning 【DQN】

Deep Q-learning、deep Q-network (DQN)

最成功地将 深度神经网络 引入强化学习的算法之一。

应用 和 方法
应用: 在一系列游戏控制上 达到人类控制的水平。
方法: 关键技术 后续被广泛使用。

在这里插入图片描述

目标函数:
在这里插入图片描述
优化:
在这里插入图片描述

我们可以在计算梯度时假设 y y y 中的 w w w 是固定的(至少在一段时间内是固定的)。

在这里插入图片描述
使用两个网络, 分别 估计 w w w
主网络的 w w w: 一直更新
目标网络的 w T w_T wT: 隔一段时间 更新

在这里插入图片描述

DQN 的基本思想是使用梯度下降算法最小化目标函数。


2 个重要技巧:

1、两个网络:一个主网络和一个目标网络。
实现细节:
w w w w T w_T wT 分别表示主网络和目标网络的参数。它们最初被设置为相同的。
在每次迭代中,我们从重放缓冲区中提取一小批样本 { ( s , a , r , s ′ ) } \{(s, a, r, s')\} {(s,a,r,s)}
网络的输入包括状态 s s s 和动作 a a a,目标输出为 y T = r + γ max ⁡ a ∈ A ( s ′ ) q ^ ( s ′ , a , w T ) y_T =r+ \gamma \max\limits_{a\in \cal A(s') }\hat q(s',a,w_T) yT=r+γaA(s)maxq^(s,a,wT)。然后,我们直接最小化 小批次 { ( s , a , y T ) } \{(s, a,y_T)\} {(s,a,yT)} 上的 TD 误差或称为损失函数 ( y T − q ^ ( s , a , w ) ) 2 (y_T - \hat q(s, a, w))^2 (yTq^(s,a,w))2

2、经验回放

replay buffer 回放缓冲 B = { ( s , a , r , s ′ ) } \mathcal B=\{(s, a, r, s^\prime)\} B={(s,a,r,s)}

每次我们训练神经网络时,我们都可以从回放缓冲区中抽取一小批随机样本。

均匀分布 经验回放。

为什么 DQN 需要经验回放?为什么重播必须遵循均匀分布?

在这里插入图片描述
然而,样本并不是统一收集的,因为它们是由某些策略生成的。
为了打破后续样本之间的相关性,我们可以使用经验重放技术,从重放缓冲区中均匀地提取样本。

更充分地使用数据

在这里插入图片描述
在这里插入图片描述

再强大的算法 也需要 好的数据 才能 work。

8.6

目标函数 涉及到 状态的概率分布, 该分布通常选为 平稳分布。

为什么深度 Q-learning 需要经验回放?
原因在于 (8.37) 中的目标函数。特别是,为了很好地定义目标函数,我们必须指定 S , A , R , S ′ S, A, R, S' S,A,R,S 的概率分布。
( S , A ) (S, A) (S,A) 给定时,由系统模型确定 R R R S ′ S' S 的分布。
描述 状态-行为对 ( S , A ) (S, A) (S,A) 分布的最简单方法是假设它是均匀分布的。然而,状态-动作样本在实践中可能不是均匀分布的,因为它们是由行为策略作为一个序列生成的。为了满足均匀分布的假设,有必要打破序列中样本之间的相关性。为此,我们可以使用经验重放技术,从重放缓冲区中均匀地抽取样本。经验回放的一个好处是,每个经验样本可以被多次使用,这可以提高数据效率
在这里插入图片描述

——————
习题笔记

表格表示 可以看作是 函数表示 的特例

难以直接计算目标函数的梯度:先固定目标函数中的一部分,这样求解梯度更容易。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创实现 设计模式】Spring+策略+模版+工厂模式去掉if-else,实现开闭原则,优雅扩展

1 定义与优点 1.1 定义 策略模式(Strategy Pattern)属于对象的⾏为模式。他主要是用于针对同一个抽象行为,在程序运行时根据客户端不同的参数或者上下文,动态的选择不同的具体实现方式,即类的行为可以在运行时更改。…

MySQL1(初始数据库 概念 DDL建库建表 数据库的三大范式 表约束)

目录 一、初始数据库 二、概念 三、DDL建库建表 1. 数据库结构 2. SQL语句分类 3. DDL语句操作数据库 注释: 查看数据库: ​编辑创建数据库: 删除数据库: 选择数据库: 4. 数据库表的字段类型 4.1 字符串…

java将html转成图片

java 将html转成图片 1.导入jar2.代码3.展示结果4.注意事项 最近有一个需求需要根据指定的样式生成图片&#xff0c;使用java原生技术有些麻烦&#xff0c;所以上网搜了下案例&#xff0c;最后发现最好用的还是html2image&#xff0c;这里进行简单总结下。 1.导入jar <!-- 用…

腾讯视频VIP会员账号怎么扫码登录一个帐号登录几个人的设备?

腾讯视频VIP会员账号怎么扫码登录&#xff1f; 腾讯视频VIP会员账号要想实现扫码登录&#xff0c;仅支持在电脑Web网页版和WindowsPC软件上登录腾讯视频时&#xff0c;才可以实现手机QQ扫码登录腾讯视频。 腾讯视频VIP与SVIP会员有什么区别&#xff1f; 腾讯视频VIP会员&…

前端小白必学:对Cookie、localStorage 和 sessionStorage 的简单理解

前言 Cookie、localStorage 和 sessionStorage 作为Web开发领域中广泛采用的三种客户端数据存储技术&#xff0c;它们各自拥有独特的优势、应用场景及限制条件&#xff0c;共同支撑起前端数据管理的多样化需求。也是面试常考题之一&#xff0c;今天就和大家简单谈一下我对它们…

揭开大语言模型(LLM)内部运作的算法逻辑

本文探讨了 Anthropic 的突破性技术&#xff0c;以揭示大型语言模型 (LLM) 的内部工作原理&#xff0c;揭示其不透明的本质。通过深入研究LLM Claude Sonnet 的“大脑”&#xff0c;Anthropic 增强了人工智能的安全性和可解释性&#xff0c;为人工智能的决策过程提供了更深入的…

应用部署方式演变

应用部署方式演变 1.传统部署2.虚拟化部署3.容器化部署 1.传统部署 传统的应用程序部署是将多个应用程序直接部署在操作系统上&#xff0c;一旦其中的某个应用程序出现内存泄漏&#xff0c;那么该程序就会大量吞噬系统内容空间&#xff0c;导致其他应用程序无法正常运行。 2.虚…

如何让两个不同网段的直连地址通信(有点意思)

群里一个朋友出了个题&#xff1a;两个路由器接口直连&#xff0c;一个接口IP是1.1.1.1/30&#xff0c;一个接口IP是2.2.2.2/30&#xff0c;如何让它们通信&#xff1f; 群里的朋友们纷纷献策&#xff1a; 1、用PPP方式连接&#xff0c;直接通 2、配对端IP地址同网段的s…

鱼叉式钓鱼

鱼叉式网络钓鱼&#xff1a; 鱼叉式网络钓鱼是一种网络钓鱼形式&#xff0c;它针对特定个人或组织发送定制消息&#xff0c;旨在引发特定反应&#xff0c;例如泄露敏感信息或安装恶意软件。这些攻击高度个性化&#xff0c;使用从各种来源收集的信息&#xff0c;例如社交媒体资…

Face Adapter - 一键面部表情迁移、换脸工具 本地一键整合包下载

Face Adapter是一款高效的人脸编辑适配器&#xff0c;由浙江大学和腾讯联合开发&#xff0c;适用于预先训练的扩散模型&#xff0c;专门针对人脸再现和交换任务。 只需要上传一张源脸和一张参考人脸&#xff0c;就能按照参考人脸的风格生成相同的面部的表情&#xff0c;一键生…

掌握Python编程的深层技能

一、Python基础语法、变量、列表、字典等运用 1.运行python程序的两种方式 1.交互式即时得到程序的运行结果 2.脚本方式把程序写到文件里(约定俗称文件名后缀为.py),然后用python解释器解释执行其中的内容2.python程序运行的三个步骤 python3.8 C:\a\b\c.py 1.先启动python3…

Golang-channel理解

channel golang-channel语雀笔记整理 channelgolang channel的设计动机&#xff1f;chanel的数据结构/设计思考 golang channel的设计动机&#xff1f; channel是一种不同协程之间实现异步通信的数据结构。golang中有一种很经典的说法是要基于通信实现共享内存&#xff0c;而不…

机器学习基础:开源库学习-Numpy科学计算库

目录 Numpy科学计算库 什么是多维数组 数组基础 高维数组 操作和创建数组 Numpy介绍 创建数组 数组的属性 二维数组 三维数组 数组元素的数据类型 创建特殊的数组 np.arange() np.ones() np.zeros() np.eye() np.linspace() np.logspace() asarray() 数组运…

thymeleaf+mybatis(本文章用于期末考前10分钟速看)

期末速看 pom&#xff08;了解&#xff09;application.propertiessql代码Controller控制层视图service&#xff1a; 服务层mapper&#xff08;dao&#xff09;&#xff1a;持久层entity层(model层&#xff0c;domain层、 bean)&#xff1a;对应数据库表&#xff0c;实体类 效果…

谈谈你对AQS的理解

AQS概述 AQS&#xff0c;全称为AbstractQueuedSynchronizer&#xff0c;是Java并发包&#xff08;java.util.concurrent&#xff09;中一个核心的框架&#xff0c;主要用于构建阻塞式锁和相关的同步器&#xff0c;也是构建锁或者其他同步组件的基础框架。AQS提供了一种基于FIF…

模拟城市5: 未来之城 全DLC for Mac 下载安装包

模拟城市5&#xff1a;未来之城&#xff08;SimCity BuildIt&#xff09;是一款由Maxis开发并由 Electronic Arts&#xff08;EA&#xff09;发行的城市建设和管理模拟游戏。这款游戏最初在2014年发布&#xff0c;适用于iOS、Android以及Windows Phone平台&#xff0c;随后在20…

力扣最新详解5道题:两数之和三数之和四数之和

目录 一、查找总价格为目标值的两个商品 题目 题解 方法一&#xff1a;暴力枚举 方法二&#xff1a;对撞指针 二、两数之和 题目 题解 方法一&#xff1a;暴力枚举 方法二&#xff1a;哈希表法 三、三数之和 题目 题解 方法一&#xff1a;排序暴力枚举set去重 …

数据资产治理的智能化探索:结合云计算、大数据、人工智能等先进技术,探讨数据资产治理的智能化方法,为企业提供可靠、高效的数据资产解决方案,助力企业提升竞争力

一、引言 在信息化时代&#xff0c;数据已成为企业最重要的资产之一。随着云计算、大数据、人工智能等先进技术的飞速发展&#xff0c;数据资产治理面临着前所未有的机遇与挑战。本文旨在探讨如何结合这些先进技术&#xff0c;实现数据资产治理的智能化&#xff0c;为企业提供…

【活动感想】筑梦之旅·AI共创工坊 workshop 会议回顾

目录 &#x1f30a;1. 会议详情 &#x1f30a;2. 会议回顾 &#x1f30d;2.1 主持人开场 &#x1f30d;2.2 元甲-小当家 AI 驱动的创意儿童营养早餐料理机&今天吃什么App &#x1f30d;2.3 Steven- A l 心理疗愈认知 &#x1f30d;2.4 伯棠-诸子百家(xExperts)-多智能…

转盘输入法-总

序 转盘输入法&#xff0c;给你的聊天加点新意。它不用常见的九宫格或全键盘&#xff0c;而是把字母摆在圆盘上&#xff0c;一滑一滑&#xff0c;字就出来了&#xff0c;新鲜又直接。 PC屏幕键盘的对比 鉴于屏幕键盘这一新颖界面的局限性&#xff0c;当用户在操作时&#xff…