这个问题目测跟上周解决markdown语法里面的某个默认配置打开了有关系,目前凡是 有 \tag{1}
这样语法的公式在前台都会看不见~~~
1 基本模型
马尔科夫决策过程的基本模型是一个四元组 <S,A,T,R> < S , A , T , R > <script type="math/tex" id="MathJax-Element-1"> </script>
状态空间 S S :指智能体所有可能相处的状态的集合
行为空间:指智能体在所有状态上可能采取的行为集合
状态转移函数 T:S×A×S′→[0,1] T : S × A × S ′ → [ 0 , 1 ] , T(s,a,s′) T ( s , a , s ′ ) 表示在状态 s s 采取动作转移到状态 s′ s ′ 的概率,有 ∑s′ST(s,a,s′)=1 ∑ s ′ S T ( s , a , s ′ ) = 1
收益函数 R:S×A→R R : S × A → R ,在这儿一般用 R(s,a) R ( s , a ) 表示在状态 s s 采取动作得到的立即收益。
2 模型的意义
马尔科夫决策过程模型的意义在于对智能体所处的每一个状态
s
s
给出一个最优的行为,在这里将之称为策略,用表示。这个行为要以智能体获得的长期报酬的期望最大化为目标,即
maxE[∑tRt(st,at)]
max
E
[
∑
t
R
t
(
s
t
,
a
t
)
]
。
Rt
R
t
表示智能体在第
t
t
步得到的报酬。为了保证模型收敛可解,这里通常会引入一个折扣因子,这时长期报酬就可写为
maxE[∑tγtRt(st,at)]
max
E
[
∑
t
γ
t
R
t
(
s
t
,
a
t
)
]
。
定义智能体的值函数
Vπ:S→R
V
π
:
S
→
R
为在状态
s
s
,采用策略的期望报酬
Vπ(s)=E[∑∞t=0γtRt(st,at)] V π ( s ) = E [ ∑ t = 0 ∞ γ t R t ( s t , a t ) ]
Vπ(s)=E[∑∞t=0γtRt(st,at)](1) (1) V π ( s ) = E [ ∑ t = 0 ∞ γ t R t ( s t , a t ) ]
对公式1利用全概率公式递归展开可得
Vπ(s)=R(s,π(s))+γ∑s′∈STπ(s)(s,s′)Vπ(s)(s′)(2) (2) V π ( s ) = R ( s , π ( s ) ) + γ ∑ s ′ ∈ S T π ( s ) ( s , s ′ ) V π ( s ) ( s ′ )
为了更好的描述策略,定义一个行为值函数的概念 Qπ:S×A→R Q π : S × A → R ,表示在状态 s s 采取行为,其他状态继续采用策略 π π 所得到的报酬,计算方法如下,
Qπ(s,a)=R(s,a)+γ∑s′∈STa(s,s′)Vπ(s′)(3) (3) Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S T a ( s , s ′ ) V π ( s ′ )
为了得到最大的报酬,有
π(s)=argmaxa∈AQπ(s,a)(4) (4) π ( s ) = arg max a ∈ A Q π ( s , a )
即
π(s)=argmaxa∈AR(s,a)+γ∑s′∈STa(s,s′)Vπ(s′)(5) (5) π ( s ) = arg max a ∈ A R ( s , a ) + γ ∑ s ′ ∈ S T a ( s , s ′ ) V π ( s ′ )
结合公式2可得,
Vπ(s)=maxa∈AR(s,a)+γ∑s′∈STa(s,s′)Vπ(s′)(6) (6) V π ( s ) = max a ∈ A R ( s , a ) + γ ∑ s ′ ∈ S T a ( s , s ′ ) V π ( s ′ )
3 模型的求解
值迭代
算法流程如下
- 对所有的 s∈S s ∈ S 随机初始化 V(s)=0 V ( s ) = 0
- 根据公式6,对 V(s) V ( s ) 进行更新,直至收敛
与线性方程组的迭代解法类似,值迭代流程的第二步可以采用同步和异步的不同方式进行更新。
策略迭代
- 对所有的 s∈S s ∈ S ,随机初始化策略 π(s) π ( s )
- 根据公式6对V(s)进行更新,根据公式5,对策略进行更新