强化学习:动态规划(DP)

强化学习:动态规划(DP)


为什么可以使用动态规划解MDP问题?

动态规划能够解决的问题通常含有两个性质:
1) 拥有最优子结构:最优解可以分解为多个子问题。
2)含有重复子问题:子问题重复了很多次,其解可以存储下来重复利用。

马尔科夫决策过程满足上述两个性质:
1)贝尔曼方程给出了递归分解;
2)价值函数可以被存储及重复利用。

MDP使用DP时,需要知道全部的知识,也就是说模型 < S , A , P , R , γ > 是已知的。如果求解最优策略 π 和最优价值函数 v ,则是控制问题;如果策略 π 也已知求解最优值函数 v 则是预测问题。

策略迭代

策略评估

评估给定的策略 π

在一个MDP < S , A , P , R , γ > 问题中,当策略 π 是已知的时候,我们有:

v π ( s ) = a A π ( a | s ) ( R s a + γ s S P s s a v π ( s ) )

在上述方程中, P s s a , γ , R s a , π ( a | s ) 均是已知的,需要求解的是 v π ( s ) 。对于每一个状态 s ,我们均可以得到一个这样的方程。因此,我们就可以获得 n 个(状态的个数)方程构成的线性方程组。当问题规模较小时,可以使用闭式解直接求得价值函数的值;当问题规模较大时,需要使用迭代的方法来求得解。此处使用高斯-赛德尔迭代算法来进行求解。

v k + 1 ( s ) = a A π ( a | s ) ( R s a + γ s S P s s a v k ( s ) ) v k + 1 = R π + γ P π v k

————————————————–伪——码————————————————————

v(1) = 0;
while 1
    for 1 : n
      v(k+1) = f(v(k));
    endfor
    if |v(k+1) - v(k)| < err
        break;
    endif
endwhile     

————————————————–伪——码————————————————————

扫描二维码关注公众号,回复: 354153 查看本文章

策略改进

求解最优策略
已知当前策略的价值函数时,如何改进策略从而获得最优策略。可以使用贪婪策略获取一个比当前策略要好的策略:

π l + 1 ( s ) = arg max a A     q π l ( s , a )

针对每一个状态,求取全部可能的策略所对应的行为价值函数值,取其最大值所对应的策略为新确定的“策略”中的一部分。

策略迭代算法

策略迭代算法包括策略评估和策略改进两个步骤。在策略评估中,给定策略,通过数值迭代算法不断计算该策略下每个状态的值函数,利用该值函数和贪婪策略得到新的策略。如此循环下去,最终得到最优策略。这是一个策略收敛的过程。

————————————————–伪——码————————————————————

v(1) = 0; 
pi(1) = random();
Repeat l = 0,1,...
    寻找当前策略下最好的V(l);
    贪婪地更新策略 pi(l+1)
until pi(l+1) = pi(l)

————————————————–伪——码————————————————————

价值迭代算法

在策略评估过程中,并不需要等到策略评估收敛之后才能进行策略改进。如果在进行一次评估之后就进行策略改善,则称为值函数迭代算法。值函数迭代是动态规划算法最一般的计算框架。
最优性原理

任何最优的策略都可以被分解为两部分:
一次最优的行为 A ;
后续状态 S 的一个最优策略。

v ( s ) = max a A R s a + γ s S P s s a v ( s )

v k + 1 ( s ) = max a A ( R s a + γ s S P s s a v k ( s ) ) v k + 1 = max a A R a + γ P a v k

————————————————–伪——码————————————————————

v(1) = 0; 
pi(1) = random();
Repeat l = 0,1,...
     for every s do
       值函数迭代公式;    
until v(l+1) = v(l)

————————————————–伪——码————————————————————
需要注意的是在每次迭代过程,需要对状态空间进行一次扫描,同时在每个状态对动作空间进行扫描以便得到贪婪的策略。

References

[1] 动态规划
[2] 强化学习入门 第二讲 基于模型的动态规划方法

猜你喜欢

转载自blog.csdn.net/xholes/article/details/80229529
今日推荐