2.1 值迭代
category
type
status
slug
date
summary
tags
password
icon
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
本节我们将介绍强化学习中的值迭代求解方法.
2.1.1 算法步骤
在1.5节我们介绍了通过迭代可以求贝尔曼最优公式的最优解, 这个方法就叫值迭代:
当迭代数时, 会收敛到最优值. 它的算法步骤为:
2.1.1.1 更新策略
基于当前, 求最优化问题: 使得上式状态值最大的最优策略, 并将其更新给
式子中的矩阵展开可以写为:
1.5节我们介绍过了, 最优解是一个确定贪婪策略, 即只有最佳动作的选择概率是1:
其中动作是最优解:
2.1.1.2 更新值
得到新的策略之后, 更新新的值即可:
式子展开可以写成:
因为最优策略是一个贪婪策略, 所以上式实际上就是最大的动作值, 即:
2.1.1.3 伪代码
- 输入: 所有的都是已知的, 状态值初始解
- 输出: 贝尔曼最优公式的最优解:
- 迭代终止条件: , 是一个极小值超参数
- 计算
- 找到最优解, 即使得动作值最大的动作
- 更新策略:
- 更新值:
2.1.2 例子
仿真世界如图所示, 奖励设计如下:
- 抵达禁止格或边界的奖励是-1:
- 抵达终点的奖励是1:
- 其他行为奖励是0
根据这个奖励设计, 该仿真场景中的每个状态和动作的动作值计算公式如下:
首先初始化, 然后我们开始值迭代算法:
2.1.2.1 k=0
我们计算出了所有状态和动作组合的动作值:
每个状态都选择动作值结果最大的作为最优动作, 更新所有状态的最优策略:
接着更新所有状态的状态值
最后计算, 继续迭代
2.1.2.2 k=1
计算出了所有状态和动作组合的动作值:
每个状态都选择动作值结果最大的作为最优动作, 更新所有状态的最优策略:
接着更新所有状态的状态值
最后计算, 继续迭代
2.1.2.3 k=2
计算出了所有状态和动作组合的动作值:
每个状态都选择动作值结果最大的作为最优动作, 更新所有状态的最优策略:
接着更新所有状态的状态值
最后计算, 继续迭代
2.1.2.4 k=3,4
前面过程类似的, 最优策略没有变, 最后
说明已经收敛. 这个例子笔者有个问题, 就是值迭代中即使最优策略已经不变了, 状态值是在变化的, 但是还需要几次循环才能达到收敛条件. 那么当迭代中最优策略已经不变了, 是否可以作为终止迭代的条件, 如果不可以是因为什么呢?待后续学习过程中解答.
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...