动态规划

本文转自:http://www.52caml.com/reinforcement-learning/chapter4-dynamic-programming/

前言

这一节介绍基于模型的强化学习问题求解的一种算法-动态规划算法。动态规划算法是解决复杂问题的一类方法,算法通过把复杂问题分解成若干个子问题,通过求解子问题进一步得到全局问题的解。
所谓基于模型的强化学习即马尔科夫决策过程已知(即状态转移概率已知)。如果MDP未知,称为无模型(model-free)的强化学习,仍有对应的求解算法。
使用动态规划求解问题 需要满足以下条件:
• 最优化原理:问题的最优解是由所包含的子问题的解组成,且子问题的解也是最优的;
• 子问题重叠:即子问题之间不是独立的,一个子问题在下一阶段决策中可能被重复用到。
马尔科夫决策过程满足上述两个条件,即贝尔曼方程把值函数的求解表示成递归地子问题求解过程,值函数相当于存储了一些子问题的解,可以复用。
在强化学习中,动态规划是基于模型的求解最优策略和最优值函数的算法,即在已知模型的基础上判断一个策略的价值函数(策略评估过程),并在此基础上寻求最优的策略和最优价值函数(策略改进过程)。或者直接寻求最优策略和最优价值函数(价值迭代算法)。
动态规划算法属于值表法(Tabular Methods)的一种(下一章的蒙特卡洛方法也属于这一类)。值表法即值函数用表格表示,值函数的参数为表格里的内容。
思考:如何用动态规划算法在MDP基础上求解最优策略?动态规划包括两个主要过程:预测(predict)和控制(control)。
在这里插入图片描述

策略评估

上一节提到,强化学习问题可以用MDP描述,并根据贝尔曼最优性原理得到贝尔曼最优化方程,即:
\begin{align} v_(s) & = \max_{a \in \mathcal{A}} R(s,a) + \gamma \sum_{s’ \in \mathcal{S}} P(s’ |s,a) v__(s’) \\ q__(s,a) & = R(s,a) + \sum_{s’ \in \mathcal{S}} P(s’|s,a) \max_{a’ \in \mathcal{A}} q_(s’,a’) \end{align} \qquad (rl.4.1)\begin{align} v_(s) & = \max_{a \in \mathcal{A}} R(s,a) + \gamma \sum_{s’ \in \mathcal{S}} P(s’ |s,a) v__(s’) \\ q__(s,a) & = R(s,a) + \sum_{s’ \in \mathcal{S}} P(s’|s,a) \max_{a’ \in \mathcal{A}} q_(s’,a’) \end{align} \qquad (rl.4.1)

贝尔曼方程符合动态规划中的条件,在这里动态规划的核心是寻找最优值函数。一个关键的问题摆在面前:如何计算策略π下的值函数?
计算公式如下:
在这里插入图片描述
在这里插入图片描述

$
{ ;//; \color{red} {迭代策略评估算法} \\

  1. 输入
    \\ }
    $
    [optional] 补充Gridworld示例。
    策略评估算法用于根据当前策略计算每个状态的值函数的,计算值函数的目的是为了寻求最优策略。那么,如何利用状态值函数改进策略,进而得到最优策略呢?

策略改进

策略改进(policy improvement)采用了比较直接的做法:在已知当前策略的值函数时,在每个状态采用贪婪策略(greedy policy)对当前策略进行改进,形式化表示如下:
在这里插入图片描述
至此,我们介绍了策略评估(依据当前策略预测值函数)和策略改进(依据贪婪策略选择最大值函数对应的策略),将二者合起来即为策略迭代算法。

策略迭代

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

这部分参考教材的伪代码
$
{ ;//; \color{red} {策略迭代算法} \\

  1. 输入
    \\ }
    $
    值迭代
    从策略迭代算法的伪代码可以看到,每一轮迭代中,在进行策略改进之前都要得到收敛的值函数,收敛的值函数需要很多次循环才能得到。问题:进行策略改进之前一定要得到当前策略对应的收敛值函数吗?
    示例:网格,迭代10次。
    我们发现,当前策略迭代10次与迭代无穷次所得到的贪婪策略都是一样的。因此,对于上面的问题,不一定非得等到策略评估算法完全收敛,才进行策略改进。如果在进行一次策略评估之后就进行策略改进,称之为值函数迭代算法。

    更多案例请关注“思享会Club”公众号或者关注思享会博客:http://gkhelp.cn/

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值