作者 | 小猴锅
编辑 | 安可
出品 | 磐创AI团队出品
【磐创AI导读】:本篇文章是深度强化学习专栏的第二篇,讲了第三节有模型的强化学习,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。想要获取更多的机器学习、深度学习资源,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。
目录:
1. 引言
2. 强化学习基础知识
3. 有模型的强化学习方法
4. 无模型的强化学习方法
5. 实战强化学习算法
6. 深度强化学习算法
7. 专栏小结
在一些强化学习问题中,我们知道环境的具体信息(例如所有的环境状态、状态转移概率矩阵以及关于动作(或状态)的奖励等),这种情况下我们可以利用这些信息构建一个MDP模型来对环境进行描述。一旦有了这个模型, 我们就可以使用动态规划的方法来对最优价值函数和策略进行求解,而一旦获得了最优价值函数,最优策略就是选择能够最大化下一状态价值的动作。
价值迭代(Value Iteration)算法是一种求解最优策略的方法,价值迭代的算法思想是:遍历环境中的每一个状态,在每一个状态下,依次执行每一个可以执行的动作,算出执行每一个动作后获得的奖励,即状态-动作价值,当前状态的价值即为当前状态下的最大状态-动作价值。重复这个过程,直到每个状态的最优价值不再发生变化,则迭代结束。迭代算法如下:
for s in S:
V(s)=0
do:
delta = 0
for s in S:
temp = V(s)
for a in A:
delta = max(delta,|temp-V(s)|)
while(delta≥θ)
在价值迭代(Value Iteration)中,我们通过价值迭代间接地寻找最优策略,而在策略迭代(Policy Iteration)中,我们直接存储和更新策略。策略迭代算法主要由两部分组成,一部分是策略估计(policy Evaluation),另一部分是策略改进(policy improvement)。
其算法思想是:首先随机初始化策略,将状态价值函数置为0。在策略估计部分,根据当前的策略来计算每一个状态的价值,直到收敛为止。在策略改进部分,根据上一步求得的状态价值来计算新的策略,直到策略收敛为止,否则重新回到策略估计。迭代算法如下:
Initialization:
Initial a polic π
for s in S:
V(s)=0
Policy Evaluation:
do:
delta = 0
for s in S:
temp = V(s)
V(s) =
delta = max(delta,|temp-V(s)|)
while(delta≥θ)
Policy Improvement:
policy-stable = true
for s in S:
temp =
if temp ≠ :
then policy-stable = false
if policy-stable:
then stop and return V and π
else:
goto Policy Evaluation