Finite Markov Decision Process
马尔可夫决策过程(MDP)是对连续决策进行建模,当前的动作不仅对当前产生影响,而且还会对将来的的情况产生影响,如果从奖励的角度,即MDP不仅影响即时的奖励,而且还会影响将来的长期奖励,因此,MDP需要对即时奖励与长期奖励的获得进行权衡。
The Agent-Environment Interface
MDP定义了从交互中学习的框架,决策者(或称为学习者)称为Agent,那与agent交互的所有统称为environment. 二者是连续地进行交互,当agent采取某一动作时,environment对这个动作进行反应,将agent置于新情形,称为状态(state),并且也会对agent的动作进行打分,称为奖励(reward).

定义环境的状态:St∈S , 动作At∈A(s), 奖励Rt+1∈R(注意,这里不同的书惯例是不同的,这里采用的是,当前t时刻agent采取的行动At,环境对其反应的结果是产生St+1, Rt+1 ,即即时奖励是是在t+1时刻获得)。MDP因此会产生一个包含状态,动作与奖励的决策序列(称为sequence或trajectory):
S0,A0,R1,S1,A1,R2,...
而且,St,Rt的分布只取决于前一时刻的状态与动作:
p(s′,r|s,a)=Pr{St=s′,Rt=r|St−1=s,At−1=a}
其满足:
∑s′∈S∑r∈Rp(s′,r|s,a)=1,∀s∈S,a∈A(s)
有了上面的公式,我们可以推导出很多有用的公式,比如,状态转移概率(state-transition probabilities):
p(s′|s,a)˙=Pr{St=s′|St−1=s,At−1=a}=∑r∈Rp(s′,r|s,a)
也可以得到状态-动作对的期望奖励:
r(s,a)˙=E[Rt|St−1=s,At−1=a]=∑r∈Rr∑s′∈Sp(s′,r|s,a)
Goals and Rewards
Agent的目标是最大化它能得到的所有奖励的总和,也即最大化累积奖励。使用奖励作为agent的目标,这也是强化学习区别其其它机器学习方法的最显著特征之一。
Returns and Episodes
最大化累积奖励是agent的目标,为能量化这个目标,引入一个概念Returns(用Gt表示):
Gt˙=f(Rt+1,Rt+2,...,RT)
其中f是某种映射,T为最后一时间步。
通常最大化Returns的期望:
maxEGt
Gt比较常见的版本是加和与折扣(discounted)加和:
Gt˙=Rt+1+Rt+2+...+RT
Gt˙=Rt+1+γRt+2+γ2Rt+3+...=∞∑k=0rkRt+k+1
其中0≤γ≤1,称为discount rate.
Policies and Value Functions
策略(policy)是从状态到选择可能动作概率的映射。π(a|s) 表示在状态a下执行动作能的概率。
在给定策略下,状态s的价值函数(value function)是从其状态到最终的期望收益(expected return):
vπ(s)˙=Eπ[Gt|St=s]=Eπ[∞∑k=0γkRt+k+1∣∣St=s],∀s∈S
也可得到动作-价值函数:
qπ(s,a)˙=Eπ[Gt|St=s,At=a]=Eπ[∞∑k=0γkRt+k+1∣∣St=s,At=a],∀s∈S,a∈A
价值函数的一个很重要的属性即是其递归性:
vπ(s)˙=Eπ[Gt|St=s]=Eπ[Rt+1+γGt+1|St=s]=∑aπ(a|s)∑s′∑rp(s′,r|s,a)[r+γEπ[Gt+1|St+1=s′]]=∑aπ(a|s)∑s′,rp(s′,r|s,a)[r+γvπ(s′)],∀s∈S
如果我们有一个最优策略(π∗),那么这个策略(可能不只一种)可以让价值函数获得最大值,并且根据Bellman equation, 可以得得到如下推导:
v∗(s)˙=maxπvπ(s)=maxa∈A(s)qπ∗(s,a)=maxaEπ∗[Gt|St=s,At=a]=maxaE[Rt+1+γv∗(St+1)|St=s,At=a]=maxa∑s′,rp(s′,r|s,a)[r+γv∗(s′)]
同理:
q∗(s,a)˙=maxπqπ(s,a)=E[Rt+1+γmaxa′q∗(St+1,a′)|St=s,At=a]=∑s′,rp(s′,r|s,a)[r+γmaxa′q∗(s′,a′)]
使用 backup diagrams:

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架