我是靠谱客的博主 健忘小兔子,最近开发中收集的这篇文章主要介绍求解多变量非线性全局最优解_3.6 最优策略和最优值函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们知道一个强化学习问题的目的是:求解一个策略以尽可能多的获得长期回报。对于一个有限状态的MDP问题,实际上是具有最优策略的。竟然说最优,当然就有对比。就像我们利用C++标准库函数来对多个对象实例进行大小排序时,那就得传一个函数给库函数告诉它大小是怎么定义的。什么叫我比你大?策略也一样,一个策略比另一个策略好,好是什么含义?我们的定义是如果策略

所有状态 下的期望回报都比策略
大,那么就说
策略
好。换句说,也就是
当且仅当对于所有状态
满足
。那么很自然的,最优策略当然是比所有其他策略都好的策略。最优策略可能不止一个,但我们统一表示为
。他们具有相同的状态值函数,叫做
最优状态值函数。表示为
,定义为:

意思也就是所有策略中最优策略对应的值函数就是最优值函数。

最优策略也具有相同的最优动作值函数,表示为

,定义为:

贝尔曼最优方程

既然最优值函数

也是一个策略的值函数,那么它就必须满足贝尔曼方程的自治条件。但是因为是最优值函数,
具有特殊的形式,它不依赖于具体的策略。直觉上来说,最优的值函数应该最优策略下最优动作的期望回报。因此表示为:

过程中首先带入了

的定义。将其写成期望的形式,在(3)对期望操作展开。对于
的贝尔曼最优方程表示为:

可以看出最优贝尔曼方程和贝尔曼方程的最大区别就是分别多了最大化的操作。学习后面的知识就能了解,Q学习实际上是利用了最优贝尔曼方程。

备份图

最优贝尔曼方程的备份图表示如下:

2dc986823d52afa42135941168ee17af.png
最优值函数的备份图

从备份图可以看出,每次在选择动作时,我们并不是根据策略来求一个期望,而是用了最大化操作。所以我们的最优贝尔曼方程中没有直接和

发生关系。

求解最优值函数

对于有限状态的MDP问题来说,(3)具有唯一解。实际上表达式(3)定义了关于状态

的一个等式。假设总共有
个状态,就有
个这样的等式。而我们要求的未知数
也是
个。因此如果环境的模型
和立即回报
已知,就可以利用任何
非线性方程求解器来解决这个问题。对于
也同理。

通过上面方法显式的求解贝尔曼最优方程来找到最优策略,是一种思路。但是实际当中几乎很少这样做。归结起来主要有三个难点:

  • 我们需要精确的知道环境的模型
  • 我们需要足够的计算资源来完成求解
  • 要满足马尔科夫性

实际中这三点很难同时满足的。比如对于西洋棋游戏,满足条件1和3。但是这个游戏具有多达

个状态,即使使用目前最快的计算机也需要上千年的时间才能解出最优贝尔曼方程。因此这种精确求解往往是不现实的,取而代之的是用近似求解方法。

很多决策方法都可以看成是近似求解贝尔曼最优方程的某种形式。比如启发式搜索可以看成是对公式(3)进行若干次展开,到了一定深度,形成一棵树,然后用启发式评估函数来近似叶子节点的最优值函数。动态规划方法和贝尔曼最优方程联系更为紧密。许多强化学习方法也是在近似求解贝尔曼最优方程。

求解最优策略

最优策略求解分两种情况,分别是已知最优状态值函数

和已知最优动作值函数
  • 已知

为了求解最优策略,只需要做一步搜索就行。也就是在

对于不同的
,计算
,获得最大值对应的
就是我们的最优策略。为什么只需要一步搜索就行呢?因为
已经考虑未来可能行为的回报。
  • 已知

已知

求解最优策略就更直接了,只要
中最大值对应的动作就是最优动作(策略)。也就是
。我们可以看到我们甚至不用知道环境模型
。但代价是我们需要计算所有状态-动作对的值函数。

最后

以上就是健忘小兔子为你收集整理的求解多变量非线性全局最优解_3.6 最优策略和最优值函数的全部内容,希望文章能够帮你解决求解多变量非线性全局最优解_3.6 最优策略和最优值函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部