Reinforcement Learning - VI-PI
a Model-Based RL Algorithm
1. Value Iteration
这个算法在 Reinforcement Learning - Basics 4.3 中已经简要介绍过
Bellman Optimality Equation 的 Iterative Solution,目的是寻找 State Value
即 BOE 的 Unique Fixed Point Solution
该 Unique Fixed Point 可以用如下方式迭代解得
本部分,此算法会被用于寻找 Optimal Policy
1.1 Algorithm
-
Step 0 - Initialization
需要提供的内容
Probabilistic Environment Models State Value Initial Guess
-
Step 1 - Policy Update (PU)
solve with given
以 Elementwise Form 表达
只需要代入
,然后最大化 即可找到符合上式的 Optimal Greedy Policy -
Step 2 - Value Update (VU)
find next value
with以 Elementwise Form 表达,则是代入
得由于是 Greedy Policy,所以 Value Update 实际上只需下式即可
Policy 为唯一一个能最大化 Action Value 的
,也就是然后代入 Elementwise Form,你会发现整件寻找 Next Value 的事情与 Policy 是什么无关
因为 Policy 本身有 Greedy 的特性,只有最大的那个 Action Value 会被留下作为
你可能会觉得 Environment Model 需要 Update,但实际上并不需要
1.2 Pseudo Code

1.3 Example
在下图的场景中
黄色的
为禁区,蓝色的 为目的地-
Reward 设置
Discount Rate 设置
Action Space 设置
上, 右, 下, 左, 不动

那么该场景的 Q-Table 为

Assume the initial guess at
现在演算 Value Iteration
-
At

Q-Table 代入
后得到上表,标红数据为每个 State 最大的 Action Value / Q-Value-
Policy Update
State
有两个 Action 可以选,此处采用 Greedy Policy,所以就随便挑一个,比如 -
Value Update
-
Policy Visualized

-
-
At

Q-Table 代入
后得到上表,标红数据为每个 State 最大的 Action Value / Q-Value-
Policy Update
-
Value Update
-
Policy Visualized

-
显然,迭代两次就已足以找出 Optimal Policy 了
2. Policy Iteration
这是一个只在理论中存在 的算法,可以理解为与 Value Iteration 相对的一个极端,这一点会在 3. Truncated Policy Iteration 中解释
2.1 ALgorithm
-
Step 0 - Initialization
需要提供的内容:Random Initial Policy
-
Step 1 - Policy Evaluation (PE)
Find State Value
given Policy其实就是解个 Bellman Expectation Equation:
-
Closed-Form Solution
看起来很美好,但是由于需要求 Inverse Matrix,计算麻烦,直接否决
-
Iterative Solution
这个是合适的解法,所以 Policy Iteration 不止本身是一个迭代算法,还嵌套了另一个迭代算法
以 Elementwise Form 表达
这一步就是 Policy Iteration 只存在于理论中的原因
因为按照严格定义,你得真的算到无穷,而不是只算到收敛
-
-
Step 2 - Policy Improvement (PI)
Plug in derived
, solve for improved policy以 Elementwise Form 表达
将求得的
代入上式即可解得 Improved Greedy Policy为什么能断言
会比 更好?或者说,为什么能保证 ?从定义来看有
所以可以确定
2.2 Pseudo Code

2.3 Example 1
在下图的场景中
蓝色的
为目的地-
Reward 设置
Discount Rate 设置
Action Space 设置
左, 不动, 右Initial Guess 设置
为全部 ,即初始状态为左图

现在演算 Policy Iteration
-
At
, Policy Evaluation方便起见,不用 Iterative Solution 直接解
-
At
, Policy Improvement该场景的 Q-Table 为

代入上一步求得的
可得
标红数据为每个 State 最大的 Action Value / Q-Value,得到的 Improved Policy 为
-
At
, Done如右图中 Final Optimal Policy 所示,只用了一次迭代就达到了最优
2.4 Example 2
在下图的场景中
黄色区域为禁区,蓝色区域为目的地
-
Reward 设置
Discount Rate 设置
图中的 (a) ~ (h) 展示了 Policy Iteration 改进 Policy 的效果:
未优化
绿色 Action已优化
粉色 Action正在被优化
红色方框套绿色 Action
你会发现优化是有顺序的:离目的地越近的 State 越先被优化

3. Truncated Policy Iteration
这是一种介于 Value Iteration 和 Policy Iteration 之间的算法,如果对比一下两种算法

你会发现,除了 Policy Iteration 初始化了
两种算法关于 Value 的步骤 Step 4 都与 Bellman Expectation Equation 的 Iterative Solution 相关

可以看出
Value Iteration 要求是 Iterate 一次
Policy Iteration 要求是 Iterate 到无穷,在实操中就是迭代到收敛
Truncated Policy Iteration 要求是 Iterate 到指定次数
所以 Truncated Policy Iteration 的步骤 / Pseudo Code 和 Policy Iteration (see 2.2) 大体是一样的
只需要改动一下套在最外面的 while 停止条件,让
[Question] Truncation 会影响收敛性吗?
不会
可证得在 BEE 的 Iterative Solution 中
因此你迭代
次 Value 会变大,迭代 次 Value 也会变大,只是收敛速度的问题
