# [0622] Task02 model-free 免模型类 RL 算法的预测和控制 【ε 贪心策略 优化的证明】

  • easy-rl PDF版本 笔记整理 P3
  • joyrl 比对 补充 P4 - P5
  • 相关 代码 整理 ——> 有空 另开一页

最新版PDF下载
地址:https://github.com/datawhalechina/easy-rl/releases
国内地址(推荐国内读者使用)
链接: https://pan.baidu.com/s/1isqQnpVRWbb3yh83Vs0kbw 提取码: us6a

easy-rl 在线版本链接 (用于 copy 代码)
参考链接 2:https://datawhalechina.github.io/joyrl-book/

其它:
【勘误记录 链接】
——————
5、深度强化学习基础 ⭐️
开源内容:https://linklearner.com/learn/summary/11
——————————

表格型:蒙特卡洛、Q-learning、Sarsa

状态转移概率 p [ s t + 1 , r t ∣ s t , a t ] p[s_{t+1},r_t|s_t,a_t] p[st+1,rtst,at]: 在状态 s t s_t st 选择动作 a t a_t at 后, 转移到状态 s t + 1 s_{t+1} st+1,得到奖励 r t r_t rt 的概率。

马尔可夫性质: 系统下一时刻的状态仅由当前时刻的状态决定, 不依赖于以往任何状态。

状态转移概率 和 奖励未知: model-free。 免模型

模型未知 或 模型太大 ——> 免模型方法

考虑未来的总奖励的原因: 奖励延迟

折扣因子 γ \gamma γ: 当前行为 对 未来的某一个回报可能毫无关系。

用下一状态的价值 来更新 当前状态的 价值。 自举
时序差分: 每走一步更新一次 Q 表格, 用下一个状态的 Q 值 来 更新当前状态 的 Q 值。

蒙特卡洛方法:
采样大量 episode ,计算所有 episode 的真实回报,计算平均值, 当做 状态值的估计。

蒙特卡洛:
V ( s t ) ← V ( s t ) + α ( G i , t − V ( s t ) ) V(s_t)\leftarrow V(s_t) +\alpha(G_{i,t}-V(s_t)) V(st)V(st)+α(Gi,tV(st))

时序差分:
V ( s t ) ← V ( s t ) + α ( r t + 1 + γ V ( s t + 1 ) − V ( s t ) ) V(s_t)\leftarrow V(s_t) +\alpha(r_{t+1}+\gamma V(s_{t+1})-V(s_t)) V(st)V(st)+α(rt+1+γV(st+1)V(st))

时序差分蒙特卡洛
可在线学习,效率高必须等游戏结束
不要求序列完整完整序列
连续任务有终止的任务
马尔可夫非马尔可夫更高效
有偏估计无偏估计
方差小、自举方差大

时序差分 优势: 低方差, 能够在线学习, 能够从不完整的序列中学习。

————————————————

证明:对于任意 策略 π \pi π, 根据其动作价值函数 q π q_\pi qπ 计算的 ε \varepsilon ε -贪心策略 π ′ \pi^\prime π 比原策略 π \pi π 好 或 至少一样好。

π ( a ∣ s ) = { ε ∣ A ( s ) ∣ + 1 − ε , 贪心动作 ε ∣ A ( s ) ∣ , 其它动作 \pi(a|s)=\left\{ \begin{aligned} &\frac{\varepsilon}{|\mathcal{A}(s)|}+1- \varepsilon, &贪心动作\\ &\frac{\varepsilon}{|\mathcal{A}(s)|}, &其它动作\\ \end{aligned} \right. π(as)= A(s)ε+1ε,A(s)ε,贪心动作其它动作

由上式:
——> π ( a ∣ s ) − ε ∣ A ( s ) ∣ = { 1 − ε , 贪心动作 0 , 其它动作 \pi(a|s)-\frac{\varepsilon}{|\mathcal{A}(s)|}=\left\{ \begin{aligned} &1- \varepsilon, &贪心动作\\ &0, &其它动作\\ \end{aligned} \right. π(as)A(s)ε={1ε,0,贪心动作其它动作
——> π ( a ∣ s ) − ε ∣ A ( s ) ∣ 1 − ε = { 1 , 贪心动作 0 , 其它动作 \frac{ \pi(a|s)-\frac{\varepsilon}{|\mathcal{A}(s)|}}{1-\varepsilon}=\left\{ \begin{aligned} &1, &贪心动作\\ &0, &其它动作\\ \end{aligned} \right. 1επ(as)A(s)ε={1,0,贪心动作其它动作

q π ( s , π ′ ( s ) ) = ∑ a ∈ A π ′ ( a ∣ s ) q π ′ ( s , a ) = ε ∣ A ( s ) ∣ ∑ a ∈ A q π ( s , a ) + ( 1 − ε ) max ⁡ a ∈ A q π ( s , a ) = ε ∣ A ( s ) ∣ ∑ a ∈ A q π ( s , a ) + ( 1 − ε ) ∑ a ∈ A π ( a ∣ s ) − ε ∣ A ( s ) ∣ 1 − ε max ⁡ a ∈ A q π ( s , a ) ≥ ε ∣ A ( s ) ∣ ∑ a ∈ A q π ( s , a ) + ( 1 − ε ) ∑ a ∈ A π ( a ∣ s ) − ε ∣ A ( s ) ∣ 1 − ε q π ( s , a ) 这个  q π ( s , a ) 没有  ε 贪心动作对应的  q 大 = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) \begin{aligned}q_\pi(s, \pi^\prime(s))&=\sum\limits_{a\in\mathcal A}\pi^\prime(a|s)q_{\pi^\prime}(s,a)\\ &=\frac{\varepsilon}{|\mathcal{A}(s)|}\sum\limits_{a\in\mathcal A}q_\pi(s, a)+(1-\varepsilon)\max\limits_{a\in\mathcal A}q_\pi(s, a)\\ &=\frac{\varepsilon}{|\mathcal{A}(s)|}\sum\limits_{a\in\mathcal A}q_\pi(s, a)+(1-\varepsilon)\textcolor{blue}{\sum\limits_{a\in \cal A}\frac{ \pi(a|s)-\frac{\varepsilon}{|\mathcal{A}(s)|}}{1-\varepsilon}}\max\limits_{a\in\mathcal A}q_\pi(s, a)\\ &\geq \frac{\varepsilon}{|\mathcal{A}(s)|}\sum\limits_{a\in\mathcal A}q_\pi(s, a)+(1-\varepsilon)\sum\limits_{a\in \cal A}\frac{ \pi(a|s)-\frac{\varepsilon}{|\mathcal{A}(s)|}}{1-\varepsilon}q_\pi(s, a)~~~\textcolor{blue}{这个 ~q_\pi(s, a) ~没有~ \varepsilon ~贪心动作 对应的 ~q ~ 大}\\ &=\sum\limits_{a\in\mathcal A}\pi (a|s)q_ \pi (s,a)\end{aligned} qπ(s,π(s))=aAπ(as)qπ(s,a)=A(s)εaAqπ(s,a)+(1ε)aAmaxqπ(s,a)=A(s)εaAqπ(s,a)+(1ε)aA1επ(as)A(s)εaAmaxqπ(s,a)A(s)εaAqπ(s,a)+(1ε)aA1επ(as)A(s)εqπ(s,a)   这个 qπ(s,a) 没有 ε 贪心动作对应的 q =aAπ(as)qπ(s,a)

————————————

偏差高: 偏离真实数据
方差高: 数据分布分散。

时序差分: 更新 V
Sarsa:更新 Q
q ( s t , a t ) = q ( s t , a t ) + α [ r t + 1 + γ q ( s t + 1 , a t + 1 ) ⏞ 时序差分目标 − q ( s t , a t ) ⏟ 时序差分误差 ] q(s_t, a_t)=q(s_t,a_t)+\textcolor{blue}{\alpha}[\underbrace{\overbrace{\textcolor{blue}{r_{t+1}+\gamma q(s_{t+1},a_{t+1})}}^{时序差分目标}-q(s_t,a_t)}_{时序差分误差}] q(st,at)=q(st,at)+α[时序差分误差 rt+1+γq(st+1,at+1) 时序差分目标q(st,at)]

Sarsa: ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (\textcolor{blue}{s}_t, \textcolor{blue}{a}_t,\textcolor{blue}{r}_{t+1}, \textcolor{blue}{s}_{t+1}, \textcolor{blue}{a}_{t+1}) (st,at,rt+1,st+1,at+1)

在这里插入图片描述

Sarsa: 同策略的时序差分
Q-learning: 异策略的时序差分

q ( s t , a t ) = q ( s t , a t ) + α [ r t + 1 + γ max ⁡ a q ( s t + 1 , a ) ⏞ 时序差分目标 − q ( s t , a t ) ⏟ 时序差分误差 ] q(s_t, a_t)=q(s_t,a_t)+\alpha[\underbrace{\overbrace{r_{t+1}+\gamma \textcolor{blue}{\max_{a}q(s_{t+1},a)}}^{时序差分目标}-q(s_t,a_t)}_{时序差分误差}] q(st,at)=q(st,at)+α[时序差分误差 rt+1+γamaxq(st+1,a) 时序差分目标q(st,at)]

同策略:学习的策略 和 与环境交互的策略 是同一个。不稳定、胆小。 Sarsa
异策略:目标策略 和 行为策略。 激进。 Q-learning

————————
Q 表格: 横轴 动作, 纵轴 状态

同策略 VS 异策略: 生成样本的策略 和 参数更新的策略 是否相同。

Q 学习, 异策略, 优化策略 没有用到 行为策略的数据。

时序差分 使用了 自举, 实现了 基于平滑的效果, 方差较小。

——————————————
joyrl

免模型:
不需要学习较为复杂的模型 (状态转移概率 和 奖励)
需要与真实环境进行大量的交互

异策略算法:从经验池或者历史数据中进行学习的。

其一是智能体在测试的时候直接用模型预测的动作输出就行,即在训练中是采样动作(带探索),测试中就是预测动作,其二是训练过程中不需要更新策略,因为已经收敛了。

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

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

相关文章

51单片机STC89C52RC——6.1 中断系统

一,文字层面理解 反正我看下面的几段文字时脑壳没有正常运转。一个头几个大 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这…

用 Git 玩转版本控制

前言 Git,作为当今最流行的版本控制系统,不仅深受程序员们的青睐,也逐渐成为非开发人员管理文档版本的强大工具。本文将从实用主义的角度出发,深入浅出地介绍 Git 的常用命令,并带领大家探索 Git 的高级功能&#xff…

QT中QSettings的使用系列之二:保存和恢复应用程序主窗口

1、核心代码 #include "widget.h" #include "ui_widget.h" #include <QSettings> #include <QDebug> #include <QColo

【LLM之KG】KoPA论文阅读笔记

研究背景 知识图谱补全&#xff08;KGC&#xff09;是通过预测知识图谱中缺失的三元组来完善知识图谱的信息。传统方法主要基于嵌入和预训练语言模型&#xff0c;但这些方法往往忽视了知识图谱的结构信息&#xff0c;导致预测效果不佳。 研究目标 本文的研究目标是探索如何将…

【Linux】基础IO_3

文章目录 六、基础I/O3. 软硬链接4. 动静态库 未完待续 六、基础I/O 3. 软硬链接 使用 ln 就可以创建链接&#xff0c;使用 ln -s 可以创建软链接&#xff0c;直接使用 ln 则是硬链接。 我们对硬链接进行测试一下&#xff1a; 根据测试&#xff0c;我们知道了 硬链接就像一…

食品行业BC一体化运营方案

一、引言 在当前的市场环境下&#xff0c;食品行业面临着日益激烈的竞争和不断变化的消费者需求。传统的经营模式已无法满足现代消费者对高效、便捷和个性化服务的要求。因此&#xff0c;实施BC&#xff08;Business to Consumer&#xff09;一体化运营方案成为必然选择。通过…

筛质数(暴力法、埃氏筛、欧拉筛)

筛质数(暴力法、埃氏筛、欧拉筛) 暴力法 思路分析: 直接双for循环来求解质数 如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中,也会导致每个 非素数也被打印出来多次(在找到其因子之前)。 code:…

某程序员:30岁了,老婆管钱,背着我买了50万股票,亏了20w,强制她清仓后又买了36万

“辛辛苦苦攒了几年钱&#xff0c;本想买房买车&#xff0c;结果全被老婆炒股亏掉了&#xff01;” 近日&#xff0c;一位30岁的程序员大哥在网上吐苦水&#xff0c;引发了网友们的热议。 这位程序员大哥和妻子结婚后&#xff0c;一直秉持着“男主外&#xff0c;女主内”的传统…

面向普通人的prompt操作手册

主要是采用通俗易懂的话语介绍prompt的使用&#xff1a;主要参考文心一言的百度文档。 大型语言模型使用强化学习中的人类反馈来学习&#xff0c;这个过程中与人类对话的提问通常是通俗易懂的&#xff0c;也就是说&#xff0c;大型语言模型可以理解并回答一般人能听懂的问题。…

c语言 课设 atm

功能需求分析 ATM功能主界面:显示所能进行的操作,用户可多次选择。 ATM注册界面:输入用户名,用户密码,确认密码,密码长度不是六位重新输入,两次密码不一致重新输入,输入账号。密码隐藏,实现退格换行对*无影响。多人注册 ATM登录界面:输入账号,密码,三次以内输入…

git常用操作汇总大全

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;入职小红书广告投放开发&#xff0c;很高兴认识大家&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博…

颍川文明的传承

园子说颍川 中国第一个王朝--夏朝&#xff0c;由大禹建立于夏邑(今禹州市)&#xff0c;其子启继承王位开启了“父传子,家天下”先河。禹州现有禹王庙、禹王锁井遗址&#xff0c;有夏启宴请诸侯的“钧台”遗址。夏商周时代&#xff0c;诸侯分封兴起&#xff0c;颍川地区活跃着众…

ThinkPHP6图书借阅管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP6图书借阅管理系统 一 介绍 此图书借阅管理系统基于ThinkPHP6框架开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 ThinkPHP6mysqlbootstrapphpstudyvscode 二 功能 用户 1 登录/注销…

多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能

xviewer.h public:XViewer(QWidget* parent Q_NULLPTR);//编辑摄像机void SetCam(int index);//121 public slots:void AddCam(); //新增摄像机配置120void SetCam(); //121void DelCam(); //121 private:Ui::XViewerClass ui;QMenu left_menu_; xviewer.cpp void XView…

LeetCode 算法:排序链表 c++

原题链接&#x1f517;&#xff1a;排序链表 难度&#xff1a;中等⭐️⭐️ 题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输…

vagrant + virtual box + rhel7 + ssh 登录

1、程序下载 vc https://download.visualstudio.microsoft.com/download/pr/1754ea58-11a6-44ab-a262-696e194ce543/3642E3F95D50CC193E4B5A0B0FFBF7FE2C08801517758B4C8AEB7105A091208A/VC_redist.x64.exe virtualbox https://download.virtualbox.org/virtualbox/7.0.18/V…

牛客练习题打卡--redis

A list保证数据线性有序且元素可重复&#xff0c;它支持lpush、blpush、rpop、brpop等操作&#xff0c;可以当作简单的消息队列使用&#xff0c;一个list最多可以存储2^32-1个元素; redis中set是无序且不重复的; zset可以按照分数进行排序 &#xff0c;是有序不重复的; Redi…

Arduino入门4——基于millis函数、定时器中断的多任务框架

Arduino入门4——基于millis函数、定时器中断的多任务框架 millis函数定时器中断总结&#xff08;笔者的碎碎念。。。。。。。。&#xff09; 上一期我们基于oled学习了库的调用&#xff0c;这一期我们基于millis函数和定时器中断&#xff0c;学习以下多任务框架。但是我们本期…

使用winehq在Mac上成功运行Win系统exe应用程序

使用Wine可以在Mac上运行一部分exe程序&#xff0c;但是注意⚠️可能会运行失败&#xff01; 第一部分失败尝试&#xff08;可跳过 通过下面连接下载软件 https://dl.winehq.org/wine-builds/macosx/download.html 安装好后显示上面链接软件过期&#xff0c;并且要求下载XQ…

CentOS9镜像下载地址加速下载

CentOS 9 是 CentOS 项目的最新版本之一&#xff0c;它基于 RHEL&#xff08;Red Hat Enterprise Linux&#xff09;9 的源代码构建。CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个免费的企业级 Linux 发行版&#xff0c;旨在提供一个与 RHEL 兼…