这是本课程的第二章,讲述状态值与贝尔曼(Bellman)方程的相关概念。
回报值(Return)的重要性:计算回报值可以用于评估各策略的优劣,可以量化分析。
回报值的计算方法:设Vi为某策略下起始状态在i处的回报值,待计算的策略如下图所示:
1.利用定义计算
ri为第i个状态的奖励值, γ为折扣因子。
2. Bootstrapping策略,本质上是利用定义计算的数学变化形式。
基于定义的计算,本质上是一步一步的计算。而Bootstrapping策略,则是将折扣因子提取出来,这样间接形成了当前奖励与未来奖励两大部分。
3.矩阵-向量形式,是用线性代数的形式重写了Bootstrapping形式,创新点就是生成了一个方阵P,这个方阵就是个状态转移矩阵,跟随机游走的状态转移矩阵一样。
这个矩阵-向量形式,可以简写成下面的公式,这个就是大名鼎鼎的贝尔曼方程,用于计算目标策略的相关回报值。
现在假设目前是t时刻,Agent在一个状态下,根据策略可以生成下面这条路径。
加上折扣因子,整个回报值是
这里的Gt是一个随机变量,因为后面各阶段的奖励值,也是一个随机变量。这里引入随机的原因是,对应的策略不一定是个确定性的策略。状态转移的方向,每次转移的回报,每个状态采取的动作等,都可以是一个概率分布。
那么计算这个Gt的期望值,就是所谓的状态值(State Value)。换句话说,如果整个策略都是确定性的,那所谓的状态值,就是计算一次的回报值。
这个状态值方程,自变量是s,所以取值决定于整个策略和系统的初始状态。
这是一个贝尔曼方程的例子,可以看出贝尔曼方程的目的,就是给包含随机性的策略,一个明确的性能评估值
后面介绍Bellman方程的计算方法。首先是t时刻状态的回报值,可以分解成t+1时刻的奖励值,及t+1时刻的回报乘上折扣因子。
基于以上分解,t时刻状态的状态值,可以拆分成两个期望的计算。一个是当前奖励的期望,一个是未来回报的期望。
首先是当前奖励的期望,可以拆分为在当前状态下,采用各自动作的概率,乘上每个动作带来回报的期望(因为相同状态,相同动作,获得的奖励也不一定是个定值)
然后是未来回报的期望,可以分解为当前状态采用各动作的概率,乘上每个动作跳转到各状态的概率(不一定跳转到固定的状态),及新状态的回报值(下面公式最后一行,从右向左看)。这里的t+1时刻的状态值,仅需要考虑t时刻的情况,用的是马尔科夫决策过程。
然后将两个步骤的计算方法进行整合,并提取相同的系数,可以得到这个公式。
State Value方程的矩阵-向量形式:状态Si的State Value计算方式为
将一个策略下所有的状态值计算方程联立,就会得到一个策略State Value的矩阵-向量形式
Vpai是各状态的State Value,Rpai是各状态的奖励值,Ppai是一个状态转移矩阵,记录了状态之间的转移概率。这个矩阵-向量的展开形式为
计算状态值的目的是为了对相关策略进行评估,找寻各策略中效果最佳的策略。基于State Value的贝尔曼方程,首先想到的方法就是直接求解。
经过线性变换,求出这个逆矩阵即可。
还有一种方法,可以避免求解逆矩阵,叫做迭代法。
讲完了状态值,现在又引入了行为值(Action Value)。状态值是指Agent从一个状态开始,得到回报值的均值。而行为值是指,Agent从开始状态选择其中一个行为,这个行为选择后能得到回报值的期望值。数学定义如下所示:
其中Qpi(S,A)叫做状态-行为对,行为值与状态值的关系如下所示,这里是通过行为值计算出状态值
可以看出,初始状态下所有行为的行为值按权重累加起来,结果就等于状态值。结合状态值的计算公式,可以看出动作值就在贝尔曼公式之中。
行为值的作用在于,可以判断哪个行为的价值最大。可以先对各状态计算状态值,再基于最优状态计算出行为值。
强化学习(赵世钰版)-学习笔记(2.状态值与贝尔曼方程)
pzb198411162025-03-08 8:53
相关推荐
云上艺旅3 小时前
K8S学习之基础十八:k8s的灰度发布和金丝雀部署Alan-Xia7 小时前
使用jest测试用例之入门篇三天不学习7 小时前
uniapp x 学习之 uts 语言快速入门平凡而伟大(心之所向)7 小时前
机器学习的发展史龚大龙7 小时前
机器学习(李宏毅)——Domain AdaptationAAA顶置摸鱼7 小时前
机器学习·NLP中的文本分类AIGC_ZY7 小时前
扩散模型中三种加入条件的方式:Vanilla Guidance,Classifier Guidance 以及 Classifier-Free GuidancePinkandWhite8 小时前
MySQL复习笔记蓑衣客VS索尼克9 小时前
无感方波开环强拖总结肥肠可耐的西西公主9 小时前
前端(AJAX)学习笔记(CLASS 4):进阶