1.4 贝尔曼公式

category
type
status
slug
date
summary
tags
password
icon
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.

1.4.1 贝尔曼公式推导

首先定义一个轨迹:
它的return写成:
它的state value可以做如下推导:
我们将结果分成两个部分放开展开.

1.4.1.1 第一部分immediate reward

代表在状态时, 当前状态到下一个状态的reward的期望值:
首先遍历所有的action组合, 用每个action的概率 乘以 采取action获得reward的期望.
然后将展开: 用采取action后, 获得reward的概率 乘以 reward本身.
就得到了完整的reward的期望值.

1.4.1.2 第二部分future rewards

代表在状态时, 下一个状态到结束的return的期望值:
首先遍历下一个时刻所有的状态组合, 用下一状态对应的概率 乘以 下一状态对应return的期望.
然后因为马尔科夫特性, 下一状态只与当前状态有关, 与历史状态无关, 将去掉. 该式子就是state value的定义, 简写成
接下来遍历所有的可能组合: 采取动作抵达的概率 乘以 采取动作的概率

1.4.1.3 贝尔曼公式

整理上面两项, 可以得到完整的贝尔曼公式:

1.4.2 例子

1.1.4.1 例子1: 固定策略

notion image
如图, 每个状态的状态值很容易写出来:
显然很容易求解这个方程组:

1.1.4.2 例子2: 随机策略

notion image
如图, 每个状态的状态值可以写成:
同样, 也很容易求解这个方程组:
我们可以看出来, 策略1的状态值策略2的状态值. 这说明策略1要优于策略2, 感性的是因为策略1不会进入禁止格.

1.4.3 贝尔曼公式的矩阵形式

我们重新写出贝尔曼公式:
其中的下一状态, 上式可以用矩阵和向量简写成 , 即:
其中都是已知量, 是未知量.
将例子2的数值代入到公式中, 即:

1.4.4 贝尔曼公式求解

有了贝尔曼公式的表达式, 下一步我们需要去求解状态值.

1.4.4.1 解析解

贝尔曼公式的解析解很容易写出来:
但是需要求的逆矩阵, 当矩阵庞大时, 求逆非常消耗计算资源, 因此我们一般不会直接用解析解.

1.4.4.2 迭代求解

我们可以用迭代的方式, 一个一个的去求解每个状态的状态值:
通过迭代更新, 我们可以逐个得到每个状态值:
 
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...