第三章 动态规划

马尔可夫决策过程是强化学习中的基本问题模型之一,而解决马尔可夫决策过程的方法统称为强化学习算法。本章开始学习基础算法之一,动态规划(DP)。指在一个复杂问题中将其分为多个子问题进行求解。RL中,其被用来求解值函数和最优策略。包括值迭代(VI),策略迭代(PI),Q-learning。

3.1 动态规划的编程思想

举个栗子:

要我们求从起点到终点的路径数量之和,每次只能向下或右走一步。此题有很多种做法,例如枚举法等,在动态规划中的做法是:1. 确定状态,2.写出状态转移方程 3. 寻找边界条件。

在此题中首先确定f(i,j),表示从左上角(0,0)到坐标(i,j)的路径数量,i\in [0,n)],j\in[0,n)]。当机器人处于(i,j)时,它的前一个坐标只能是(i,j-1)或(i-1,j)。建立状态如下:

上述即为状态转移方程。此外有些边界条件需要考虑。即i与j不能为零。

因此完善状态转移方程:

写出代码如下:

def solve(m,n):
    #初始化边界条件
    f=[[1]*n]+[[1]+[0]*(n-1) for _ in range(m-1)]
    #状体转移
    for i in range(1,m):
        for j in range(1,n):
             f[i][j]=f[i-1][j]+f[i][j-1]
    return f[m-1][n-1]

一般动态规划有三个性质,最优化原理,无后效性,有重叠子问题。无后效性即马尔可夫性质某状态以后的性质仅与当前状态有关,而不会影响以前的状态。最优化原理指如果问题的最优解所包含的子问题也是最优的,就称该问题具有最优子结构。回顾回报公式:

这就表明当前步的汇报跟以后的汇报有关,如果我们能最大化每一步的回报,就能解决马尔可夫决策问题,我们要解决G(t+1)的问题,可以将其拆解为Gt,Gt-1.......。至于如何解决 ,且看价值迭代和策略迭代算法。

3.2  状态价值函数和动作价值函数

在马尔可夫决策过程中,每一个状态都有价值,

即为状态价值函数,从特定状态出发,按某种策略Π进行决策所能得到的回报期望值,γ为折扣因子。引入动作的元素后有一个 Q函数,也叫做动作价值函数,即

则动作价值函数和状态价值函数间有关系:

其中的表示策略函数,一般指状态s下执行动作a的概率分布。公式意思为给定状态s情况下,智能体所有动作的价值期望(所有动作价值函乘以对应动作的价值之和)。其实就是全期望公式。

3.3 贝尔曼方程

类似于回报公式对状态价值函数和动作价值函数做一个类似推导。如下:

其中R(s)为奖励函数,P为状态转移矩阵,写为p(s'|s),此即为贝尔曼方程。其意义在于满足最优化原理,将前后两个状态联系起来。类似的,动作价值函数贝尔曼方程;

我们的目标是使得累积的回报最大化,则最优化策略下的状态价值函数可以为

称为贝尔曼最优方程,对于动作价值函数同理:

3.4 迭代策略

前述在最优策略Π*下,对于的状态和动作价值也最优,即V*和Q* ,但实际中求解优化策略时,需同时优化状态和动作价值函数,为多目标优化。迭代策略算法思路:固定策略Π,估计状态V,(策略估计),根据V结合策略,推算Q,进而改进策略。(策略改进)用贪心算法。定义策略函数

3.5 价值迭代

价值迭代公式:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值