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

news/2024/10/24 15:11:42/文章来源:https://www.cnblogs.com/cxy8/p/18496047

目录
  • 最优策略和公式推导
  • 右侧最优化问题
  • 公式求解以及最优性
  • Contraction mapping theorem(压缩映射定理)
  • 解决贝尔曼最优公式
  • 分析最优策略(analyzing optimal policies)
  • Summary

最优策略和公式推导

首先定义一个策略比另一个策略好:

\[v_{\pi_{1}}(s) \ge v_{\pi_{2}}(s) \quad for \quad all \quad s \in S \]

如何有上面式子成立,那么就说\(\pi_1优于\pi_2\)

基于上面的定义,于是就可以定义最优

对于所有的状态s,和所有的策略\(\pi\)都有下面的式子成立

\[v_{\pi_*}(s) \ge v_{\pi}(s) \]

那么\(\pi_*\)就是最优的(optimal)

贝尔曼最优公式:

\[\begin{align*} v(s)&=\max_{\pi}\sum_{a}\pi(a \mid s)\left( \sum_rp(r \mid s, a) + \gamma \sum_{s^{'}} p(s^{'} \mid s, a)v(s^{'}) \right), \forall s \in S \\&= \max_{\pi} \sum_a \pi(a \mid s) q(s, a), \forall s \in S \\ \end{align*}\]

对于贝尔曼最优公式实际上是一个最优化问题

我们已知的有\(p(r \mid s, a), p(s^{'} \mid s, a)\)
\(v(s),v(s^{'})\)是未知的并且需要求解的
对于贝尔曼公式\(\pi\)是已知到,对于贝尔曼最优公式\(\pi\)是未知的需要求解的。

贝尔曼最优公式的矩阵形式

\[v= \max_{\pi} (r_{\pi} + \gamma P_{\pi} v) \]

  • 贝尔曼最优公式(BOE)非常elegant,它的形式非常简介,可以刻画最优的策略和最优的state value

右侧最优化问题

如何求解贝尔曼最优公式?

考虑下面的问题:

\(two \: varible \: x, a \in \mathbb{R}.\)

\[x=\max_a(2x-1-a^2). \]

上面的式子中也是含有两个未知量

先看右边的部分当\(a=0\)时达到最大值\(2x-1\)

然后将\(a=0\)带入等式右边得到\(x=2x-1\)于是就求解出了\(x=1\)

于是\(a=0,x=1\)就是这个公式的解.

下面解决贝尔曼最优方程

\[v(s)=\max_{\pi}\sum_a\pi(a \mid s) q(s,a) \]

考虑我们有3个\(q\)也就是\(q_1、q_2、q_3 \in \mathbb{R}\)\(c_1^*、c_2^*、c_3^*\)使得\(c_1q_1+c_2q_2+c_3q_3\)最大

也就是

\[\max_{c_1、c_2、c_3}c_1q_1+c_2q_2+c_3q_3, where \: c_1+c_+c_3=1 ,and \: c_1、c_2、c_3 \ge 0 \]

为了不失一般性这里假设一个最大值,假设\(q_3 \ge q_1,q_2\),于是最优解就是\(c_1^*=0、c_2^*=0、c_3^*=1\)

通过上面的例子就可以知道如果\(q\)值确定,如何求解上面的\(\pi\)

image.png

公式求解以及最优性

贝尔曼最优公式的矩阵形式

\[v=\max_{\pi}(r_{\pi}+\gamma P_{\pi}v) \]

我们把贝尔曼最优公式写成一个函数形式

\[f(v) := \max_{\pi}(r_{\pi} + \gamma P_{\pi} v) \]

于是最优公式就化成了

\[v=f(v) \]

\[\left[ f(v) \right]_s = max_{\pi}\sum_a\pi(a \mid s)q(s,a), s \in S \]

这里的\(f(v)\)实际上是一个向量,因为每个状态对应一个\(state \: value\),而每一个\(state \: value \:\)都对应一个\(f(v)\)

于是问题就转化成了求解\(v=f(v)\)这个方程,求解这个方程就需要下面的知识了。

Contraction mapping theorem(压缩映射定理)

关于这个定义的详细介绍在这 | 中文数学 Wiki | Fandom

在说压缩映射定理之前需要引入一些概念

Fixed point(不动点):

\[x \in X \: is \: a \: fixed \: point \: of \: f : \: X \rightarrow X \: if \]

\[f(x) = x \]

然后\(x\)就被称为一个不动点。

Contraction mapping or Contractive function:\(f \: is \: a \: contraction \: mapping \: if\):

\[\mid \mid f(x_1) - f(x_2) \mid \mid \le \gamma \mid \mid x_1 - x_2\mid \mid, \:where \: \gamma \in (0, 1) \]

image.png

Theorem(Contraction Mapping Thorem):

对于任何形如\(x=f(x)\)的等式,如果\(f\)是一个contraction mapping,那么有:

存在性:存在一个不动点\(x^*\)满足\(f(x^*) = x^*\)

唯一性:不动点\((fixed point)\)是唯一的。

求解不动点的算法:这是一个迭代式的算法,不断令\(x_{k+1}=f(x_k)\),当\(k \rightarrow \infty \:\)\(x_k \rightarrow x^* \:\),同时收敛的速度会非常快(以指数的速度收敛)

解决贝尔曼最优公式

有了上面的压缩映射定理就可以解决贝尔曼最优公式了

\[v=f(v)=\max_{\pi}(r_{\pi + \gamma Pv}) \]

为了应用压缩映射定理,首先需要证明下式中\(\gamma \in (0,1)\)

\[\mid \mid f(v_1) - f(v_2) \mid \mid \le \gamma \mid \mid v_1 - v_2 \mid \mid \]

这个是可以得到证明的。

知道了\(f\)是一个\(contraction \: mapping\),那么贝尔曼最优公式就可以利用上面的\(contraction \: mapping \: thorem\)解决了。

image.png

分析最优策略(analyzing optimal policies)

\[v(s) = \max_{\pi} \sum_a \pi(a \mid s) \left( \sum_r \color{red}p(r \mid s, a) r \color{black} + \color{red} \gamma \color{black} \sum_{s{'}} \color{red} p(s^{'} \mid s, a) \color{black} v(s^{'}) \color{black}\right) \]

求解贝尔曼最优公式就是已知红色量求出上面公式中黑色的量

公式中的三个量决定了optimal policy

  • Reward design:\(r\)
  • System model:\(p(s^{'} \mid s, a) \:, \: p(r \mid s, a)\)
  • Discount rate:\(\gamma\)
  • \(v(s), v(s^{'}),\pi(a \mid s)\)都是未知量待计算
  1. \(\: \gamma \:\)比较大的时候,会比较远视,当\(\: \gamma \:\)比较小的时候则会比较短时,获得的\(\: return \:\)主要由短期的\(\: reward \:\)决定。当\(\: \gamma \:\)变为\(\: 0 \:\)时策略又会发生变化,策略会变得非常短视,更具体地说策略只会关注\(immediate \: reward\),这样导致的结果可能是采用的策略根本到达不了\(target\)

  2. 改变\(reward\)也会导致策略改变。

下面观察如果对\(\: reward \:\)进行线性变换会发生什么?\(r \rightarrow ar + b\)

  • 实际上进行线性变换是不会改变最优策略的。
  • 这个问题实际上并不关注\(reward\)的绝对性,更加关注\(reward\)的相对性。

image.png

关于无意义的绕路:因为有\(\: discount \: rate \:\)的存在,会导致后面得到的\(\: reward \:\)打折扣

image.png

Summary

image.png

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

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

相关文章

css3实现文字线性渐变,css3实现背景渐变

<div class=who1>我是线性渐变文字我是线性渐变文字我是线性渐变文字我</div> <div class=who2>我是背景渐变我是背景渐变我是背景渐变我是背景渐变我</div>.who1{width:400px; background: linear-gradient(to right, #ff0000, #ffff00); /*设置渐…

吉客云数据集成到金蝶云星空:盘盈入库单对接方案

吉客云数据集成到金蝶云星空:盘盈入库单对接方案 在企业资源管理中,数据的准确性和实时性至关重要。本文将分享一个具体的系统对接集成案例,即如何将吉客云中的盘盈入库单数据高效、可靠地集成到金蝶云星空中,形成盘盈单。 为了实现这一目标,我们采用了数据集成平台,通过…

Linux 中 awk命令整列的替换

001、测试数据[root@localhost test2]# ls a.txt [root@localhost test2]# cat a.txt 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 …

ElevenLabs Voice Design :可通过文本创建个性化语音;苹果推出首个开发者测试版丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

nginx总结

使用auth_basic控制访问nginx代理的网站,直接访问如果需要添加安全性,如需要输入用户名+密码才能访问页面,可以通过nginx的auth_baisc配置来实现检查htpasswd 一般nginx的安装之后会自带或者nginx容器镜像自带 root@ea6255db9f51:/config/nginx/site-confs# htpasswd Usage:…

1024程序员节Fast Request发福利啦

今天是 1024 程序员节,祝各位老铁程序员节快乐!愿大家安全上线,永无 bug,代码行行如丝滑。 首先,特别感谢大家一直以来对 Fast Request 的支持与厚爱。在这个属于程序员的节日里,我们准备了一波诚意满满的福利,送给每一位辛勤付出的你! 以下福利是我们对大家辛勤付出的…

浪潮服务器开机不进系统

浪潮服务器开机无法进入系统的问题,可能由多种因素导致。以下是一些常见的原因及其相应的解决方法: 一、电源故障 问题描述:电源故障可能导致服务器无法正常启动。 解决方法: 检查电源插头和电源线是否松动或损坏。 确保电源供应正常,尝试更换电源线或连接到其他插座进行测…

python C3算法

Python MRO C3算法是python当中计算类继承顺序的一个算法,从python2.3以后就一直使用此算法了。 c3 linearization算法称为c3线性化算法 C3算法原理 首先定义几个符号的意义:符号 意义L 针对一个类进行解析用L进行表示,例如L(A)表示对类A进行解析merge 合并操作的一个函数(…

我与信竞

抱歉,刚开始就要说再见了。抱歉,刚开始就要说再见了。 我从2020年开始学信竞,至今已有四年多了。 为何现在才开始写博客呢? 答曰:因为我要退役了。 10月26打CSP-S,不出意外的话,一切就快要结束了。 “历经艰辛的飞升者成了围剿孙悟空的十万天兵之一” ,是啊,这世上本不…

2024-10-24 main.js:6 Uncaught TypeError: app is not a function ==》写法错误

vue代码如下:// main.js import { createApp } from vue import ./style.css import App from ./App.vue const app = createApp(App);app().mount(#app)报错:原因:app().mount(#app)写法有误 正确写法应该去掉这个()import { createApp } from vue import ./style.css im…

Cinemachine系列——AimComposer

这个虚拟摄像机的瞄准算法会旋转摄像机,使其朝向指定的“注视”目标。同时,它还会应用偏移量、阻尼效果和构图规则。 主要要点: 朝向目标:摄像机会自动调整其方向,以面向指定的注视目标,例如角色的上脊椎或头骨、车辆,或通过程序控制或动画的虚拟对象。 偏移量:可以为摄…

Qt/C++路径轨迹回放/回放每个点信号/回放结束信号/拿到移动的坐标点经纬度

一、前言说明 在使用百度地图的路书功能中,并没有提供移动的信号以及移动结束的信号,但是很多时候都期望拿到移动的哪里了以及移动结束的信号,以便做出对应的处理,比如结束后需要触发一些对应的操作。经过搜索发现很多人都有这个需求,需要在js文件中加上一点代码才行,也就…