首页 > 其他分享 >强化学习的数学原理-03贝尔曼最优公式

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

时间:2024-10-24 15:14:26浏览次数:8  
标签:03 公式 mid 数学原理 贝尔曼 最优 pi gamma

目录

最优策略和公式推导

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

\[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

标签:03,公式,mid,数学原理,贝尔曼,最优,pi,gamma
From: https://www.cnblogs.com/cxy8/p/18496047

相关文章

  • 报error:0308010C:digital envelope routines::unsupported错--nodejs版本过高(nvm安
    最近小编入职实习,运行(npmrundev)前端项目时报error:0308010C:digitalenveloperoutines::unsupported的错,一查发现原来是nodejs版本过高,与项目不匹配。接下来介绍更换nodejs版本的方法。第一种:官网下载通过nodejs官网下载安装,但有个缺陷,不同版本的nodejs无法顺利的切换......
  • Java基础day03---循环,数组,杨辉三角
    Java基础day03接day02----流程控制---3、循环一、循环循环语法结构执行逻辑通用for循环for(初始化;条件判断;步长设置){//循环体}第一次循环:初始化,条件判断,循环体,步长设置;第2-n次循环:条件判断,循环体,while循环while(判断条件){//循环体}先条件判断再执行循环体do.............
  • [算法题解] Codeforces round 979 --D. QED's Favorite Permutation
    题目链接:https://codeforces.com/contest/2030/problem/D题目:题解:FavotitePermutation即每个数满足i=p[i];此题中,p数组每次询问后保持不变,s根据询问而改变。因此每次需要进行交换的数的位置是相同的,只需要检验s变更后,操作能否满足交换需求与否。故创建需数组need,预处理nee......
  • P1040 [NOIP2003 提高组] 加分二叉树
    P1040[NOIP2003提高组]加分二叉树题目描述设一个\(n\)个节点的二叉树\(\text{tree}\)的中序遍历为\((1,2,3,\ldots,n)\),其中数字\(1,2,3,\ldots,n\)为节点编号。每个节点都有一个分数(均为正整数),记第\(i\)个节点的分数为\(d_i\),\(\text{tree}\)及它的每个子树都有一......
  • git拉取代码时报错 cannot lock ref 'refs/remotes/origin/refactor': is at but exp
    这个错误通常发生在Git试图更新远程引用(如分支或标签)时,但本地的引用与远程的引用不匹配。具体来说,Git期望某个引用(如refs/remotes/origin/refactor)处于某个特定的提交(如4a06cb568),但实际上它指向了另一个提交(如7a05be1d8)。使用方法2解决成功解决方法清除远程引用缓存......
  • 计算机毕业设计项目推荐:基于Web的社区人员管理系统的设计36303(开题答辩+程序定制+全套
    摘要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用ASP.NET技术建设社......
  • 美的智能制造MES与WMS系统:打造高效、协同的制造与物流管理平台|203页PPT
    文档是关于美的智能制造MES与WMS系统在工厂的数字化转型解决方案的详细介绍。文档涵盖了MES项目需求方案、MES需求的总体研究思路、目标架构、整体结构、制造执行系统、物流布局及信息采集点分布、质量管理体系、设备智能化管理系统等多个方面。以下是对文档内容的总结:MES需......
  • 红队老子养成记4 - 不要遇到403就放弃,学会403绕过,找到别人找不到的接口!!(全网最多绕过!)
     大家好,我是Dest1ny!今天继续更新我们的redteam系列!这次主要的方向是撕开口子,找接口。接口万一可以未授权或者rce,那妥妥的一个0day到手了啊!也希望大家多多点赞支持!!这对我是最大的鼓励!请求绕过技术与示例详解1.更改请求方法绕过更改请求的HTTP方法(如从GET改为POST、PUT......
  • 黑马JavaWeb-day03
    目录Ajax前后端分离开发前端工程化环境准备Vue项目Vue项目开发流程Vue组件库ElementVue路由打包部署AjaxAjax:AsynchronousJavaScriptAndXML,异步的JavaScript和XML作用:数据交换:通过Ajax可以给服务器发送请求,并获取服务器相应的数据异步交互:可以在不重新加载整个页......
  • HCI_LE_Read_Local_Supported_Features(0x0003)命令全面解析
    目录一、命令概述 二、命令格式2.1.HCI_LE_Read_Local_Supported_Features命令格式2.1.HCICommandComplete响应命令格式三、返回命令 HCICommandComplete参数说明3.1. Status3.2.LE_Features3.3.示例3.4.LE_Features字段中的特性位四、命令执行流程4.1.......