在双Q或对决Q网络的背景下,我不确定自己是否完全理解它们的区别。特别是关于V。V(s)到底是什么?一个状态如何具有内在价值?
如果我们以交易股票为例来考虑,那么我们将如何定义这三个变量?
回答:
-
无论讨论哪种网络,奖励都是环境的固有部分。这是代理在其一生中采取行动后接收到的信号(实际上是唯一的信号)。例如:一个玩国际象棋的代理在游戏结束时只获得一次奖励,要么是
+1
,要么是-1
,其他时候奖励为零。在这个例子中你可以看到一个问题:奖励非常稀疏,而且只给出一次,但游戏中的状态显然是非常不同的。如果一个代理处于拥有女王而对手刚失去女王的状态时,获胜的几率非常高(稍微简化一下,但你明白我的意思)。这是一个好状态,代理应该努力达到。如果另一方面,代理失去了所有棋子,这是一个坏状态,它很可能会输掉比赛。
-
我们希望量化什么是好的和坏的状态,这时就有了价值函数
V(s)
。给定任何状态,它会返回一个大或小的数字。通常,正式的定义是给定特定策略行动的未来奖励的期望值(关于策略的讨论,请参见这个问题)。这完全合理:一个好状态是未来+1
奖励非常可能的状态;坏状态则恰恰相反——未来-1
非常可能的状态。重要提示:价值函数依赖于奖励,不仅仅是一个状态,而是许多状态。记住,在我们的例子中,几乎所有状态的奖励都是
0
。价值函数考虑了所有未来状态及其概率。另一提示:严格来说,状态本身没有价值。但我们根据环境中的目标,即最大化总奖励,赋予了它一个值。可以有多个策略,每个策略都会诱导不同的价值函数。但通常有一个最优策略和相应的最优价值函数。这就是我们希望找到的!
-
最后,Q函数
Q(s, a)
或动作-价值函数是对给定策略下特定状态中特定动作的评估。当我们谈论最优策略时,动作-价值函数通过贝尔曼最优方程与价值函数紧密相关。这是合理的:一个动作的价值完全由该动作之后可能的状态的价值决定(在国际象棋游戏中,状态转换是确定性的,但一般来说也是概率性的,这就是为什么我们在这里谈论所有可能的状态)。再一次,动作-价值函数是未来奖励的衍生物。它不仅仅是当前的奖励。有些动作可能比其他动作好得多或差得多,即使即时奖励相同。
关于股票交易的例子,主要的难点在于为代理定义一个策略。让我们想象最简单的情况。在我们的环境中,一个状态只是一个元组(当前价格, 持仓)
。在这种情况下:
- 只有当代理实际持有头寸时,奖励才不为零;当它退出市场时,没有奖励,即为零。这部分或多或少是容易的。
-
但价值和动作-价值函数非常不简单(记住它只考虑未来奖励,不考虑过去)。比如,AAPL的价格在100美元,是好是坏考虑未来奖励?你是应该买还是卖?答案取决于策略…
例如,一个代理可能以某种方式学会,每次价格突然跌至40美元,它很快就会恢复(听起来太傻了,这只是一个说明)。现在,如果代理按照这个策略行动,40美元左右的价格是一个好状态,其价值很高。同样,40美元左右的动作-价值
Q
对“买入”很高,对“卖出”很低。选择不同的策略,你将得到不同的价值和动作-价值函数。研究人员试图分析股票历史并提出合理的策略,但没有人知道最优策略。实际上,没有人甚至知道状态概率,只有它们的估计。这就是真正使任务变得困难的原因。