强化学习的数学原理:最优贝尔曼公式

news2024/10/6 1:09:36

大纲

贝尔曼最优公式是贝尔曼公式的一个特殊情况,但其也非常重要。

本节课很重要的两个概念和一个工具:

在这里插入图片描述

工具不用多说,就是贝尔曼最优公式,概念则是 optimal state value(最优状态价值) 和 optimal policy(最优策略)。

本节课课程大纲:

在这里插入图片描述

Motivating examples

之前已经举过的例子:

在这里插入图片描述

箭头是策略,也就是 Π,对于这个例子要做的事情其实就是求解贝尔曼公式得到 state value,进而得到 action value,而在这个基础之上呢我们会再介绍一个很有意思的现象。

上图中已经算出了 state value,那么接下来可以根据 state value 来获得 action value:

在这里插入图片描述

那么接下来有一个问题,如果当前这个策略是不太好的,我们怎么去提升它呢?

答案就是依赖 action value:

在这里插入图片描述

从刚刚的计算过程当中不难发现,当采取 action 为 a3 的时候,其 action value 是最大的,那么我们就可以选择 a3 来作为一个新的策略:

在这里插入图片描述

为什么我们刚刚选择 action value 最大的那个 action 就能够得到一个比较好的策略呢?:

在这里插入图片描述

什么时候都能得到最优的 action 吗?显然是肯定的,只要我们不断的去这样做(计算 action value 然后取value 最大的 action),不断地迭代,最后一定会得到一个最优的策略。

也就是说对于每一个状态我们都选择 action value 最大的那个 action,选择完一次后再来一次迭代得到一个新的策略再迭代得到一个新的策略,最后那个策略就会趋向一个最优的策略

而这实际上这个过程已经超出了上图中的这种比较直观的理解,有必要依赖于数学来进行更严格的更透彻的分析,而这个数学的工具就是贝尔曼最优公式

Definition of optimal policy

开始正式的定义 最优策略。

在这里插入图片描述

定义并不麻烦,关键是定义之后需要回答一系列问题,即上图中的问题,而要解决这些问题则可以通过研究贝尔曼最优公式进行解决。

BOE:Introduction

首先直接给出 贝尔曼最优公式,然后再详细分析它的性质。

在这里插入图片描述

最优公式与一般公式其实很相似,就是在策略 Π 前面限定了一个 max Π,此时就嵌套了一个优化问题,我们需要先解决这个优化问题,求解出来这个 Π,然后再把这个 Π 代入到这个式子里面去进行求解。

上图中的一个问题,就是 BOE 中这个 Π 是已知的还是未知的?

对于一个贝尔曼公式来说,其一定是依赖于一个给定的 Π ,但是贝尔曼最优公式是没有给定的,我们必须要去求解这样一个 Π 。

在这里插入图片描述

在这里插入图片描述

BOE:Maximization on the right-hand side

在这里插入图片描述

上图的绿色框中举了一个简单的例子来进行说明如何求解一个表达式中有两个未知数的问题,那么接下来通过从这个例子中获得的启发来解决贝尔曼最优公式中求解最优策略 max Π ,在这儿先要提一点,就是对于公式中的 V 一撇,通常情况下我们会先给一个初始值,所以在给定初始值时那么 V 一撇实际上也是给定的已知项:

在这里插入图片描述

在本课程设定的网格世界中,因为 action 有多个,所以 action value 也会有多个,在 q(s, a) 已知的情况下有q(s, a1)、q(s, a2) … q(s, a5),有这样五个值,那么怎么求解 max Π 呢?

而上图中绿色框部分的内容给了我们一定的启发,即如果 q(s, a) 值确定的话我们怎么样来求解最优的策略 Π :

在这里插入图片描述

BOE:Rewrite as v = f(v)

实际上我们可以把等式右边的这一串式子给写成一个函数:

在这里插入图片描述

因为我们要求解的 max Π 的方法是先固定 v 那么就可以求出来一个 Π,至于这个 Π 是什么样子,最后得到的最优的值是什么其实不用太关心,反正其肯定是关于 v 的一个函数。

因此贝尔曼最优公式就化成了 v = f(v)。

在求解这个式子之前,我们需要先介绍一下 Contraction mapping theorem 。

Contraction mapping theorem(压缩映射定理)

在这里插入图片描述

先来介绍 fixed point 和 contraction mapping 的概念:

在这里插入图片描述

下面是两个例子:

在这里插入图片描述

有了上面两个概念之后就可以引出 contraction mapping theorem(压缩映射定理):

在这里插入图片描述

意思就是对于一个式子:x = f(x),压缩映射定理告诉我们三个重要的结论:

1、existence:我们并不关心函数 f 它的表达式是什么,它只要是一个 contraction mapping,我们就能够确定它一定存在一个 fixed point 满足 f(x*) = x*;

2、uniqueness:我们还能确定这个 fixed point 是唯一存在的;

3、Algorithm:我们还能知道怎么样去解决这样一个 fixed point 。

两个例子再来感受一下这个定理:

在这里插入图片描述

BOE:Solution

在有了压缩映射定理的帮助之后,我们就可以进行 BOE 的求解了。

但是在应用压缩映射定理之前呢,我们需要证明这里面的 f(v) 其是一个 contract mapping:

在这里插入图片描述

在已知 f 是一个 contraction mapping 之后,那么贝尔曼最优公式就可以立刻用 contract mapping theorem 来求解出来:

在这里插入图片描述

由之前的内容可知,贝尔曼最优公式它一定存在一个唯一解,用 v* 来表示,然后可以使用上图中的迭代表达式迭代地求解出来,而这个 Vk 最后会收敛到这个 v*。

BOE:Optimality

分析一下贝尔曼最优公式的解的最优性。

在这里插入图片描述

经过上图的转换,最后能够化成一个贝尔曼公式,而贝尔曼公式一定是对应到一个策略的,那么这个就是对应 Π* 的这样一个贝尔曼公式。自然这里面的 v* 也就是 vΠ* 也就是 Π* 所对应的 state value。

因此贝尔曼最优公式是一种特殊的贝尔曼公式,其对应的策略是比较特殊的,其对应的是一个最优的策略。

对应这个策略是不是最优的,state value 值是不是最大的,是可以使用数学进行严格证明的:

在这里插入图片描述

Π* 的样子:

在这里插入图片描述

Analyzing optimal policies

使用 BOE 来分析一些最优的策略,看看都有哪些有趣的性质。

在这里插入图片描述

系统的模型是很难改变的,因此我们不考虑,只考虑修改 reward 和 γ 折扣率 来看一下这两个因素是怎样影响最优策略的。

下面是一个例子:

先来看看修改折扣率会是个什么样的情况:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来再来看看修改 reward 会造成的影响:

在这里插入图片描述

接下来考虑另一种特殊且重要的情况:

在这里插入图片描述

可以看到如果做了这种线性的变换,最后的最优策略实际上是不会改变的,因为最重要的其实不在于这个 reward 的绝对值是多大,而是在于它们互相之间的这种相关价值(relative value)。

这样的结果同样可以数学证明:

在这里插入图片描述

还有一种情况,就是 meaningless detour 的情况(绕远路),很多人会觉得,agent 每走一步就应该给它一个惩罚,比如说 r = -1,那实际当中这个 r = -1 就代表一种能量的消耗,这样的化 agent 就不会绕远路,就会尽可能的走最短的路径到目标区域。

那如果 r = 0 的话,没有 r = -1 的话那好像它就会绕远路?但实际上不是这样的,因为除了 reward 来约束 agent 不要绕远路之外,我们还有 γ 折扣率来进行约束。因为它越绕远路就越意味着我们得到到达目标的奖励越晚,越晚那时候对应的 γ 的次方就越小,打折会打得越厉害,那么自然其就会找一个最短的路径过去。

Summary

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

文件中各个函数返回----EOF----NULL---非零值>>>>>区分

fopen 返回值:操作正常返回文件指针, 失败返回NULL fclose 返回值:操作正常返回 0 失败返回EOF 不关闭文件会丢失 fgetc 返回值: 成功读入字符 失败返回EOF fputc 返回值:成功输出的字符 失败返回EOF fgets …

香橙派OrangePi AIpro初体验:当小白拿到一块开发板第一时间会做什么?

文章目录 香橙派OrangePi AIpro初体验:当小白拿到一块高性能AI开发板第一时间会做什么前言一、香橙派OrangePi AIpro概述1.简介2.引脚图开箱图片 二、使用体验1.基础操作2.软件工具分析 三、香橙派OrangePi AIpro.测试Demo1.测试Demo1:录音和播音(USB接口…

MySQL的并发控制、事务、日志

目录 一.并发控制 1.锁机制 2.加锁与释放锁 二.事务(transactions) 1.事物的概念 2.ACID特性 3.事务隔离级别 三.日志 1.事务日志 2.错误日志 3.通用日志 4.慢查询日志 5.二进制日志 备份 一.并发控制 在 MySQL 中,并发控制是确…

pandas数据分析(5)

pandas使用Numpy的np.nan代表缺失数据,显示为NaN。NaN是浮点数标准中地Not-a-Number。对于时间戳,则使用pd.NaT,而文本使用的是None。 首先构造一组数据: 使用None或者np.nan来表示缺失的值: 清理DataFrame时&#xf…

ubuntu apt命令 出现红色弹框 Daemons using outdated libraries

1. 弹框没截图,是因为ubuntu22.04一个新特性导致的,由 needrestart 命令触发,默认情况是交互性质的,也就是会中断在这里需要手动要处理提示。 2. 修改/etc/needrestart/needrestart.conf 文件,将 #$nrconf{restart} …

APKDeepLens:一款针对Android应用程序的安全扫描工具

关于APKDeepLens APKDeepLens是一款针对Android应用程序的安全扫描工具,该工具基于Python开发,旨在扫描和识别Android应用程序(APK文件)中的安全漏洞。 APKDeepLens主要针对的是OWASP Top 10移动端安全漏洞,并为开发人…

力扣热100 哈希

哈希 1. 两数之和49.字母异位词分组128.最长连续序列 1. 两数之和 题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。…

计算机缺少d3dcompiler_43.dll无法继续执行代码怎么修复

打开游戏或许软件程序时候,我们会经常遇到各式各样的问题,比如找不到d3dcompiler_43.dll无法继续执行代码就是非常常见的问题,今天我叫大家如何解决遇到d3dcompiler_43.dll丢失问题,也详细介绍d3dcompiler_43.dll文件是什么与丢失…

什么方法能快速分享视频给他人?视频二维码提供预览的制作技巧

现在想要分享一个或者多个视频时,很多人会选择将视频生成二维码的方法来展现视频内容,通过这种方式可以让多人同时扫码查看同一个视频,有效提升其他人获取内容的速度及视频传播的效率。那么视频转换成二维码的方法是什么样的呢? …

replace()方法——替换字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 replace()方法用于将某一字符串中一部分字符替换为指定的新字符,如果不指定新字符,那么原字符将被直接去除&#x…

数据库取出来的日期格式是数组格式,序列化日期格式

序列化前,如图所示: 解决方式,序列化日期(localdatetime)格式 步骤一、添加序列化类 package com.abliner.test.common.configure;import com.alibaba.fastjson.serializer.JSONSerializer; import com.alibaba.fas…

[图解]企业应用架构模式2024新译本讲解19-数据映射器1

1 00:00:01,720 --> 00:00:03,950 下一个我们要讲的就是 2 00:00:04,660 --> 00:00:07,420 数据映射器这个模式 3 00:00:09,760 --> 00:00:13,420 这个也是在数据源模式里面 4 00:00:13,430 --> 00:00:14,820 用得最广泛的 5 00:00:16,250 --> 00:00:19,170…

高编:进程间通信 IPC interprocess communicate

一、进程间三大类通信 1、古老的通信方式 无名管道 有名管道 信号 2、IPC对象通信 system v(5) BSD suse fedora kernel.org 消息队列(用的相对少,这里不讨论) 共享内存 信号量集(进程间做互斥与同步semaphore) 3、socket通信 网络通…

AD快速导入立创3D模型

在AD绘制PCB时,可以添加3D模型,在绘制完成PCB后就可以导出3D图给结构工程师核对,方便产品的开发。这里介绍一种可以比较快完成3D导入的方式。 一、PyCharm代码 打开PyCharm,在运行本代码时,需要安装第三方包codecs&a…

synchronized用法解析

锁的意义: 比如我跟我老弟要用电脑,我想学java,他想拿电脑打LOL,如果我敲java代码敲的正嗨皮,他突然把电脑抢了过去,代码还没保存,就被他拿去打LOL了,很✓8,那么如何解决…

基于人脸68特征点识别的美颜算法(一) 大眼算法 C++

1、加载一张原图&#xff0c;并识别人脸的68个特征点 cv::Mat img cv::imread("5.jpg");// 人脸68特征点的识别函数vector<Point2f> points_vec dectectFace68(img);// 大眼效果函数Mat dst0 on_BigEye(800, img, points_vec);2、函数 vector<Point2f&g…

BMA580 运动传感器

型号简介 BMA580是博世&#xff08;bosch-sensortec&#xff09;的一款先进的、超小型加速度传感器。具有独特的骨传导语音活动检测功能和先进的功率模式功能&#xff0c;是世界上最小的加速度传感器&#xff08;1.2 x 0.8 x 0.55 mm&#xff09;。它专为紧凑型设备&#xff08…

Query Rewriting for Retrieval-Augmented Large Language Models

文章目录 题目摘要方法实验 题目 检索增强大语言模型的查询重写 论文地址&#xff1a;https://arxiv.org/abs/2305.14283 项目地址&#xff1a;https://github.com/xbmxb/RAG-query-rewriting 摘要 大语言模型&#xff08;LLM&#xff09;在检索--然后阅读&#xff08;retriev…

Hack The Box-Blazorized

总体思路 Blazor JWT->SPN劫持->登录脚本劫持->DCSync 信息收集&端口利用 nmap -sSVC blazorized.htbStarting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-01 02:37 EDT Nmap scan report for blazorized.htb (10.10.11.22) Host is up (0.30s latency). N…

【网络安全】修改Host文件实现域名解析

场景 开发一个网站或者服务&#xff0c;需要在本地测试时&#xff0c;可以将线上的域名指向本地开发环境的IP地址。从而模拟真实环境中的域名访问&#xff0c;方便调试和开发。 步骤 1、以管理员身份打开命令提示符 2、编辑hosts文件&#xff1a; 输入以下命令打开hosts文…