贝尔曼公式

news2024/11/27 20:36:17

为什么return 非常重要

在选择哪个策略更好的时候,此时需要使用到return,比如下面三个策略的返回值。

  • 策略1: \frac{\gamma}{1-\gamma}
  • 策略2:-1 + \frac{\gamma}{1-\gamma}
  • 策略3:涉及到两个policy's path

How to calculate return

  • 定义

上图定义了不同的起点下的return value

  • 递推式

The returns rely on the others' return. - >Bootstrapping.

  • 矩阵化

可以写成矩阵的形式 -> 贝尔曼公式:

v = r + \gamma P v

state value

  • 单步的过程

  • 多步的过程

  • state value 是关于s(状态)的function,不同的状态会得到不同的state value
  • state value是基于policy的,不同的policy得到不同的state value
  • 如果state value greater,那么这个策略会更好,因为更多的分数可以得到

贝尔曼公式

  • E[R_{t+1} + \gamma G_{t+1}| S_{t} = s] = E[R_{t+1}| S_{t} = s] + \gamma E[G_{t+1} | S_{t} = s]
    • calculate E[R_{t+1}| S_{t} = s]
      • 其实就是对当前的状态s的情况下求不同的action在策略概率下在下一个时刻得分的平均p(r|s,a)代表我在当前状态s,经过action a得到分数r的概率。\pi(a|s)表示当前状态是s,执行action a的概率。E[G_{t+1} | S_{t} = s]
        • 这里有几个注意点,首先无记忆性,就是当我已经知道了S_{t+1} = s'那么就不需要知道S_{t} = s
        • \sum _{a}p(s'|s,a)\pi(a|s)表示,当前的状态是s,采取行动a,到达状态s'的期望

贝尔曼公式

  • 描述了state-value 在不同的state的关系
  • 两种不同的term 瞬时回报(immediate reward) 和future reward
  • 这不是一个式子,是一个状态的集合式子,比如n个状态,n个式子

  • v_π(s) 和 v_π(s') 是我们要计算的状态值,计算的思想就是 Bootstrapping ! 直观上来讲,等式左边的状态值(state value)v_π(s) 依赖于等式右边的状态值(state value)v_π(s') ,看起来好像没法计算,其实我们有一组这样的式子,把这些式子连立就可以算出来。
  • 公式中的 π(a|s) 是给定的策略 policy(是一种概率 probability)。解方程称为策略评估(policy evaluation):贝尔曼公式依赖于策略(policy),如果我们能计算出状态值(state value),其实我们在做的一件事就是评估这个策略(policy evaluation)究竟是好是坏。
  • 奖励概率 (Reward probability) p(r|s,a) 和状态转换概率(State transition probability) p(s'|s,a) 代表的是动态模型(dynamic model)或称为环境模型(environment model):分两种情况,一种是我们知道这个模型(model),在本节和下节当中我们都会假设知道这个 model,给出来相应的算法;一种是不知道模型(model),这种情况下我们仍然可以求出 state value,这就是 model free reinforcement learning 的算法。

例子

当在S1状态的时候求贝尔曼公式:

  • 因为只有一个action的概率,所以\pi(a = a_{3} | s_{1}) = 1其它为0,可以把求和拿掉p(0|s1,a3) = 1 ,r =0
  • 乘起来为0,因为其它的r的得分概率为0,那么这一项为0,不需要求和p(s3 | s1, a3) = 1

得出:v_{\pi}(s) = 0 + \gamma v_{\pi} (s_{3})

v_{\pi}(s_{4}) = 1 + \gamma v_{\pi}(s_4)=1 + \gamma + \gamma^2 +..... = \frac{1}{1-\gamma}

这里得到s1的state value的值为8.5,这个policy是没有上一个policy好的

Matrix-vector form

  • 将公式简化

  • 向量化

这里的v,r向量化都很明显,这里的P,实际上是利用举证的乘法,对于其中的v_{\pi}(s_{j})^{T}是一个列向量,那么p_{ij_{k}}就是每一行的值和其列向量相乘得到不同的i对应不同的j的和

得到state value是因为我们需要去评价这个policy

  • 近似法

可以证明当v_{k}趋向无穷的时候,这个v_{k}收敛于v_{\pi}。以下是证明:

例子

以下考虑比较好的两个策略

  • 靠近target的state value都会比较大,越远越小

比较差的策略

action value

  • action value

从一个状态和action出发得到的average return。当我们需要知道哪个action更加好时,使用action value

action value definition

  • q_{\pi}(s,a) = E [G_{t} | S_{t} = s, A_{t} = a]
  • 它是一个state-action函数
  • 它依赖于策略Π

action value和state value的关系E[G_{t}|S_{t} = s] = \sum_{a}E[G_{t}|S_{t} = s, A_{t} = a]\pi(a|s)

=>v_{\pi}(s) = \sum_{a}\pi(a|s)q_{\pi}(s,a)

  • 知道state value可以求得action value
  • 知道action value可以求得state value

  • 虽然这个策略只告诉我们a2,但是实际上每一个action的action value都需要计算

  • 比如q_{\pi}(s_{1},a_{1}),撞墙为-1分,p(s1|s1,a1) = 1因为撞墙还是可以回来

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

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

相关文章

优化销售漏斗建立高效潜在客户生成策略的技巧

如何建立有效的潜在客户生成策略?建立有效潜在客户生成策略需要准确定义目标受众,利用内容营销、SEO、社交媒体、邮件营销和定向广告吸引客户,参加行业会议并跟踪分析数据。借助Zoho CRM系统,企业能够更加高效地管理客户信息&…

Windows上 minGW64 编译 libssh2库

下载libssh2库:https://libssh2.org/download/libssh2-1.11.0.zip 继续下载OpenSSL库: https://codeload.github.com/openssl/openssl/zip/refs/heads/OpenSSL_1_0_2-stable

算法讲解—最小生成树(Kruskal 算法)

算法讲解—最小生成树(Kruskal 算法) 简介 根据度娘的解释我们可以知道,最小生成树(Minimum Spanning Tree, MST)就是:一个有 n n n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n n n 个结点…

【Diffusion分割】CTS:基于一致性的医学图像分割模型

CTS: A Consistency-Based Medical Image Segmentation Model 摘要: 在医学图像分割任务中,扩散模型已显示出巨大的潜力。然而,主流的扩散模型存在采样次数多、预测结果慢等缺点。最近,作为独立生成网络的一致性模型解决了这一问…

【Python】数据可视化之聚类图

目录 clustermap 主要参数 参考实现 clustermap sns.clustermap是Seaborn库中用于创建聚类热图的函数,该函数能够将数据集中的样本按照相似性进行聚类,并将聚类结果以矩阵的形式展示出来。 sns.clustermap主要用于绘制聚类热图,该热图通…

云计算第四阶段 CLOUD2周目 01-03

国庆假期前,给小伙伴们更行完了云计算CLOUD第一周目的内容,现在为大家更行云计算CLOUD二周目内容,内容涉及K8S组件的添加与使用,K8S集群的搭建。最重要的主体还是资源文件的编写。 (*^▽^*) 环境准备: 主机清单 主机…

CUDNN下载配置

目录 简介 下载 配置 简介 cuDNN(CUDA Deep Neural Network library)是NVIDIA开发的一个深度学习GPU加速库,旨在提供高效、标准化的原语(基本操作)来加速深度学习框架(如TensorFlow、PyTorch等&#xf…

Rust 快速入门(一)

Rust安装信息解释 cargo:Rust的编译管理器、包管理器、通用工具。可以用Cargo启动新的项目,构建和运行程序,并管理代码所依赖的所有外部库。 Rustc:Rust的编译器。通常Cargo会替我们调用此编译器。 Rustdoc:是Rust的…

Java 面向对象设计一口气讲完![]~( ̄▽ ̄)~*(上)

目录 Java 类实例 Java面向对象设计 - Java类实例 null引用类型 访问类的字段的点表示法 字段的默认初始化 Java 访问级别 Java面向对象设计 - Java访问级别 Java 导入 Java面向对象设计 - Java导入 单类型导入声明 按需导入声明 静态导入声明 例子 Java 方法 J…

decltype推导规则

decltype推导规则 当用decltype(e)来获取类型时,编译器将依序判断以下四规则: 1.如果e是一个没有带括号的标记符表达式(id-expression)或者类成员访问表达式,那么decltype(e)就是e所命名的实体的类型。此外,如果e是一个被重载的函…

k8s 之安装metrics-server

作者:程序那点事儿 日期:2024/01/29 18:25 metrics-server可帮助我们查看pod的cpu和内存占用情况 kubectl top po nginx-deploy-56696fbb5-mzsgg # 报错,需要Metrics API 下载 Metrics 解决 wget https://github.com/kubernetes-sigs/metri…

基于auth2的单点登录原理理解

创作背景:基于auth2实现企业门户与业务系统的单点登录跳转。 架构组成:4A统一认证中心,门户系统,业务系统,用户; 实现目标:用户登录门户系统后,可通过点击业务系统菜单&#xff0c…

字符串数学专题

粗心的小可 题目描述 小可非常粗心,打字的时候将手放到了比正确位置偏右的一个位置,因此,Q打成了W,E打成了R,H打成了J等等。键盘如下所示 现在给你若干行小可打字的结果,请你还原成正确的文本。 输入描述…

嵌入式面试八股文(五)·一文带你详细了解程序内存分区中的堆与栈的区别

目录 1. 栈的工作原理 1.1 内存分配 1.2 地址生长方向 1.3 生命周期 2. 堆的工作原理 2.1 动态内存分配 2.1.1 malloc函数 2.1.2 calloc函数 2.1.3 realloc函数 2.1.4 free函数 2.2 生命周期管理 2.3 地址生长方向 3. 堆与栈区别 3.1 管理方式不同…

海南聚广众达电子商务咨询有限公司助力商家业绩飙升

在这个短视频与直播风靡的时代,抖音电商无疑成为了众多商家竞相追逐的新风口。作为电商服务领域的佼佼者,海南聚广众达电子商务咨询有限公司凭借其专业的团队、创新的策略与丰富的实战经验,正引领着一批又一批商家在抖音平台上破浪前行&#…

顺序表及其代码实现

目录 前言1.顺序表1.1 顺序表介绍1.2 顺序表基本操作代码实现 总结 前言 顺序表一般不会用来单独存储数据,但自身的优势,很多时候不得不使用顺序表。 1.顺序表 1.1 顺序表介绍 顺序表是物理结构连续的线性表,支持随机存取(底层…

Leetcode—139. 单词拆分【中等】

2024每日刷题&#xff08;173&#xff09; Leetcode—139. 单词拆分 dp实现代码 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {int n s.size();unordered_set<string> ust(wordDict.begin(), wordDict.end());vector<b…

探索基于基于人工智能进行的漏洞评估的前景

根据2023年的一份报告 网络安全企业据估计&#xff0c;到 10.5 年&#xff0c;网络犯罪每年将给世界造成 2025 万亿美元的损失。每年记录在案的网络犯罪数量都会创下新高。这要求对传统的安全测试流程进行重大改变。这就是漏洞评估发挥作用的地方。 漏洞评估对于识别系统中的弱…

双指针_有效三角形个数三数之和四数之和

有效三角形个数 思路&#xff1a; 我们可以通过暴力枚举&#xff0c;三重for循环来算但&#xff0c;时间复杂度过高。 有没有效率更高的算法呢&#xff1f; 我们知道如果两条较短的边小于最长的一条边&#xff0c;那么就可以构成三角形。 如果这个数组是升序的&#xff0c;两…

负压DC-DC开关电源设计

负压DC-DC开关电源设计 与常见的正压输出BUCK电路对比&#xff0c;区别就在于将 原芯片接GND的网络接到了负压输出。 电感一接sW引脚&#xff0c;另外一接到了OV-GND。 注意几点如下: 芯片耐压选择 EN引脚耐压 输入滤波电容的选择 拓扑结构 BOOST模式&#xff1a;当NMO…