强化学习中Q、V(价值函数)和奖励之间的确切区别是什么?

在双Q或对决Q网络的背景下,我不确定自己是否完全理解它们的区别。特别是关于V。V(s)到底是什么?一个状态如何具有内在价值?

如果我们以交易股票为例来考虑,那么我们将如何定义这三个变量?


回答:

  • 无论讨论哪种网络,奖励都是环境的固有部分。这是代理在其一生中采取行动后接收到的信号(实际上是唯一的信号)。例如:一个玩国际象棋的代理在游戏结束时只获得一次奖励,要么是+1,要么是-1,其他时候奖励为零。

    在这个例子中你可以看到一个问题:奖励非常稀疏,而且只给出一次,但游戏中的状态显然是非常不同的。如果一个代理处于拥有女王而对手刚失去女王的状态时,获胜的几率非常高(稍微简化一下,但你明白我的意思)。这是一个好状态,代理应该努力达到。如果另一方面,代理失去了所有棋子,这是一个坏状态,它很可能会输掉比赛。

  • 我们希望量化什么是好的和坏的状态,这时就有了价值函数V(s)。给定任何状态,它会返回一个大或小的数字。通常,正式的定义是给定特定策略行动的未来奖励的期望值(关于策略的讨论,请参见这个问题)。这完全合理:一个好状态是未来+1奖励非常可能的状态;坏状态则恰恰相反——未来-1非常可能的状态。

    重要提示:价值函数依赖于奖励,不仅仅是一个状态,而是许多状态。记住,在我们的例子中,几乎所有状态的奖励都是0。价值函数考虑了所有未来状态及其概率。

    另一提示:严格来说,状态本身没有价值。但我们根据环境中的目标,即最大化总奖励,赋予了它一个值。可以有多个策略,每个策略都会诱导不同的价值函数。但通常有一个最优策略和相应的最优价值函数。这就是我们希望找到的!

  • 最后,Q函数Q(s, a)动作-价值函数是对给定策略下特定状态中特定动作的评估。当我们谈论最优策略时,动作-价值函数通过贝尔曼最优方程与价值函数紧密相关。这是合理的:一个动作的价值完全由该动作之后可能的状态的价值决定(在国际象棋游戏中,状态转换是确定性的,但一般来说也是概率性的,这就是为什么我们在这里谈论所有可能的状态)。

    再一次,动作-价值函数是未来奖励的衍生物。它不仅仅是当前的奖励。有些动作可能比其他动作好得多或差得多,即使即时奖励相同。


关于股票交易的例子,主要的难点在于为代理定义一个策略。让我们想象最简单的情况。在我们的环境中,一个状态只是一个元组(当前价格, 持仓)。在这种情况下:

  • 只有当代理实际持有头寸时,奖励才不为零;当它退出市场时,没有奖励,即为零。这部分或多或少是容易的。
  • 但价值和动作-价值函数非常不简单(记住它只考虑未来奖励,不考虑过去)。比如,AAPL的价格在100美元,是好是坏考虑未来奖励?你是应该买还是卖?答案取决于策略

    例如,一个代理可能以某种方式学会,每次价格突然跌至40美元,它很快就会恢复(听起来太傻了,这只是一个说明)。现在,如果代理按照这个策略行动,40美元左右的价格是一个好状态,其价值很高。同样,40美元左右的动作-价值Q对“买入”很高,对“卖出”很低。选择不同的策略,你将得到不同的价值和动作-价值函数。研究人员试图分析股票历史并提出合理的策略,但没有人知道最优策略。实际上,没有人甚至知道状态概率,只有它们的估计。这就是真正使任务变得困难的原因。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注