强化学习——贝尔曼公式

文章目录

  • 前言
  • 一、Return的重要性
  • 二、State Value
  • 三、贝尔曼公式
  • 总结


前言

  


一、Return的重要性

  在不同策略下,最终得到的return都会有所不同。因此,return可以用来评估策略。

  return的计算公式在基础概念中已经给出,通过包含 γ {\gamma} γ与r的乘积的式子计算出来。
  即return = r1 + r2 * γ {\gamma} γ + r3 * γ {\gamma} γ2 + …… rn * γ {\gamma} γn-1

  如下图所示,状态转移与奖励值如下图所示。使用vi来表示从si出发的return。

  v1 = r1 + γ {\gamma} γr2 + γ {\gamma} γ2 r3 + …… (1)
  v2 = r2 + γ {\gamma} γr3 + γ {\gamma} γ2 r4 + …… (2)
  v3 = r3 + γ {\gamma} γr4 + γ {\gamma} γ2 r1 + …… (3)
  v4 = r4 + γ {\gamma} γr1 + γ {\gamma} γ2 r2 + …… (4)

  根据式(1)(2)可得 v1 = r1 + γ {\gamma} γ (r2 + γ {\gamma} γr3 + ……) = r1 + γ {\gamma} γv2 (5)
  同理可得:
   v2 = r2 + γ {\gamma} γv3 (6)
   v3 = r3 + γ {\gamma} γv4 (7)
   v4 = r4 + γ {\gamma} γv1 (8)

  上述推导公式表明,从任何一个状态出发所获得的return都是依赖于从其他地方出发获得的return。因此这种return依赖的现象被称为Bootstrapping。

  将其表示成矩阵形式即V = r + γ {\gamma} γP v (9)

  在上面最终所推导出的公式即为贝尔曼公式。但上述的公式只是基于特殊情况下成立的。
在这里插入图片描述

二、State Value

  考虑简单的一步St —At—>Rt+1,St+1

  • t,t+1:描述时刻
  • St:t时刻的状态
  • At:在状态St时采取的行动
  • Rt+1:在执行At后所获得的reward
  • St+1:执行At后所转移到的状态

  这步取决于下面所述的概率分布

  • St ——> At 取决于 π {\pi} π(At = a|St = s)
  • St,At ——> Rt+1 取决于 p(Rt+1 = r|St = s,At = a)
  • St,At ——> St+1 取决于 p(St+1 = s’|St = s,At = a)

  此时,我们假定知晓概率分布

  可以将此单步转化成多步的trajectory
  St —At—>Rt+1,St+1—At+1—>Rt+2,St+2—At+2—>Rt+3 + ……

  discounted return Gt = Rt+1 + γ {\gamma} γRt+2 + γ {\gamma} γ2 Rt+3+ ……
  其中 γ {\gamma} γ ∈ [0,1) 表示discount rate
  Gt是一个随机变量,因为Rt+1 ,Rt+2,……都是随机变量。

  state value(mean、value)实际上是Gt 的期望。
  v π {\pi} π(s)= E[Gt | St = s]
  该值与开始的起点有关
  其是一个基于策略 π {\pi} π的函数。不同策略下的state value不相同
  state value不仅仅是一种数值,也表达一种价值。随着state value的增大,更多的rewards会被得到。

  return和state value的区别在于前者是针对单个trajectory求return,state value是对多个trajectory求return的平均值。

三、贝尔曼公式

  贝尔曼公式描述了不同状态下的state value的关系。

  考虑一个随机的trajectory St —At—>Rt+1,St+1—At+1—>Rt+2,St+2—At+2—>Rt+3 + ……

  Gt = Rt+1 + γ {\gamma} γRt+2 + γ {\gamma} γ2 Rt+3+ ……= Rt+1 + γ {\gamma} γ(Rt+2 + γ {\gamma} γRt+3 + ……) = Rt+1 + γ {\gamma} γGt+1

  根据 State value的定义:
  v π {\pi} π(s)= E[Gt | St = s] = E[Rt+1 + γ {\gamma} γGt+1 | St = s] = E[Rt+1 | St = s] + γ {\gamma} γE[Gt+1 | St = s]

  首先先计算E[Rt+1 | St = s]
  E[Rt+1 | St = s] = ∑ \sum π {\pi} π(a | s) E[Rt+1 | St = s, At = a] = ∑ \sum π {\pi} π(a | s) ∑ \sum p(r | s,a)r
  其代表的即时奖励的期望。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

使用MFC编写一个paddleclas预测软件

目录 写作目的 环境准备 下载编译环境 解压预编译库 准备训练文件 模型文件 图像文件 路径整理 准备预测代码 创建预测应用 新建mfc应用 拷贝文档 配置环境 界面布局 添加回cpp文件 修改函数 报错1解决 报错2未解决 修改infer代码 修改MFCPaddleClasDlg.cp…

CSS特效032:2025庆新春,孔明灯向上旋转飘移效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

3D云展厅对文物保护有什么意义?

在文化遗产保护领域,3D云展厅技术的应用正成为一股新兴力量,它不仅改变了文物展示的方式,也为文物保护工作带来了深远的影响。 下面,由【圆桌3D云展厅平台】为大家介绍一下3D云展厅对文物保护意义的详细探讨。 1. 减少物理接触&a…

spring入门程序

安装eclipse https://blog.csdn.net/qq_36437991/article/details/131644570 新建maven项目 安装依赖包 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&quo…

vue 修改vant样式NoticeBar中的图标,不用插槽可以直接用图片

使用文档中是可以直接使用图片链接的 :left-icon"require(../../assets/newImages/noticeImg.png)" <html> .... <NoticeBarmode""color"#C6C6C6"background""v-if"global_info.site_bulletin":left-icon"r…

MySQL数据导出导出的三种办法(1316)

数据导入导出 基本概述 目前常用的有3中数据导入与导出方法&#xff1a; 使用mysqldump工具&#xff1a; 优点&#xff1a; 简单易用&#xff0c;只需一条命令即可完成数据导出。可以导出表结构和数据&#xff0c;方便完整备份。支持过滤条件&#xff0c;可以选择导出部分数据…

【亲测有效】k8s分布式集群安装部署

1.实验环境准备 准备三台centos7虚拟机&#xff0c;用来部署k8s集群&#xff1a; master&#xff08;hadoop1&#xff0c;192.168.229.111&#xff09;配置&#xff1a; 操作系统&#xff1a;centos7.3以及更高版本都可以配置&#xff1a;4核cpu&#xff0c;4G内存&#xff…

点进CSS选择器

CSS 1.直接在标签的style属性进行设置(行内式) //写在数据单元格td标签内的stytle&#xff0c;设置color颜色和font-size字体大小&#xff1b; <td rowspan"3" style"color: red;font-size: 12px;">Web技术与应用</td> 2.写在head标签中的…

【C#特性整理】C#特性及语法基础

1. C#特性 1.1 统一的类型系统 C#中, 所有类型都共享一个公共的基类型. 例如&#xff0c;任何类型的实例都可以通过调用ToString方法将自身转换为一个字符串 1.2 类和接口 接口: 用于将标准与实现隔离, 仅仅定义行为,不做实现. 1.3 属性、方法、事件 属性: 封装了一部分对…

Flutter DragTarget拖拽控件详解

文章目录 1. DragTarget 控件的构造函数主要参数&#xff1a; 2. DragTarget 的工作原理3. 常见用法示例 1&#xff1a;实现一个简单的拖拽目标解释&#xff1a;示例 2&#xff1a;与 Draggable 结合使用解释&#xff1a; 4. DragTarget 的回调详解5. 总结 DragTarget 是 Flutt…

因系统默认 而未注意过的 create UTF-8 files: with no BOM导致的问题

简单记录一次 开发问题 因为一次编码问题&#xff0c;同事帮忙改了 File Encodings的配置。 没有想到 一个随意的改动with no BOM ------ with BOM &#xff08;自言自语 这个选啥&#xff09;&#xff0c;让一个开发 投入了三四个小时 来排查这个问题。尽其所有思路和方法&am…

前端正在被“锈”化

jeff Atwood 在 2007 年说&#xff1a;"any application that can be writen in JavaScript , willeventually be written in JavaScript"&#xff0c;翻译过来就是&#xff1a;“任何可以使用 JavaScript 来编写的应用&#xff0c;并最终也会由 JavaScript 编写”&a…

【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)

Ubuntu server 18.04 搭建Slurm并行计算环境&#xff08;包含NFS&#xff09; 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…

SELECT 语句用法大全:数据库查询的核心力量

在数据库的世界中&#xff0c;SELECT 语句犹如一把万能钥匙&#xff0c;开启了数据检索的大门&#xff0c;让我们能够从海量的数据中精准地获取所需的信息。它的用法丰富多样&#xff0c;涵盖了从简单的数据查看&#xff0c;到复杂的数据统计和关联查询等多个方面&#xff0c;为…

小程序配置文件 —— 14 全局配置 - tabbar配置

全局配置 - tabBar配置 tabBar 字段&#xff1a;定义小程序顶部、底部 tab 栏&#xff0c;用以实现页面之间的快速切换&#xff1b;可以通过 tabBar 配置项指定 tab 栏的表现&#xff0c;以及 tab 切换时显示的对应页面&#xff1b; 在上面图中&#xff0c;标注了一些 tabBar …

计算机网络 (8)物理层的传输方式

一、串行传输与并行传输 串行传输 定义&#xff1a;串行传输是一种数据传输方式&#xff0c;指的是逐位地按照顺序传输数据。在串行传输中&#xff0c;数据位逐个按照一定的顺序进行传输&#xff0c;可以通过单条线路或信道进行。特点&#xff1a; 逐位传输&#xff1a;串行传输…

Edge如何获得纯净的启动界面

启动Edge会出现快速链接&#xff0c;推广链接&#xff0c;网站导航&#xff0c;显示小组件&#xff0c;显示信息提要&#xff0c;背景 ●复杂页面 ●精简页面 点击页面设置按钮 关闭快速链接 关闭网站导航 关闭小组件 关闭信息提要 关闭背景 关闭天气提示 精简页面看起来十分舒…

细说STM32F407单片机CAN基础知识及其HAL驱动程序

目录 一、CAN总线结构和传输协议 1、 CAN总线结构 &#xff08;1&#xff09;闭环结构的CAN总线网络 &#xff08;2&#xff09;开环结构的CAN总线网络 &#xff08;3&#xff09;隐性电平和显性电平 2、CAN总线传输协议 &#xff08;1&#xff09;CAN总线传输特点 &am…

计算机的错误计算(一百九十六)

摘要 用两个大模型计算 arccos(0.444). 结果保留 4位有效数字。两个大模型的计算结果相同&#xff0c;并均有误差。 例1. 计算 arccos(0.444). 结果保留 4位有效数字。 下面是与一个大模型的对话。 以上为与一大模型的对话。 下面是与另一大模型的对话。 点评&#xff1a; &…

打印进度条

文章目录 1.Python语言实现(1)黑白色(2)彩色&#xff1a;蓝色 2.C语言实现(1)黑白颜色(2)彩色版&#xff1a;红绿色 1.Python语言实现 (1)黑白色 import sys import timedef progress_bar(percentage, width50):"""打印进度条:param percentage: 当前进度百分比…