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