[PyTorch][chapter 63][强化学习-时序差分学习]

news2024/11/29 8:46:52

目录:

  1.    蒙特卡罗强化学习的问题
  2.    基于转移的策略评估
  3.    时序差分评估
  4.     Sarsa-算法
  5.     Q-学习算法

一  蒙特卡罗强化学习的的问题

     有模型学习: Bellman 等式 

      V_{T}^{\pi}(s)= \sum_{a \in A} \pi (s,a) \sum_{s^{'} \in S}P_{s \to s^{'} }^{a}(R_{s \to s^{'}}^a+\gamma V_{\gamma}^{\pi}(s^{'}))

     免模型学习: 蒙特卡罗强化学习

   迭代:

       使用策略 \pi 生成一个轨迹,\begin{Bmatrix} s_0,a_0,r_1,s_1,a_1,r_2,...a_{T-1},r_T,s_T \end{Bmatrix}

       for t = 0,1,...T-1 do #完成多次采样的动作

               R=\frac{1}{T-t}\sum_{i=t+1}^{T}r_i : 累积奖赏

               Q(s_t,a_t)=\frac{Q(s_t,a_t)*count(s_t,a_t)+R}{count(s_t,a_t)+1}求平均累积奖赏作为期望累积奖赏(有模型学习)的近似

              count(s_t,a_t)=count(s_t,a_t)+1

       

     1.1 优点:
            便于理解
            样本数足够时可以保证收敛性
   
       2.2  缺点
            状态值的学习互相独立
            没有充分状态之间的联系

   例4次采样:

   B 和 E 状态同样转移到C 状态,但是最后的平均累积奖赏却相差很大

   V(E)=(4-98)/2=-47

   V(B)=(4+4)/2=4

小样本对强化学习最终的结果影响特别大,B和E 都转移到C状态

能否用C 来辅助估计B和E, 这也是有模型学习里面的状态转移概率的思想 P_{s \to s^{'}}^{a} 

 如下C 出现的次数最多(大数定理),能否用出现次数多的来辅助估计出现次数少的

状态更新次数
C2
E2
B2

二 基于转移的策略评估

     通过策略评估提升我们对策略的评估

      v^{\pi}(s)= R(s,a)+\gamma \sum_{s^{'}}p(s^{'}|s,a)v^{\pi}(s^{'})(bellman 公式: 即时奖励+转移概率*下一刻状态的累积奖赏)

    思路: 采样所有到达s^{'}的转移做平均

    假设采样转移为

   sample1: (s,a,r_1,s_1^{'})

  sample2: (s,a,r_2,s_2^{'})

   sample3: (s,a,r_3,s_3^{'})

   则:

   sample1: =r_1+\gamma V^{\pi}(s_1^{'})

   sample2: =r_2+\gamma V^{\pi}(s_2^{'})

   sample3: =r_3+\gamma V^{\pi}(s_3^{'})

   v^{\pi}(s)=\frac{1}{N}(\sum_{i=1} sample_{i})  跟bellman 很相似,少了转移概率,但是思想一样

如果 s 更高的转移到某个状态,该状态会更高的出现在样本库里面

  


三 时序差分评估TD

    3.1 原理

     当我们经历一个从状态s 出发的转移样本的四元组(s,a,s',r) ,更新v^{\pi}(s)
转移概率更大的状态s' 的值对s的更新影响更大.

     时序差分评估: 将状态值朝着后续出现的状态值靠近

     采用滑动平均的方案

 采样:

         v^{\pi}(s):  sample =r_1+\gamma v^{\pi}(s^{'})

 更新:

        v^{\pi}(s)=(1-\alpha)v^{\pi}(s)+\alpha*sample(历史的价值函数+ 当前的价值函数)

                      =v^{\pi}(s)+\alpha(sample-v^{\pi}(s))

  3.2 总结

     

    3.3 算法

 


四 Sarsa-算法

  同策略

    4.1 输入:

         环境E

         动作空间A

         起始状态s_0

         奖赏折扣\gamma : 通常为(0.8,1]

         更新步长\alpha: 通常为0.5

     过程:

               Q(s,a)=0,\pi(s,a)=\frac{|}{|A(s)|}

                s=s_0,a=\pi(s)

               for \, \, \, \, t=1,2,...do

                                r,s^{'}= 在E中执行动作a 产生的奖赏与转移的状态

                                得到四元组样本:(s,a,r,s^{'})

                                 a^{'}=\pi^{\epsilon }(s^{'})

                                 Q(s,a)=Q(s,a)+\alpha(r+\gamma Q(s^{'},a{'})-Q(s,a))

                                 \pi(s)= argmax_{a^{"}}Q(s,a^{"})

                                  s=s^{'},a=a^{'}

             end \, \, for 


五  Q-学习算法

    异策略(这种更常用)

    4.1 输入:

         环境E

         动作空间A

         起始状态s_0

         奖赏折扣\gamma : 通常为(0.8,1]

         更新步长\alpha: 通常为0.5

     过程:

               Q(s,a)=0,\pi(s,a)=\frac{|}{|A(s)|}

                s=s_0

               for \, \, \, \, t=1,2,...do

                                r,s^{'}= 在E中执行动作a=\pi^{\epsilon }(s)产生的奖赏与转移的状态

                                得到四元组样本:(s,a,r,s^{'})

                                 a^{'}=\pi(s^{'})

                                 Q(s,a)=Q(s,a)+\alpha(r+\gamma Q(s^{'},a{'})-Q(s,a))

                                 \pi(s)= argmax_{a^{"}}Q(s,a^{"})

                                  s=s^{'}

             end \, \, for 

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

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

相关文章

VMware17虚拟机Linux安装教程(详解附图,带VMware Workstation 17 Pro安装)

一、安装 VMware 附官方下载链接(VM 17 pro):https://download3.vmware.com/software/WKST-1701-WIN/VMware-workstation-full-17.0.1-21139696.exe 打开下载好的VMware Workstation 17 Pro安装包; 点击下一步; 勾选我…

损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)

KL散度(Kullback-Leibler Divergence,简称KL散度)是一种度量两个概率分布之间差异的指标,也被称为相对熵(Relative Entropy)。KL散度被广泛应用于信息论、统计学、机器学习和数据科学等领域。 KL散度衡量的…

kafka个人笔记

大部分内容源于https://segmentfault.com/a/1190000038173886, 本人手敲一边加强印象方便复习 消息系统的作用 解耦 冗余 扩展性 灵活性(峰值处理 可恢复 顺序保证 缓冲 异步 解耦:扩展两边处理过程,只需要让他们遵守约束即可冗余&#xf…

ubuntu 20通过docker安装onlyoffice,并配置https访问

目录 一、安装docker (一)更新包列表和安装依赖项 (二)添加Docker的官方GPG密钥 (三)添加Docker存储库 (四)安装Docker (五)启动Docker服务并设置它随系…

MySQL覆盖索引的含义

覆盖索引:SQL只需要通过索引就可以返回查询所需要的数据,而不必通过二级索引查到主键之后再去查询数据,因为查询主键索引的 B 树的成本会比查询二级索引的 B 的成本大。 也就是说我select的列就是我的索引列(或者主键,…

整理笔记——MOS管、三极管、IGBT

一、MOS管 在实际生活要控制点亮一个灯,例如家里的照明能,灯和电源之间就需要一个开关需要人为的打开和关闭。 再设计电路板时,如果要使用MCU来控制一个灯的开关,通常会用mos管或是三极管来做这个开关元件。这样就可以通过MCU的信…

填充每个节点的下一个右侧节点指针

题目链接 填充每个节点的下一个右侧节点指针 题目描述 注意点 给定一个 完美二叉树 解答思路 广度优先遍历一层层的遍历二叉树,将每一层节点的next指针都指向右侧节点 代码 class Solution {public Node connect(Node root) {if (root null) {return null;}…

【YOLOX简述】

YOLOX的简述 一、 原因1. 背景2. 概念 二、 算法介绍2.1 YOLOX算法结构图:2.2 算法独特点2.3 Focus网络结构2.4 FPN,PAN2.5 BaseConv2.6 SPP2.7 CSPDarknet2.8 YOlO Head 三、预测曲线3.1 曲线 一、 原因 1. 背景 工业的缺陷检测是计算机视觉中不可缺少…

2022年第八届美亚杯个人赛复盘

以学生的身份最后一次打美亚杯了还是要记录一下的写个wp告别哈哈。 1.[单选题] 王晓琳在这本电子书籍里最后对哪段文字加入了重点标示效果(Highlight)?(2分) A. 卿有何妙计 B. 宝玉已是三杯过去了 C. 武松那日早饭罢 D. 就除他做个强马温罢 2.[多选题] 王晓的手机里有一个 …

c#之反射详解

总目录 文章目录 总目录一、反射是什么?1、C#编译运行过程2、反射与元数据3、反射的优缺点 二、反射的使用1、反射相关的类和命名空间1、System.Type类的应用2、System.Activator类的应用3、System.Reflection.Assembly类的应用4、System.Reflection.Module类的应用…

销售管道管理软件推荐:提升销售业绩与效率

在企业中销售部门扮演着锐意进取的尖刀部队的角色,肩负着拓展公司发展领土的重要责任。销售管理是一个漫长而复杂的过程,需要经历潜在的商机、联系跟进、签订合同以及赢得订单等关键里程碑,无论是面向C端用户的销售还是面向企业复杂产品的销售…

TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…

前台页面从数据库中获取下拉框值

后端&#xff1a;查询所有信息 前台&#xff1a;elementUI <el-select v-model"searchData.stationName" clearable> <el-option :label"item.stationName" :value"item.stationName" v-for"item in stationNameList&quo…

根据店铺ID/店铺链接/店铺昵称获取京东店铺所有商品数据接口|京东店铺所有商品数据接口|京东API接口

要获取京东店铺的所有商品数据&#xff0c;您需要使用京东开放平台提供的API接口。以下是一些可能有用的API接口&#xff1a; 商品SKU列表接口&#xff1a;该接口可以获取指定店铺下的所有商品SKU列表&#xff0c;包括商品ID、名称、价格等信息。您可以使用该接口来获取店铺中…

SpringBoot3新特性

本篇文章参考尚硅谷springboot3课程: https://www.bilibili.com/video/BV1Es4y1q7Bf?p94&vd_sourced6deb2b69988de2ae72087817e5143d7 原版笔记: https://www.yuque.com/leifengyang/springboot3/xy9gqc2ezocvz4wn 1.自动配置包位置变化 现在指定自动配置类放在了下面这…

俄罗斯方块小游戏

框架 package 框架;import java.awt.image.BufferedImage; import java.util.Objects;/*** author xiaoZhao* date 2022/5/7* describe* 小方块类* 方法&#xff1a; 左移、右移、下落*/ public class Cell {// 行private int row;// 列private int col;private BufferedIm…

kubernetes集群编排——etcd

备份 从镜像中拷贝etcdctl二进制命令 [rootk8s1 ~]# docker run -it --rm reg.westos.org/k8s/etcd:3.5.6-0 sh 输入ctrlpq快捷键&#xff0c;把容器打入后台 获取容器id [rootk8s1 ~]# docker ps 从容器拷贝命令到本机 docker container cp c7e28b381f07:/usr/local/bin/etcdc…

python爬虫概述及简单实践:获取豆瓣电影排行榜

目录 前言 Python爬虫概述 简单实践 - 获取豆瓣电影排行榜 1. 分析目标网页 2. 获取页面内容 3. 解析页面 4. 数据存储 5. 使用代理IP 总结 前言 Python爬虫是指通过程序自动化地对互联网上的信息进行抓取和分析的一种技术。Python作为一门易于学习且强大的编程语言&…

mysql数据模型

创建数据库 命令 create database hellox &#xff1a; &#xff08; hellox名字&#xff09; sql语句 创建 数据库 命令 create database hell&#xff1b; 也是创建但是有数据库不创建 命令 create database if not exists hell ; 切换数据库 命令 use hello&…

Facebook内容的类型

随着人们日益依赖的社交媒体来进行信息获取与交流&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;那么Facebook的内容都有哪些类型呢&#xff1f;下面小编来讲讲吧&#xff01; 1、实时发生的事 我们需要实时了解时事动态&#xff0c;这样可以使用户对品牌发…