[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 

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

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

相关文章

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

LEEDCODE 220 存在重复元素3

class Solution { public:int getId(int a, int valuediff){// 值// return a/(valuediff1);return a < 0 ? (a ) -) / (valuediff 1) - 1 : a / (valuediff 1);}public: unordered_map<int, int> bucket;bool containsNearbyAlmostDuplicate(vector<int>&am…

【Java实现图书管理系统】

图书管理系统 1. 设计背景2. 设计思路3. 模块展示代码演示3.1 Book类3.2 BookList类&#xff08;书架类&#xff09;3.4 用户类 - User类3.5 子类管理员类 -- AdminUser类3.6 子类普通用户类 -- NormalUser类3.7 操作接口3.8 操作类3.8.1 查找操作 -- FindOperation类3.8.2 增加…

【excel技巧】Excel表格里的图片如何批量调整大小?

Excel表格里面插入了很多图片&#xff0c;但是每张图片大小不一&#xff0c;如何做到每张图片都完美的与单元格大小相同&#xff1f;并且能够根据单元格来改变大小&#xff1f;今天分享&#xff0c;excel表格里的图片如何批量调整大小。 方法如下&#xff1a; 点击表格中的一…

VBA技术资料MF83:将Word文档批量另存为PDF文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

JS原生-弹框+阿里巴巴矢量图

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&q…

Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等

1、uname --help 使用uname --help查看uname命令的帮助信息 2、uname -a 通过上面的help就知道-a选项显示全部内容时的含义了。 内核名是Linux主机名是lubancat&#xff0c;如果想看主机名可以使用命令hostname&#xff1b;内核版本是Linux 4.19.232&#xff0c;建立时间为2…

NewStarCTF2023 Reverse方向Week3 ez_chal WP

分析 题目&#xff1a;ez_chal 一个XTEA加密&#xff0c; V6是key&#xff0c;v5是输入&#xff0c;然后v7就是密文。 看了v6&#xff0c;要用动调。 ELF文件用ida的远程调试。 然后在kali上输入长度为32的flag 全部转换成dd 再提取密文。 EXP #include <stdio.h>…

使用Spring Boot实现大文件断点续传及文件校验

一、简介 随着互联网的快速发展&#xff0c;大文件的传输成为了互联网应用的重要组成部分。然而&#xff0c;由于网络不稳定等因素的影响&#xff0c;大文件的传输经常会出现中断的情况&#xff0c;这时需要重新传输&#xff0c;导致传输效率低下。 为了解决这个问题&#xff…

OpenCV中的像素重映射原理及实战分析

引言 映射是个数学术语&#xff0c;指两个元素的集之间元素相互“对应”的关系&#xff0c;为名词。映射&#xff0c;或者射影&#xff0c;在数学及相关的领域经常等同于函数。 基于此&#xff0c;部分映射就相当于部分函数&#xff0c;而完全映射相当于完全函数。 说的简单点…

2.FastRunner定时任务Celery+RabbitMQ

注意&#xff1a;celery版本和Python冲突问题 不能用高版本Python 用3.5以下&#xff0c;因为项目的celery用的django-celery 3.2.2 python3.7 async关键字 冲突版本 celery3.x方案一&#xff1a; celery3.xpython3.6方案二 &#xff1a; celery4.xpython3.7 解决celery执…

海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法

Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步&#xff0c;使用 VS 新建一个框架为.NET Framework 4.6.1&#xff0c;平台去勾选首选 32 为的工程&#xff0c;重新生成解决方案&#xff0c;保证工程 Debug 下存在 exe 文件&#xff0c;最后关闭新建工程&#xff1…

2024有哪些免费的mac苹果电脑内存清理工具?

在我们日常使用苹果电脑的过程中&#xff0c;随着时间的推移&#xff0c;可能会发现设备的速度变慢了&#xff0c;甚至出现卡顿的现象。其中一个常见的原因就是程序占用内存过多&#xff0c;导致系统无法高效地运行。那么&#xff0c;苹果电脑内存怎么清理呢&#xff1f;本文将…

Linux动静态库

文章目录 1. 静态库2. 动态库3. 动态库的加载 本章代码gitee仓库&#xff1a;动静态库 1. 静态库 Linux开发工具gcc/g篇&#xff0c;此篇文章讲过动静态库的基本概念&#xff0c;不了解的可以先看一下这篇文章。 现在我们先来制作一个简单的静态库 mymath.h #pragma once#i…

Jmeter- Beanshell语法和常用内置对象(网络整理)

在利用jmeter进行接口测试或者性能测试的时候&#xff0c;我们需要处理一些复杂的请求&#xff0c;此时就需要利用beanshell脚本了&#xff0c;BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法&#xff0c;所以它和java是可以无缝衔接的。beans…

<MySQL> 什么是数据库索引?数据库索引的底层结构是什么?

目录 一、什么是数据库索引? 1.1 索引的概念 1.2 索引的特点 1.3 索引的适用场景 1.4 索引的使用 1.4.1 创建索引 1.4.2 查看索引 1.4.3 删除索引 二、数据库索引的底层结构是什么&#xff1f; 2.1 数据库中的 B树 长啥样&#xff1f; 2.2 B树为什么适合做数据库索…

B树与B+树

B树 B树&#xff0c;又称多路平衡查找树&#xff0c;B树中所有结点的孩子个数的最大值称为B树的阶&#xff0c;通常用m表示。一颗m阶B树或为空树&#xff0c;或为满足如下特征的m叉树。 树中每个结点至多有m棵子树&#xff0c;即至多含有m-1个关键字若根结点不是终端结点&…

从0到0.01入门 Webpack| 002.精选 Webpack面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

力扣刷题篇之数与位3

系列文章目录 目录 系列文章目录 前言 数学问题 总结 前言 本系列是个人力扣刷题汇总&#xff0c;本文是数与位。刷题顺序按照[力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 - 力扣&#xff08;LeetCode&#xff09; 数学问题 204. 计数质数 - 力扣&#xff08;Le…

【开源】基于JAVA的大学兼职教师管理系统

项目编号&#xff1a; S 004 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S004&#xff0c;文末获取源码。} 项目编号&#xff1a;S004&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管…