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

目录:

  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 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 前言一. 电路交换1.1 电路交换讲解1.2 电路交换实例 二. 分组交换1.1 分组交换讲解1.2 分组交换实例…

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

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

基于Java+SpringBoot制作一个智能用电小程序

在当今快节奏的生活中,高效利用能源变得越来越重要。制作一个智能用电小程序,旨在帮助您更智能地管理家庭电器的用电,从而提升能源利用效率,助您掌握用电情况,降低能耗成本,实现绿色低碳生活。 目录 一、小程序1.1 项目创建1.2 首页轮播图快捷导航iconfont图标引入

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

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

kafka个人笔记

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

网络层协议 ——— IP协议

文章目录 IP协议基本概念IP协议格式分片与组装网段划分特殊的IP地址IP地址的数量限制私网IP地址和公网IP地址路由路由表生成算法 IP协议 IP协议全称为“网际互连协议(Internet Protocol)”,IP协议是TCP/IP体系中的网络层协议。 基本概念 网…

只使用JS怎么给静态页面网站添加站内全局搜索功能?

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 背景 静态页面通常由HTML、CSS 和 JavaScript…

荣誉榜再度添彩!热烈祝贺旭帆科技荣获安徽省大数据企业!

2023年11月3日,安徽省数据资源管理局网站发布《关于2023年度安徽省大数据企业名单的公示》,经企业申报、各市初审推荐、专家评审、审查认定等程序,安徽旭帆信息科技有限公司(以下简称“旭帆科技”)凭借在视频大数据应用…

【Unity地编】地形系统搭建入门详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:UI_…

系列十、堆参数调优

一、堆内存调优参数 -Xms堆空间的最小值,默认为物理内存的1/64-Xmx堆空间的最大值,默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 二、获取堆内存的默认物理内存 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获…

在Linux上安装Oracle 数据库 11g

好久没碰11g了,今天(2023年11月16日)因为有个需求又装了一遍。 在OCI上安装了一个Oracle Linux 6实例: $ uname -a Linux instance-20231116-1239-db11g 4.1.12-124.80.1.el6uek.x86_64 #2 SMP Mon Oct 9 02:32:10 PDT 2023 x86…

ATE测试设备功能、原理、特点详解

ATE(Automatic Test Equipment)自动测试设备是用于检测电子产品、电气设备的自动化测试系统,是电测行业首选的一种测试方式,被广泛应用于通信、消费电子、汽车电子、智能家居、半导体、电源模块、医疗电子、航天航空等领域。ATE测试设备在电子设计、研发…

【自动化测试】基于Selenium + Python的web自动化框架!

一、什么是Selenium? Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE&…

网站使用什么协议比较好

网站协议大多数使用HTTP和HTTPS HTTP协议,超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议。 HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议&…

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

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

我这些年对于自动化测试的理解

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

MySQL/SQLServer判断字符是纯数字或者是其它字符

如下是MySQL表结构设计&#xff08;演示所用&#xff09;&#xff1a; MySQL表关联数据如下所示&#xff1a; 【场景&#xff1a;查询所有数字&#xff0c;包含小数点】&#xff0c;SQL如下所示&#xff1a; SELECT * FROM data WHERE message not REGEXP [^0-9].[^0-9] My…

centos虚拟机使用docker下载镜像太慢的解决办法

虚拟环境&#xff1a; 1、VMware Workstation 16 Pro 2、CentOS 7&#xff08;CentOS Linux release 7.9.2009 (Core)&#xff0c;内核版本3.10.0-1160.el7.x86_64&#xff09; 问题描述&#xff1a; 虚拟机可以与物理主机互相Ping通&#xff0c;也可以Ping通百度&#xff0…

MariaDB安装配置、使用、授权、增删改查以及数据库备份与恢复

目录 1 MariaDB安装 1.1 MariaDB源配置 1.2 清空缓存 1.3 安装MariaDB 2 MariaDB的基本配置 2.1 启动MariaDB 2.2 MariaDB进程查看 2.3 MariaDB数据库初始化 2.3.1 数据库初始化 2.3.2 初始化测试登录 3 MariaDB的使用 3.1 查看数据库 3.2 修改密码 3.3 创建数据库test 3…

《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试

在检查程序报错除了断点调试&#xff0c;生成log日志&#xff0c;还有种直接的方法&#xff0c;调试dump文件&#xff0c;该调试方法可以在运行exe程序崩溃时进行调试。文章末尾有下载链接。 头文件 #include "crashdump.h"在mainWindow或主程序最开始处加下面代码…