强化学习的数学原理-02贝尔曼公式
Motivating examples
一个核心概念:state value
一个基本的工具:Bellman equation
为什么return是重要的?
return可以用来评估policy
下面计算3个例子
计算return的方法
:
第一种方法:(by definition|通过定义)
用
第二种方法:
其他式子依次类推
上面的式子从直观上讲,就是从
然后可以发现return之间彼此依赖,一个return会依赖于其他return,这种想法是Bootstrapping
上面的式子是有循环依赖的,如何解决上面的式子.
先把上面的式子写成矩阵形式
然后再把上面的式子写成一个更简化的形式就是:
于是就求出了v
这个就是贝尔曼公式,只不过是对于确定问题的.
state value
:指的是具体的时刻 :指的是t时刻的状态 :在t时刻采取的action :在采取 后得到的reward :在采取 转移到的状态
上面的
注意上面的
所有这些跳跃都是由
是由 是由 是由
把上面单步的操作推广就可以得到多步的操作(multi-step trajectory)
上面的trajectory可以求discounted return
是一个折扣率 是随机变量
在有了上面的铺垫之后就可定义
state value实际上就是对
- 对于state value,他是s的函数
- state value是策略的函数,可以这样写
是等价的,为了简单起见用后面的形式
return和state value的区别,return是针对单个tragectory而言的,而state是针对多个trajectory而言的,如果从一个状态出发可以得到多个trajectory那么return和state value是有区别的,如果从一个状态出发得到的trajectory是确定的,那么return和state value是没有区别的.
Bellman equation
上面说了
用一句话描述贝尔曼公式的话就是它描述了不同状态的
首先考虑一个trajectory
然后可以计算
下面是state value的定义
下面就是分别分析这两部分,计算出这两部分的形式,于是就能得到贝尔曼公式.
首先分析计算第一部分:
第一部分就是能得到的immediate reward的期望(expectation)
然后分析计算第二项
第二项是future rewards的期望(expectation)
于是就可以给出贝尔曼公式的定义:
上面公式中的一些重要的点
- 上面的公式就是贝尔曼公式,它实际上描述了不同状态的state value之间的关系
- 上面的式子实际上包含两项,一个是immediate reward term,另一部分是future reward term
- 另外上面的式子注意最后的部分,并非是一个式子,而是对于状态空间中所有的状态都成立的
- state value
这个就是policy,这是被给出的,所以贝尔曼公式是依赖于policy的,把这个state value计算出来实际上这件事情叫做policy evaluation 叫dynamic model或者叫environment model.然后会根据是否知道这个dynamic model分为两种算法,不知道model的算法就是model free reinforcement learning算法
Matrix-vector form
当我们已经有了一个贝尔曼公式之后,后面的就是需要考虑如何求解这个bellman equation.
如果仅仅从这一个式子中求出state value是不可能的,但是注意到对于所有的state,贝尔曼公式都是成立的,如果有n个状态,那么就会有n个equation,把所有的equation放到一起就得到了一组,进一步就可把这些equation整理成matrix-vector form,matrix-vector form是非常优雅和重要的,对于我们求解state value是非常有帮助的
把上面的贝尔曼公式整理,合并一下表示成更简单的形式
为了把贝尔曼公式写成一个矩阵向量的形式,实际上要把所有的状态写在一起,于是就需要给上面的状态编上号.于是上面的式子进一步化为:
把所有的状态放到一起,就可以上面的式子变成matrix-vector form啦
把上面式子中的一些量展开写
-
-
-
是一个转移矩阵
下面通过
考虑下面这个例子:
于是上面策略的贝尔曼方程就可以写出
下面还有一个例子
为什么要求解state value?
policy evaluation
:强化学习中非常基础重要的问题,通过policy evaluation能够找到一个好的策略
如何接求解贝尔曼方式?
方法一:close-form solution(直接给出解析表达式)
虽然上面的解析表达式非常简洁,优美,但是在实际中我们并不会用,因为当状态空间比较大时,矩阵的维数也会比较大,求逆的计算量也会很大.
方法二:iterative solution:
这个算法执行起来是这样的
先随机一个
事实上可以证明
Action value
Action value和state value的区别
state value是从一个状态出发得到的average return
action value是从一个状态出发,并且采取某个action得到的average return
定义:
- action value是依赖于策略
的
下面可以研究一下state value 和 action value 之间的数学联系
因此
回忆前面的贝尔曼公式
可以发现
- action value总的来说很重要,未来会去关注在某一个状态不同的action,会对不同的action进行比较.
- 如何计算action value可以通过前面的表达式通过state value进行计算.
- 后面会学习一些不需要依赖模型,根据数据计算action value的方法.
summary
主要内容是
- state value :
- action value:
- bellman equation :
- bellman equation matrix-vector form:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
2023-10-22 微机原理与接口技术-第七章输入输出接口