New-York-University-Financial-Reinforcement-Learning-Notes-全-

New York University Financial Reinforcement Learning Notes(全)

课程 P1:金融机器学习专业介绍 📚

在本节课中,我们将了解“金融机器学习”专业课程的核心内容、目标受众以及您将从中获得的主要技能与知识。

概述

这个专业课程是Coursera平台上关于机器学习的一个专项课程,其独特之处在于专注于探讨机器学习在实际应用中的局限性。这与通常广泛使用工业案例来教授机器学习的其他课程有所不同。

课程目标受众 👥

本课程主要面向两类人群。

以下是具体描述:

  • 您目前是一名金融专业人士。
  • 您计划在不久的将来成为一名金融专业人士。

因此,本课程专为从业者或未来计划从事金融工作的人员设计。课程目标不是从零开始学习机器学习,而是利用金融领域的实际问题来发展和提升您的机器学习技能。金融本身涉及大量数字与预测,我们为何不直接使用金融数据来学习机器学习,而要使用与金融无关的示例呢?

课程案例与作业设计 💡

由于这是面向从业者的专业课程,我尽力避免设计与现实生活无关的无意义练习。

以下是课程案例的特点:

  • 我们不会进行诸如预测股票价格或股票指数之类的练习。
  • 原因是,即使您可能见过许多讨论机器学习在此类问题上应用的博客或研究论文,这些问题本身并没有确切的答案。
  • 为了最大化课程对您的实用价值,本专业课程将只探讨那些实际有用的案例。

您将学到什么 🎯

完成本专业课程后,您将获得以下三方面的主要收获。

第一,您将对机器学习的核心概念以及最重要的算法有深入的理解。第二,您不会以抽象的方式学习这些知识,而是通过非常实际的方式。我们将处理多种不同类型的金融数据,并运用多种机器学习算法来处理相同的数据。您不仅会学习经典的机器学习算法,还将对神经网络(特别是近年来风靡业界的深度神经网络)有扎实的理解和实战经验。

因此,您将对金融数据以及不同算法在这些数据上的表现形成良好的直觉。您将知道如何应用Python机器学习库(例如 scikit-learnTensorFlow)来构建机器学习模型,应用于量化交易、资产管理、银行及其他金融领域。

您将能够通过一系列有趣且相关的项目作品集给潜在雇主留下深刻印象,这些项目展示了机器学习在实际问题中的应用。更重要的是,您将能够利用所学的知识,使用掌握的库来构建新的机器学习模型,以满足您企业的需求。

培养持续学习的能力 📖

最后一点,也是本课程学习内容的重要组成部分。机器学习是一个快速发展的领域,今天在学校教授的前沿方法明天可能就会过时。因此,行业从业者应该能够理解面向从业者的机器学习论文,并能够实现其中的方法。学习它的最佳途径就是阅读机器学习论文。

我们的编程作业通常会引用相关的原始出版物,供您深入挖掘所涵盖的主题。此外,我将提供原始出版物的参考文献以及每周的阅读材料,这两者都应有助于您更广泛地了解要涵盖的主题,并培养阅读机器学习论文的实践能力。

总结

本节课我们一起了解了“金融机器学习”专业课程的定位、目标学员、教学案例的设计思路,以及完成课程后您将在算法理解实战应用论文研读能力这三个方面获得的主要收获。

课程 P15:BSM模型的MDP表述 🧠

在本节课中,我们将学习如何将离散时间的布莱克-舒尔斯-默顿(BSM)模型重新表述为一个马尔可夫决策过程(MDP)。我们将从期权定价和对冲的视角出发,将其构建为一个离散时间的随机最优控制问题。

1. 问题概述与两种求解路径

上一节我们引入了BSM模型,本节中我们来看看如何将其转化为MDP问题。被控制的系统是一个对冲投资组合,控制变量是该组合中的股票头寸。问题的目标是通过顺序最大化某种“奖励”来解决。这个奖励函数实际上是对冲组合负方差与风险厌恶系数 λ 的乘积,再加上一个微分项。

处理此问题时,需要区分两种情况:

  • 世界模型已知:可以使用动态规划(DP)或基于模型的强化学习方法。
  • 世界模型未知:可以使用不依赖于模型的强化学习方法,直接依赖数据样本求解。

这两种情况对应求解贝尔曼最优性方程的两种不同方式。我们将从适合动态规划的表述开始,然后展示如何调整为强化学习的设置。

2. 状态变量的定义

虽然可以直接使用股票价格 S_t 作为状态变量,但这并不方便,因为股价会随时间持续上涨,导致动态不稳定。这个问题可以轻松解决,方法是引入一个与股价相关的新状态变量 X_t

其定义如下:

  1. X_t = (μ - σ²/2) t + σ W_t,其中 W_t 是标准布朗运动。
  2. 如第二个方程所示,X_t 本质上是一个经过重新缩放的标准布朗运动。
  3. 股价 S_t 可以通过对 X_t 添加确定性漂移并取指数得到:S_t = exp(X_t)

3. 连续与离散状态空间

通常我们假设处理的是连续状态空间。但离散状态空间的表述更易于理解,也有其应用场景。

如果我们想处理离散状态空间,可以简单地使用BSM模型的离散化版本,并直接在该离散模型中构建最优对冲。其中一种最简单的方法是使用由Duan和Sunata在2001年提出的BSM模型的马尔可夫链近似。

尽管本课程不会使用这种离散化动态,但值得提及,因为离散空间的MDP问题简化了许多事情。例如,我们可以为此类系统使用简单的算法,如Q-learning。我们将在后续课程中讨论这一点。

请记住,我们在此讨论的所有内容都可以在离散状态空间中表述。

4. 指定MDP问题

现在,我们准备指定MDP问题。我们使用新的状态变量 X_t 替代 S_t,并引入一个新的动作变量 A_t(对应于股票头寸)。原始的动作变量 U(S_t) 可以通过 A_t 得到,只需将 X_t 重新表达为 S_t

为了描述在不同状态下采取的动作,我们引入了确定性策略 π 的概念。该策略将状态 X_t 和时间 t 映射到动作 A_t,即 A_t = π(t, X_t)

5. 贝尔曼方程与奖励函数

我们已经介绍了值函数 V_t,它是期权价格的负值。通过推导,我们可以得到值函数 V_t 的贝尔曼方程,其具有标准形式。

我们模型的特别之处在于奖励函数 R_t 的形式。瞬时奖励 R_t 由两部分组成:

  • 第一部分与股票价格的变化成正比,并与股票头寸 A_t 相乘。
  • 第二部分与风险厌恶系数 λ 成正比,是时间步 t 对冲组合的负方差。

具体公式如下:
R_t = A_t * ΔS_t - λ * Var[ΔΠ_t | F_t]
其中,Δ 表示差分(例如 ΔS_t = S_{t+1} - S_t),Var[·] 表示条件方差。

如果我们取瞬时奖励 R_t 在时间 t 的条件期望,就得到了期望奖励。这个关系式有两个关键点:

  1. 它在动作变量 A_t 上是二次的,这使得关于 A_t 的优化变得简单。
  2. 公式显示,由第二项给出的二次风险奖励被作为一步期望纳入。因此,一旦我们对期望奖励进行了这种调整,就可以直接使用标准的风险中性MDP方法来解决问题。

之前的课程提到,标准的风险中性MDP公式可能不直接适用于金融问题,因为金融关注风险。而这里给出的公式提供了一个简单的解决方案:只需在奖励函数中加入期望的二次风险项,然后在风险中性估值中使用这种风险调整后的奖励。

值得注意的是,如果令公式中的 λ = 0,那么期望奖励在 A_t 上就变为线性。在这个极限下,如果只关注期望奖励,就不再存在需要最大化的目标函数。但这并不意味着找不到最优对冲策略。最优对冲仍然可以通过二次风险最小化找到,不同之处在于,当 λ → 0 时,对冲问题和定价问题变得解耦。

总结

本节课中,我们一起学习了如何将BSM期权定价与对冲问题表述为一个马尔可夫决策过程(MDP)。我们定义了更稳定的状态变量 X_t,引入了包含风险项的奖励函数,并推导了相应的贝尔曼方程。我们探讨了在模型已知和未知两种情况下的求解路径,并说明了通过调整奖励函数,可以将风险考量纳入标准的风险中性MDP框架。最后,我们分析了风险厌恶系数 λ 趋于零时,定价与对冲问题的解耦特性。

课程 P16:MDP for BSM - 动作值函数 🧠

在本节课中,我们将学习马尔可夫决策过程在布莱克-斯科尔斯模型中的应用,并重点介绍一个核心概念——动作值函数。我们将探讨如何利用它来寻找最优交易策略,特别是在系统动态未知的情况下。


概述

我们已经知道,最优策略 π* 是使值函数 V_t 最大化的策略。最优值函数 V* 满足贝尔曼最优性方程。当系统动态已知时,我们可以使用值迭代等方法求解此方程。

上一节我们回顾了值函数的基本方程。本节中,我们将看看当系统动态未知时,一个更强大的工具——动作值函数。


动作值函数的定义

动作值函数,通常记作 Q,是值函数的一个扩展版本。与值函数 V(x_t) 仅依赖于状态 x_t 不同,Q函数同时依赖于状态 x_t 和在该状态下采取的动作 a_t

其数学定义如下:

Q^π(x_t, a_t) = E[ R_t + γ * V^π(x_{t+1}) | x_t, a_t ]

其中,R_t 是即时奖励,γ 是折扣因子,期望值是在给定当前状态 x_t 和动作 a_t,并遵循策略 π 的条件下计算的。


动作值函数的贝尔曼方程

通过将未来回报的期望进行分解,我们可以为任何策略 π 的Q函数推导出贝尔曼方程。

以下是Q函数的贝尔曼方程:

Q^π(x_t, a_t) = E[ R_t + γ * Q^π(x_{t+1}, π(x_{t+1})) | x_t, a_t ]

这个方程建立了当前Q值与下一状态Q值之间的联系。

然而,我们最终的目标是找到最优策略 π*,它应该最大化动作值函数。


最优动作值函数与贝尔曼最优性方程

最优策略 π* 满足以下条件:

π*(x_t) = argmax_{a_t} Q*(x_t, a_t)

最优动作值函数 Q* 则满足一个更简洁、只涉及自身的方程——贝尔曼最优性方程:

Q*(x_t, a_t) = E[ R_t + γ * max_{a_{t+1}} Q*(x_{t+1}, a_{t+1}) | x_t, a_t ]

这个方程是强化学习中的核心,它表明最优的长期价值等于即时奖励加上下一状态最优价值的折扣期望。

贝尔曼最优性方程是一个反向方程,应从最终时间 T 开始逆向求解。


在BSM模型中的应用

现在,让我们将上述理论应用到布莱克-斯科尔斯期权定价的背景下。这里,动作 a_t 通常代表投资组合的持仓调整。

如果我们把奖励函数 R 的具体形式(例如,与对冲误差和风险惩罚相关)代入贝尔曼最优性方程,会发现Q函数关于动作 a_t 是二次的。

Q*(x_t, a_t) ≈ -λ * Var[Π_T] + E[Π_T]

(其中 Π_T 是投资组合的终端价值,λ 是风险厌恶系数)

这使得相对于动作 a_t 的最大化问题变得非常简单直接。


与经典模型的联系

一个特别有趣的情况是当风险厌恶系数 λ 趋近于0时。在这个极限下,最大化Q函数就等价于最大化投资组合的期望终端价值。

此时,最优Q函数的递归关系可以简化为:

Ĉ_t = E[ Ĉ_{t+1} | x_t ]

这正是计算风险中性期望下平均期权价格 (即布莱克-斯科尔斯价格)的递归关系。当时间步长 ΔT 也非常小时,我们的公式就收敛于经典的布莱克-斯科尔斯偏微分方程。

这证明了我们的MDP框架在连续时间、风险中性极限下与经典理论的一致性。


总结

本节课中,我们一起学习了:

  1. 动作值函数(Q函数) 的定义,它同时评估状态和动作的价值。
  2. Q函数的贝尔曼方程以及最优Q函数满足的贝尔曼最优性方程
  3. 如何利用贝尔曼最优性方程逆向求解最优策略。
  4. 在BSM模型中,Q函数表现为二次形式,便于优化。
  5. 当风险厌恶趋于零且时间步长无限细分时,我们的MDP框架收敛于经典的布莱克-斯科尔斯模型

理解动作值函数是掌握现代强化学习和其在金融中应用的关键一步,它为我们处理模型不确定性的问题提供了强大的工具。

课程 P17:MDP for BSM - 最优行动来自Q函数 🧠

在本节课中,我们将学习如何从Q函数中推导出最优对冲策略。我们将看到,在更一般的情况下,最优行动可以通过解析方式求解,并理解其与经典离散时间布莱克-斯科尔斯模型的联系与区别。


上一节我们验证了公式在极限情况下能重现布莱克-斯科尔斯模型。本节中,我们来看看当λ和时间步长Δt都不为零的更一般情况。让我们再次审视贝尔曼最优方程。

由于回报R_t是关于行动a_t的二次函数,Q函数同样也是关于a_t的二次函数。这意味着我们可以通过解析方法最大化Q函数。

以下是具体步骤:我们只需计算Q函数关于a_t的导数,并令其为零以求解最优行动a_t*。这很容易做到,因为整个表达式是二次的。

对其求导后,我们得到以下表达式:

∂Q/∂a_t = 0

通过求解这个方程,我们得到了最优对冲的表达式。

这个表达式应该看起来很熟悉。最优对冲由两个条件期望的比率给出:一个涉及下一时间步的投资组合价值π_{t+1},另一个涉及股票价格增量平方(ΔS_t)^2。

我们在离散时间布莱克-斯科尔斯模型中有一个非常相似的表达式。回顾一下,该表达式可以写成条件协方差与条件方差的比率,也可以重写为两个条件期望的比率。

这两个表达式之间的唯一区别在于,我们新公式的分子中多出了一项。关于这项,有几个有趣的观察点。

首先,从数学角度看,如果我们取小的时间步长,那么ΔS_t的期望将与(μ - r)成正比。这意味着,如果我们令μ = r,或者在此表达式中令λ趋于无穷大,分子中的第二项就会消失。

在这种情况下,通过最大化Q函数得到的最优对冲,将与我们在离散时间布莱克-斯科尔斯模型中得到的对冲策略一致。这是一个正式的数学陈述。

但这些结果的金融解释是什么呢?为了回答这个问题,我们可以回顾模型的设定。

我们将价值函数V_t定义为投资组合价值的期望与对冲投资组合在再平衡时折现方差的总和。因此,我们公式中的期望回报包含两项,分别与对冲投资组合的期望漂移和方差成正比。

当我们最大化这个关于a_t的表达式时,从数学上讲,这与马科维茨投资组合分析的设置相同,后者旨在最大化风险调整后的投资组合回报。所以,这里的目标函数同时考虑了对冲组合的风险和回报。

显然,这与离散时间的布莱克-斯科尔斯模型不同。在那个模型中,我们只关注对冲投资组合的风险。

如果我们想将我们的模型与离散时间布莱克-斯科尔斯模型进行基准比较,可以通过设定μ = r,或者取λ趋于无穷大的极限来简单地消除这个附加项。这两个极限都将强制执行纯粹基于风险的对冲视角,从而与我们之前的模型一致。

因此,我们的对冲公式不仅能再现经典布莱克-斯科尔斯模型中的纯风险对冲,还可以在更一般的场景下应用。例如,当期权被用作投资工具时,我们需要同时考虑其风险和回报。

经典的布莱克-斯科尔斯模型无法直接处理这种情况,因为它直接进入了连续时间极限,并假设所有资产具有相同的风险调整后回报r。因此,当人们试图为期权投机建立框架时,通常需要对原始模型进行各种临时性修改。

但在这里,我们不需要任何此类临时修改,因为我们的设定更为一般化。在一般情况下,它优化的是对冲投资组合的风险调整后回报,而不仅仅是风险。

所以,经典布莱克-斯科尔斯模型的纯对冲策略,只是这里的一个特例,可以通过在最优对冲公式中设定μ = r来重现。


本节课中,我们一起学习了如何从Q函数解析求解最优对冲行动。我们看到了新公式与经典离散时间布莱克-斯科尔斯模型的联系,并理解了通过调整参数(如令μ = r),我们的通用模型可以退化为经典的风险对冲模型。这为我们提供了一个同时考虑风险与回报的更灵活的对冲框架。

课程P18:BSM的MDP模型 - Q*函数的向后递归 🧮

在本节课中,我们将学习如何将最优对冲与最优Q函数相结合,从而为期权定价和对冲问题提供一个完整的算法解决方案。我们将推导出关键的递归公式,并将其与经典的黑-舒尔斯模型进行对比,理解离散时间模型的优势。


上一节我们介绍了如何计算最优对冲动作。本节中,我们将把最优对冲公式与Q函数的贝尔曼方程结合起来。

结合以下两个核心公式,我们可以为期权对冲和定价提供一个算法解。

  1. 最优Q函数的贝尔曼方程(适用于任何动作a):
    Q*(S_t, a_t) = E_t[ R_{t+1} + γ * max_{a_{t+1}} Q*(S_{t+1}, a_{t+1}) ]
  2. 最优对冲动作A* 的解析解(在上一节已推导):
    A*_t = (E_t[ΔS_{t+1} * Q*_{t+1}] + λ * E_t[Q*_{t+1}]) / (Var_t(ΔS_{t+1}) + λ)

由于我们已经知道当前时间步t的最优动作A*_t,我们可以将其代入第一个方程。这样,我们得到的是在最优动作A*处求值的Q*函数的递归关系,即Q*(S_t, A*_t)

这种方法非常方便,因为它不需要额外存储其他非最优动作的Q值。如果我们最终目标是在初始时刻t=0评估Q*,那么直接沿着最优路径A*进行计算即可。


上一节我们建立了递归关系,现在我们来明确这个算法的目标。

我们之所以需要逼近Q*A*,是因为在最优动作A*处评估的Q*函数值,恰好等于最优价值函数V*,即Q*(S_t, A*_t) = V*(S_t)

而根据定义,最优价值函数V*是期权最优价格的负值。因此,通过计算Q*(S_0, A*_0)并取负号,我们就能得到期权的价格。

以下是算法的具体步骤:
我们从到期日T开始,向后递归计算到初始时刻t=0

  1. 在每个时间步t,首先利用第二个公式计算该时刻的最优对冲A*_t
  2. 然后,将这个A*_t代入第一个公式的右侧,计算Q*(S_t, A*_t)
  3. 将计算出的Q*值作为前一个时间步计算的输入,重复此过程。

这个过程形成了一个简单的向后递归算法,最终计算出初始时刻的最优对冲A*_0和在A*_0处评估的最优Q值Q*_0。对Q*_0取负号即得到期权价格。


总结一下,我们从到期日开始,通过向后递归,同步计算出期权的最优对冲和价格。整个计算是半解析的,因为每个时间步需要解决的优化问题(求A*)是二次型问题,可以像我们刚才那样解析求解。

另一个要点是:在标准的动态规划或强化学习中,算法通常需要对整个动作空间进行建模或搜索。但在我们的设定中,由于可以直接获得最优对冲A*的解析公式,我们可以应用向后递归直接计算在A*处评估的Q*函数。因为计算中只用到最优动作这一个值,所以在这种设定下,我们不需要对动作空间进行显式建模。


我们已经得到了离散时间MDP模型下期权定价和对冲的算法解。现在,让我们将其与经典的黑-舒尔斯模型进行比较。

首先,在我们的MDP公式中,对冲和价格是统一Q*函数的表达式中的。这与黑-舒尔斯模型有本质不同。

以下是黑-舒尔斯模型与MDP方法的关键区别:

  • 计算顺序:在黑-舒尔斯模型中,我们首先通过求解偏微分方程(黑-舒尔斯方程)得到期权价格,然后再通过对价格求关于股票价格的导数(即求Delta)来得到对冲策略。而在我们的MDP公式中,顺序恰好相反:在每个时间步,我们先计算最优对冲A*,然后将其代入Q*函数并向后滚动。
  • 风险处理:MDP方法的顺序更符合市场实践。对于无法频繁调整(例如每月一次)的期权,风险是真实存在的。期权价格正是基于对此类剩余风险的分析来确定的。黑-舒尔斯模型则假设可以连续对冲,理论上可以每分每秒调整头寸以完全消除风险。在连续时间的极限下,对冲变得微不足道,问题的核心只剩下通过黑-舒尔斯方程定价。

我们可以将风险消失的过程分为两步来看:

  1. 当风险厌恶系数λ和时间步长Δt都大于零时,我们面对的是一个有二次风险的MDP问题,期权价格与最优对冲通过目标函数直接关联。
  2. 如果令λ = 0Δt仍为有限值,价格与对冲之间失去了目标函数的直接联系,但风险依然存在,我们仍可进行最小方差对冲。
  3. λΔt都趋于零时,我们就回到了黑-舒尔斯模型,该模型声称期权没有风险。

黑-舒尔斯模型的“完美”源于其忽略了现实中的风险。相比之下,这里展示的离散时间MDP模型虽然没有期权价格的闭式解,但更加现实,因为它明确地对期权中的剩余风险进行了建模。当λΔt都大于零时,MDP模型提供了一个一致的对冲和定价公式,将剩余风险考虑在内。


本节课中,我们一起学习了如何构建用于BSM期权定价的MDP向后递归算法。我们推导了结合最优对冲与Q函数的递归公式,明确了从到期日向后计算至初始时刻的步骤,从而同步得到期权价格与对冲策略。最后,我们通过对比黑-舒尔斯模型,理解了MDP方法在建模现实风险方面的优势。

接下来,我们将在后续课程中看到如何具体实现这个算法。

课程 P19:蒙特卡洛与基函数 🧮

在本节课中,我们将学习如何计算马尔可夫决策过程(MDP)期权定价模型中的条件期望。具体来说,我们将探讨在离散状态和连续状态两种设定下,如何利用基函数来近似这些期望值,并介绍一种名为B样条的常用基函数。


在上节课中,我们推导了MDP期权定价模型中最优对冲和定价问题的算法解。

为了便于回顾,这些方程再次展示如下。

反向递归算法要求我们从时间点 T-1 开始,向后执行上述两个方程,直到当前时间 T

然而,正如我们多次提到的,这些关系涉及不同的条件期望。核心问题在于:我们应如何计算这些条件期望?需要提醒的是,我们假设一个蒙特卡洛设置,其中在时间点 t 的信息条件集 F_t 由所有直到时间 t 的蒙特卡洛路径组成。因此,在明确了条件期望的定义后,剩下的任务就是学习如何计算它们。

离散状态下的期望计算

首先,我们来看看如何在离散状态设置中计算这样的期望值。上节课提到,如果我们想用马尔可夫链逼近布莱克-斯科尔斯模型,可以对MDP模型进行离散化。

在这种设置下,状态变量 X_t 会有一系列有限的可能取值 X_m,其中 m 的取值范围是 1MM 是离散状态的总数。

在每个节点上,我们会得到一些值 Q_m。这些值也可以看作是状态变量 X_t 的离散值函数。我们可以使用无索引符号,将其写成 X 的离散值函数 Q(X)。具体做法是将所有 Q_m 乘以 克罗内克δ函数 δ(X, X_m) 后求和。当 X 等于 X_m 时,δ函数值为 1,否则为 0

公式表示如下:

Q(X) = Σ_{m=1}^{M} Q_m * δ(X, X_m)

这个公式为 Q(X) 在每个可能的 X 值上生成了一个恒等式。使用这个公式的好处是,它现在对任何输入 X 都有效,类似于线性代数中对向量所有元素都成立的向量表达式。

现在,我们可以用更具提示性的符号 φ_m(X) 来代替δ函数,将δ函数的两个参数分开。φ_m(X) 的计算方式与δ函数相同,但现在我们可以将其解释为 X 特征的 独热编码

以下是其工作原理:
考虑一个固定的 m 值及其对应的函数 φ_m(X)。对于给定的输入 X,除非 X 与节点值 X_m 完全匹配,否则该函数值为零。具有这种 独热编码 特性的函数可以称为 独热基函数。此时,Q(X) 的整个求和可以解释为这些基函数的展开。

你可能会想,既然这种展开非常稀疏(只有一个项非零),研究它有何意义?确实如此。但以这种方式书写的主要目的,是为了将其推广到连续状态的形式。

推广到连续状态

对于连续状态的情况,我们需要将离散状态下类似δ函数的尖峰基函数,替换为平滑的版本。

这里展示了一组我们将使用的12个基函数。虽然这不是连续空间公式的唯一选择,但它非常方便,能满足我们的需求。

这些基函数被称为 B样条。接下来,我们简要讨论一下B样条的构建方式。

B样条基函数介绍

B样条在插值问题中非常有用,特别是当我们想通过一个连续且平滑的 n 阶样条函数,在节点 X_0X_m 之间插值某个函数时。

构建过程首先需要插入额外的节点:

  • X_0 左侧添加节点 X_{-n}X_{-1}
  • X_m 右侧添加节点 X_{m+1}X_{m+n}

接着,我们递归地定义一组B样条 B_{i,n}(X)

  1. n = 0 时,定义 B_{i,0}(X) = 1(若 X 在区间 [X_i, X_{i+1}) 内),否则为 0
  2. 对于 n > 0,通过以下递推公式定义:
    B_{i,n}(X) = (X - X_i) / (X_{i+n} - X_i) * B_{i,n-1}(X) + (X_{i+n+1} - X) / (X_{i+n+1} - X_{i+1}) * B_{i+1,n-1}(X)
    
    这个公式在区间 [X_i, X_{i+n+1}] 内有效,在此区间外,B_{i,n}(X)0

从公式可以看出,如果我们取 n = 3,那么 B_{i,3}(X) 就是非负的三次多项式。这些B样条被称为 三次B样条,也是我们接下来将使用的。

B样条非常有用,因为它们具有非负性、积分和为1,并且只在有限区间 [X_i, X_{i+n+1}] 上非零。因此,它们为表示非负量提供了良好的基础——如果所有系数都是非负的,那么整个表达式也将是非负的,因为基函数本身是非负的。

其他基函数与扩展

B样条提供了一个非常好的基函数选择,但并非唯一选择。文献中也考虑了其他规格,例如:

  • 傅里叶余弦基函数
  • 小波基函数

一个更复杂的问题是,当标的资产不止一个,而是多个时,如何选择一组基函数。在处理多资产投资组合时,我们将面对这些更复杂的设置。但目前,我们将继续专注于单一股票和单一标的期权的组合,这已足够我们现阶段深入探讨。

[空白音频]


总结

本节课中,我们一起学习了如何计算MDP期权定价模型中的条件期望。我们从离散状态下的 独热编码 基函数展开开始,理解了其稀疏表示的原理。接着,为了处理更一般的连续状态问题,我们引入了平滑的 B样条 基函数,并了解了其递归构建方法及优良特性(如非负性、局部支撑)。最后,我们简要提及了其他可能的基函数选择以及未来处理多资产问题时将面临的挑战。掌握基函数方法,是连接理论算法与蒙特卡洛模拟实践的关键一步。

课程P2:先修知识 📚

在本节课中,我们将要学习本系列课程所需的先修知识。课程内容涵盖编程、数学和金融三个主要方面。了解这些先修知识将帮助你更好地跟上后续课程。

编程先修知识 💻

上一节我们介绍了课程的整体框架,本节中我们来看看编程方面的要求。

你应该掌握一些Python编程基础。同时,你需要使用过或至少见过Jupyter Notebook。如果你不熟悉Jupyter Notebook,请参考本周末尾的参考阅读部分。

以下是编程方面需要熟悉的模块:

  • 你应该熟悉Python的其他模块,例如numpypandas
  • 你可以不会tensorflow,因为随着课程进行我们会逐渐介绍它。

数学先修知识 ➗

在了解了编程要求后,我们来看看数学部分。机器学习建立在坚实的数学基础之上。

以下是数学方面你应该掌握的核心概念:

  • 线性代数:机器学习会用到大量线性代数。你应该对矩阵运算、特征值分解、矩阵的逆和其他相关概念有所了解。
  • 概率论:你应该掌握基本的概率论知识。例如,你应该熟悉正态分布、指数分布、二项分布。基本的定理,例如贝叶斯定理,也应该掌握。
  • 统计学:你应该掌握基本的统计学知识。
  • 微积分:你应该掌握基本的微积分,例如复合函数求导。所以,你能看得懂像 df(g(x))/dx∫ f(x) dx∂L/∂w 这样的式子。如果你看不懂,请复习微积分。

就像我崇拜的一位物理学家Alessandro曾经说,数学不应该阻止你去解决你想解决的问题。相反,你一旦掌握了它,它应该能够帮助你解决问题。

顺带一提,“你需要掌握多少数学才能做机器学习”这个问题在很多论坛中很热门。最近我读到一篇很有趣的文章,是由一名在机器学习领域工作的前物理学家写的,我强烈建议读一读这篇文章。这里是链接。

从我的角度来看,我同意他文章中的每一句话。物理学家就是这样应用数学去解决问题的。

总结起来,大致是这样:当你遇到一个新的机器学习模型,无论是10个小时的讲座,还是书还是原始论文,从摘要部分开始。如果你对摘要所说的这个模型感兴趣并且想深入了解,浏览论文的主要式子,并确保你明白它们是什么意思。先不要管如何推导,先盯着式子,一边看一边琢磨。比如看看式子左边是什么意思,右边是一个什么形式,比如是指数形式还是对数形式?

接着假设所有式子都是正确的,假设文章中提到的式子的应用方式也是正确的。你可以开始直接尝试应用这个模型了。首先先用你理解的数据来测试这个模型,比如用随机生成数据,或常数数据,来看这个模型生成的结果是否靠谱。如果OK,接下来给模型输入实际你想探索的数据。

当你得到结果以后,你可能喜欢或不喜欢这个结果,但更重要的是你会注意到模型的一些特别行为,你对模型的这些行为有自己的疑问。只有在这之后,你再重新回去理解文章中的数学部分。

长话短说,如果你从数学开始看,不如先继续看别的,之后如果需要的话再回来仔细钻研。这是对于这门课和以后的学习提出的一些实际的建议。当然,除非你有足够多的时间都看一遍。如果你没有的话(实际上工作中你往往没有),按照我刚刚说到的方法去做能够节省很多时间。

金融先修知识 📈

最后,我们来说一说金融方面的先修知识。这部分没什么可说的,因为实际上,这门课不要求任何金融的先修知识。这套课程所有的金融概念和问题,都会有详细的解释。

课程资源与总结 📖

好的,这就是我想说的大部分内容了,也是一个大致的介绍。现在,我们用一些文献来结束这个视频。

关于机器学习有很多优秀的教科书,但是没有专门为金融所写的机器学习书籍。所以我结合了很多资源,例如Bishop、Murphy、Goodfellow,还有Geron最近的一本新书。另外几本我很喜欢的书还有Marsland和Gershenfeld的书。

除了教科书,我也用了论文、我自己的研究、业界文章、博客、维基百科、论坛帖子等等。总而言之,任何我觉得对于这门课有用的资源我都很推荐。因此,每次在课程中提到相关内容,我都会提到原始的参考文献。你可以读一读他们来加深理解。并且,我经常保留原始论文的注释,或者只是进行了小小的改动。因此如果你需要的话,你总是可以去读原始论文。

本节课中我们一起学习了本课程在编程、数学和金融三方面的先修知识,并介绍了一种高效学习机器学习模型的方法论,最后列出了课程将使用的主要参考资料。

这就是在介绍部分所有我想说的了。在接下来的视频中,开始第一节课。希望你觉得有帮助、有意思。如果你觉得我讲得太快或太慢,太深或太浅,有些主题没有讲到或者讲得太多了,或者有一些其他有趣的主题可以讲,你可以在课程论坛上分享你的观点。祝你好运。

课程 P20:使用蒙特卡罗方法进行最优对冲 🎲

在本节课中,我们将学习如何利用蒙特卡罗模拟和基函数展开法,将无限维的最优对冲函数优化问题,转化为一个有限维的参数优化问题,从而实际计算最优对冲策略。


上一节我们介绍了基函数的概念及其构建方法。本节中,我们来看看如何将基函数应用于蒙特卡罗模拟,以实现最优Q函数的回溯递归计算。

我们之前提到,条件期望中的条件应理解为对所有蒙特卡罗模拟路径的全集进行条件化。现在,我们获得了一种利用基函数计算此类期望的有效方法。

假设我们定义了一组基函数 φ_n(x),其中参数 x 代表当前状态变量的值。我们可以选择上一视频中讨论的特定点作为这些函数,但我们将保持符号的通用性,以便其他基函数也能适用。

基函数 φ_n(x) 可以灵活选择。特别地,我们可以将一些外部风险因子纳入基函数集合。例如,可以包括标准普尔500指数的价格或波动率指数作为描述市场状态的风险因子。换句话说,我们的股票头寸可以影响特定股票的价格。

我们还可以使用这些因子与股票价格的组合。这可以捕捉股票价格和因子之间的相互作用效应。简而言之,在选择基函数时有很大的自由度,因此我们将继续使用一般形式。这样,我们的问题中有两个未知函数:最优动作 A*(x) 和最优Q函数 Q*(x)

如果我们的基函数集合 φ_n(x) 足够具有代表性,我们可以用它来近似这两个函数。我们将两者分别表示为同一基函数集合的展开式。此外,由于问题是时间依赖的,我们使这些展开式的系数随时间变化。

因此,我们有两个展开式:

  • 最优动作的系数:φ_{n,t}
  • 最优Q函数的系数:ω_{n,t}

现在,期权定价和对冲问题就转化为寻找这些系数。总体来说,我们总共有 2M 个未知系数。因此,如果我们有12个基函数,那么 M=12,我们将有24个未知系数需要计算。这将原本的无限维函数优化问题简化为一个有限维度的参数优化问题。


现在,回溯递归应重新表述为一个用于计算系数 φ_{n,t}ω_{n,t} 的方案,通过从时间 T-1 开始反向推导来计算。

我们从计算最优动作的系数 φ_{n,t} 开始。为此,让我们再次查看之前推导的Q函数的回溯递归公式。

如之前所提到的,这个关系的右侧是 A_t 的二次函数。因此,它也将是系数 φ_{n,t} 的二次函数。为了通过蒙特卡洛计算这些系数,我们对此关系做了几件事:

  1. 代入 A_t 的基函数展开式。
  2. 将所有期望值替换为蒙特卡洛平均值。
  3. 去掉所有与 A_t 无关的项。
  4. 翻转整个表达式的符号,将 A_t 的最大化问题转化为最小化问题。

这为我们提供了关于 φ 的目标函数 g_t,我们应该最小化它以找到最优的系数 φ_{n,t}。值得高兴的是,因为这是 φ_{n,t} 的二次函数,它可以通过半解析方法来最小化。

通过对目标函数 g_t 关于某个系数 φ_{m,t} 的导数设为零并重新排列项,我们得到一个关于系数 φ_{n,t} 的线性方程组。该方程组以一个 M×M 维的方阵 A 和一个长度为 M 的向量 B 的形式定义,它们通过特定公式计算得出。

矩阵 A 是正定的,或者可以通过正则化使其变为正定。因此,它存在逆矩阵。所以,系数 φ_{n,t} 的解仅仅是矩阵 A 的逆与向量 B 的乘积。

φ_t = A^{-1} B

因此,整个计算与之前的解析公式一样简单,但现在我们有了一个可计算的最优行动 A* 的表达式,而不是一个涉及两个条件期望的理论公式。

我们实际上可以更详细地将结果表达式与之前的解析公式进行比较。需要注意的一点是,由于涉及到矩阵求逆,最好为矩阵 A 添加一个正则化项,以防止可能的数值不稳定。一个简单的调整方法是向矩阵 A 中添加一个单位矩阵并乘以一个小的正则化参数 ε

A_{reg} = A + εI

另一个需要注意的点是,得到的表达式与我们之前的最优对冲解析公式非常相似。实际上,两个公式中的分子和分母结构相似,唯一的区别是在当前表达式中基函数的存在。这些基函数在这个公式中正好做到了我们想要的事情:它们对我们需要计算最优对冲的整个蒙特卡洛路径集合进行了条件化。

现在,我们的 φ_{n,t} 公式为我们提供了最优行动 A* 的解,当它被代入 A* 的基函数展开式中时,就得到了时间步 t 时的最优对冲策略。


因此,我们的下一个任务是找到一种方法来计算系数 ω_{n,t},这些系数决定了最优Q函数。让我们在下一个视频中继续这个任务。


本节课中,我们一起学习了如何将蒙特卡罗模拟与基函数展开法结合,将最优对冲问题转化为一个可求解的线性方程组。我们推导了用于计算最优对冲系数 φ_{n,t} 的矩阵公式,并讨论了数值稳定性的正则化方法。这为实现动态对冲策略的计算提供了实用的框架。

课程 P21:蒙特卡洛方法 - 最优 Q 函数 🎯

在本节课中,我们将学习如何利用蒙特卡洛方法和贝尔曼最优性方程,求解期权定价与对冲问题中的最优 Q 函数系数。我们将从回顾贝尔曼方程开始,逐步推导出求解系数的回归方法,并通过一个具体的例子来展示整个过程。


概述

上一节我们介绍了如何寻找最优动作的系数。本节中,我们将转向寻找最优 Q 函数的系数问题。为此,我们需要再次回顾贝尔曼最优性方程,并将其转化为一个回归问题,通过最小化损失函数来求解系数。


回顾贝尔曼最优性方程

为了找到最优 Q 函数的系数 ω_t,我们考虑贝尔曼最优性方程在最优动作 A_t^* 下的情况。

该方程可以解释为:最优 Q 函数 Q_t^* 是对即时奖励 R_t 与经过折扣的下一步最优 Q 函数 Q_{t+1}^* 之和进行回归。对等式两边取期望,可以验证这两种表述是等价的。


构建回归问题

为了将其用作回归以求解参数 ω_t,我们需要知道方程中的即时奖励 R_t。奖励的理论表达式由投资组合价值的增量给出:

R_t = γ (π_{t+1} - π_t) - λ Var(π_t)

其中,γ 是折扣因子,π_t 是投资组合价值,λ 是风险厌恶参数。如之前所见,奖励 R_t 也可以明确地写成时间 t 动作 A_t 的二次函数。

在反向递归过程中,一旦我们计算出最优动作 A_t^,就可以将其代入奖励公式中,计算出对应的最优即时奖励 R_t^


定义回归的因变量与预测变量

现在,回归的因变量 Y_t 定义为:

Y_t = R_t^ + γ Q_{t+1}^ (S_{t+1}, A_{t+1}^*)**

其中的预测变量,即右侧部分,是时间 t 的最优 Q 函数 Q_t^* (S_t, A_t^)。通过将 Q_t^ 用基函数展开,系数 ω_t 便成为此回归中的待求参数。


求解回归系数

我们通过最小化平方损失函数 F_t 来寻找系数 ω_t:

F_t(ω_t) = 𝔼[ (Y_t - Q_t^ (S_t, A_t^*; ω_t))^2 ]*

由于这是一个关于系数 ω_t 的二次函数,最小化过程可以通过半解析方法执行。

我们引入一个时间相关的矩阵 C_t(维度 m×m,元素为 C_{mn})和一个向量 d_t(长度为 m,元素为 d_n)。回归问题中系数 ω_t 的解可以用向量形式表示为:

ω_t = C_t^{-1} d_t

在实际计算中,为了避免矩阵求逆可能出现的数值问题,通常加入一个小的正则化参数 ε:

ω_t = (C_t + εI)^{-1} d_t

这样就得到了每个时间步 t 下最优 Q 函数的系数。


计算流程总结

整个反向递归过程从到期时间 T-1 开始,回溯至初始时间 t=0。在每个时间步 t,我们依次执行以下操作:

以下是每个时间步的具体计算步骤:

  1. 计算矩阵 A_t 和向量 B_t。
  2. 求解系数 φ_t,确定最优动作 A_t^*。
  3. 将 A_t^* 代入奖励公式,计算最优即时奖励 R_t^*。
  4. 计算矩阵 C_t 和向量 d_t。
  5. 求解系数 ω_t,并计算在最优动作下的最优 Q 函数值 Q_t^*。
  6. 将计算出的 Q_t^* 作为下一步(t-1 时刻)反向递归的输入。

当递归进行到 t=0 时,最终得到的最优动作序列即为期权的最优对冲策略,而期权的最优价格由在初始状态和最优动作下评估的最优 Q 函数的负值给出:

价格 = -Q_0^ (S_0, A_0^*)*


动态规划方法示例

我们来看一个使用动态规划方法为看跌期权定价的具体例子。

该例子中,看跌期权的初始股票价格 S_0 = $100,行权价 K = $100(平值期权)。其他参数设置为:风险厌恶系数 λ = 0.001,股票波动率 σ = 15%,期权期限 T = 1 年,股票漂移率 μ = 5%,无风险利率 r = 3%。

以下是模拟结果的可视化分析:

  • 左上图:展示了蒙特卡洛模拟中股票价格的 10 条随机路径。
  • 右上图:显示了对应的状态变量 X_t 的演变。正如预期,X_t 的路径没有明显的漂移。
  • 中左图:显示了沿每条路径计算出的最优对冲动作 A_t^*。
  • 中右图:显示了相应的复制投资组合的价值 π_t。
  • 下左图:显示了通过执行最优动作所获得的即时奖励 R_t^*。
  • 下右图:显示了最优 Q 函数 Q_t^* 的值。它在 t=0 时收敛到约 4.9,而作为基准的布莱克-斯科尔斯理论价格(黑色曲线)为 4.53。

通过调整风险厌恶系数 λ 和对冲频率,可以使蒙特卡洛动态规划得出的价格向理论价格收敛。这将是本周作业的一部分,需要你亲自实现这个动态规划方案。


总结

本节课中,我们一起学习了如何利用蒙特卡洛动态规划方法求解期权定价中的最优 Q 函数。我们回顾了贝尔曼方程,将其转化为回归问题,并详细推导了求解系数 ω_t 的步骤。最后,通过一个实例演示了整个方法的计算流程和结果。这个方法的核心在于通过两次线性回归(分别针对最优动作和最优Q函数)在反向递归中完成定价与对冲。下周,我们将探讨在不完全知晓模型参数(如 λ)的情况下,如何使用强化学习方法来实现类似的反向递归。

强化学习与金融课程 P22:第三周内容介绍 🚀

在本节课中,我们将要学习强化学习(RL)方法在金融领域的应用,特别是如何从基于模型的动态规划转向数据驱动的、与模型无关的解决方案,以解决最优期权定价和对冲问题。

本周学习重点 📚

上一节课程我们主要探讨了基于模型的动态规划方法。本节中,我们来看看本周的核心内容。

本周课程将非常有趣。我们将离开基于模型的动态规划方法,转向数据驱动和与模型无关的方式来解决最优期权定价和对冲问题。

这里需要说明“与模型无关”的含义。尽管我们仍然会讨论一个模型,即马尔可夫决策过程(MDP),但在此语境下,“与模型无关”意味着在数据驱动的环境中,我们只保留模型的一般结构,而不假设其转移概率和奖励函数是已知的。

传统的定量金融范式认为,为了最优定价和对冲金融资产,必须首先构建并估算一个世界模型。强化学习范式则不同,它使我们能够直接关注主要目标——最优控制。根据所使用的具体算法,任务可能涉及也可能不涉及先构建世界模型的问题。本周讨论的方法让我们能够以“与模型无关”的方式进行操作。

主要内容概览 🗺️

以下是本周课程将涵盖的几个关键部分:

  • 批量模式强化学习:我们将从这种方法开始学习。
  • Q学习算法:这是强化学习中最著名的算法之一,我们将介绍其基本版本。
  • 适应性-优化算法:在介绍基本算法后,我们将讨论一个更实用的版本,称为适应性-优化算法(fit-of-cute-ration)。

所有这些内容不仅会以抽象的方式呈现,而且会直接在我们的马尔可夫几何过程(MGP)模型中展开讨论。在期权定价方面,我们将立即看到这些方法在金融环境中的应用。

在你本周的作业中,你将亲自实现这些解决方案,并观察它们在实践中的表现。

总结与展望 🎯

本节课中,我们一起学习了第三周课程的总体安排和核心思想。我们明确了将从基于模型的方法转向数据驱动的、与模型无关的强化学习方法,并预览了即将学习的批量模式RL、Q学习及其变体等关键算法。这些方法将直接应用于金融领域的期权定价与对冲问题,并通过实践作业加以巩固。

课程 P23:RL 方法 - 批量强化学习 🧠

在本节课中,我们将学习一种名为“批量强化学习”的强化学习方法。我们将了解它与传统动态规划方法的区别,理解其核心思想,并明确在期权定价与对冲问题中,我们所需的数据形式。

在上一课中,我们为期权定价构建了马尔可夫决策过程(MDP)模型,并使用基于蒙特卡洛的动态规划方法解决了它。为了提醒你这是一个蒙特卡洛设置,我们模拟了基础股票的前向路径,然后计算了最优策略,从而得到了最优行动。最优期权价格作为时间零时最优Q函数的负值获得,当第二个参数被视为最优行动时。

现在,我们转向强化学习。如我们之前多次提到的,强化学习解决的问题与动态规划相同,即它找到最优策略。但与动态规划不同,强化学习并不假设转移概率和奖励函数是已知的。相反,它依赖于样本来找到最优策略。

那么,为什么这种方法很有趣?它之所以有趣,是因为它尝试直接进入问题的核心,但没有先解决另一个问题,即构建世界模型的问题。传统的期权定价方法要求我们首先构建一个股票动态模型,通过设计某种随机过程并对期权和股票定价数据进行标定。

但我们需要注意的是,构建世界模型并不是我们的目标。我们的目的是找到最优的期权价格和对冲策略。换句话说,我们的任务是从数据中找到最优策略。但这显然与构建世界模型的任务有很大不同。

更进一步,在某些情况下,世界可能具有非常复杂的动态,而最优策略可能是一个非常简单的函数。支持向量机的创始人弗拉基米尔·沃普尼克曾提出一个原则,即在解决目标问题时,不应避免解决更困难的中间问题。

我们在之前的课程中讨论的支持向量机实际上实现了沃普尼克的原则。现在,在我们的例子中,定价和对冲期权时,我们不需要解释世界,而是只需要学习如何在这个世界中采取最优行动。这是沃普尼克原则中的目标任务。中间任务则是解释世界,即构建世界模型。

然后是经典的量化金融方法,我们总是首先需要构建一个世界模型,即制定动力学定律并估计模型参数。这被称为模型标定,实际上是通过最小化可观察量与模型输出之间的某个损失函数来进行的。现在,根据模型的不同,这可能是一个非常资源密集型的过程。

但即使完成了这部分,问题还没有结束,因为我们仍然没有解决期权对冲和定价的主要问题。尽管这需要进行另一次计算,但通常比第一次计算所需的时间要少得多,因为它不涉及优化。因此,让我们从原始问题的角度来审视这种传统方法。

期权对冲问题,我们现在将其视为强化学习设置中的最优控制问题。如果我们首先构建世界模型,就可以应用动态规划来解决最优控制问题,但任何模型都会引入模型误差,因此这些误差可能会传播到我们最关心的量上,即最优价格和对冲。

那么,这种强化学习方法聚焦于原始任务,同时依赖数据样本而不是世界模型。因此,这种方法实施了沃普尼克规则。现在,一旦我们同意强化学习的总体方法至少在概念上将我们直接带到最终目标,我们就可以讨论不同的具体规格。

这种方法的例子。例如,我们仍然可以拥有一个世界模型,或者在强化学习设置中知道一些重要的模型参数。这种方法对应于所谓的基于模型的强化学习,与无模型强化学习相对。此外,强化学习有不同的类型。其中一些方法专注于直接的策略搜索,而另一些则最大化价值函数。

如前一课程中所述,我们现在将集中讨论基于价值的强化学习,它将从世界中提取所需的信息,以优化策略并转化为价值函数。现在,我们将考虑离线强化学习,也称为批量模式或简单的批量强化学习。在这种设置下,我们只能访问一些历史收集的数据。

我们无法访问实时环境,我们还假设没有这种环境的模拟器可用。那么,在批量强化学习的设置下,我们的数据是什么样的呢?数据由一组 N 条轨迹给出,在时间 T 时,信息集 F_T 由所有独立的 N 条轨迹提供的 F_T^N 信息集给出。

每个集合 F_T 都包括直到时间 T 的以下这些历史值。这些值是什么?我们记录基础股票价格 S_T,并将其表示为状态变量 X_T 的函数,H 是仓位,A_T 是行动,R_T 是即时奖励,下一个时间值为 X_{T+1}。所以 F_T 是所有这些元组的集合,如这个方程所示:

F_T = { (X_t, A_t, R_t, X_{t+1}) | t = 0, 1, ..., T-1 } 对于 N 条轨迹

实际上,只要一个包含 N 条长度为 T 的轨迹的动态子标记,每一条轨迹都相当于一个包含 N×T 单步转移的数据集。我们假设该数据集可以作为模拟数据或真实历史数据提供,并且结合一些人工数据来跟踪模型的表现。

假设的股票和现金复制组合用于给定期权的情况下。现在,在这种强化学习方法中,既不假设已知动态,也不假设已知真实奖励分布。给定的只是一个单步转移数据集。现在我们可以将此强化学习数据与动态规划中使用的数据进行比较。

在动态规划的设置下,我们唯一的数据是使用蒙特卡罗模拟的股票价格样本。在反向递归过程中,我们计算了即时奖励,然后计算了应采取的最优行动来对冲期权。现在让我们将此与批量强化学习的设置进行比较。我们有股票价格和下一个步骤的股票价格,这与动态规划中的数据相同。

但在批量强化学习中,奖励和行动不是通过使用模型的知识来计算的,而是给定了奖励和行动的样本值。在下一段视频中,我们将看到如何处理这些数据。


本节课中,我们一起学习了批量强化学习的基本概念。我们明确了它与传统动态规划的核心区别在于不依赖已知的模型,而是直接从历史数据样本中学习最优策略。我们还了解了在期权定价问题中,批量强化学习所需的数据形式,为后续具体算法的学习打下了基础。

课程 P24:强化学习方法 - 随机逼近 🧠

在本节课中,我们将要学习强化学习中的一个核心算法——随机逼近,特别是罗宾斯-门罗算法。我们将探讨当环境模型未知时,如何利用在线交互数据来迭代地估计价值函数,并理解其收敛的关键条件。

在上一节中,我们讨论了批量强化学习的设置及其使用的数据类型。本节中,我们来看看当模型未知时,强化学习是如何通过样本数据在线工作的。

贝尔曼方程与期望值问题

我们处理的核心是贝尔曼最优性方程。该方程表明,在时间 t 的最优 q 函数等于即时奖励的期望值,加上折现后的下一步最优 q 函数的期望值。公式表示如下:

q*(s_t, a_t) = E[ r_t + γ * max_{a_{t+1}} q*(s_{t+1}, a_{t+1}) | F_t ]

这里的期望 E 是基于时间 t 的信息集 F_t 的条件期望。

如果模型已知,这个期望值可以通过求和(离散状态)或积分(连续状态)精确计算。然而,在模型未知的强化学习设置中,我们无法直接进行这种计算。

从理论期望到经验均值

面对模型未知的情况,统计学和机器学习中一个常见的技巧是:用经验均值来替代理论期望值。

这意味着,如果我们有多个样本,每个样本都能提供贝尔曼方程右侧的一个可能值,那么最优 q 函数的估计值就可以通过这些样本值的平均值来获得。这本质上是蒙特卡罗模拟的思想。

在我们之前的动态规划方法中,我们通过已知模型模拟路径来生成数据。而在强化学习中,我们使用的是与环境实时交互产生的实际历史数据(如股价和奖励),这些数据构成了我们的信息集 F_T

在线学习与随机逼近

现在,考虑一种更动态的场景:在线强化学习。智能体与环境实时互动,数据量随时间不断增加。问题在于,我们能否仅依靠逐个到来的样本(而非固定数据集)来迭代地估计期望值?

答案是肯定的,这可以通过随机逼近方法实现。其中最著名的算法是罗宾斯-门罗算法

罗宾斯-门罗算法详解

罗宾斯-门罗算法用于在线估计一个随机变量的均值。它不要求所有数据同时可用,而是随着每个新数据点的到来,迭代更新均值估计。

算法定义如下:设 x_k 为第 k 个观测到的数据点,\hat{x}_k 为第 k 步时的均值估计。更新规则为:

\hat{x}_{k} = \hat{x}_{k-1} + \alpha_k (x_k - \hat{x}_{k-1})

让我们解析这个公式中的各个部分:

  • x_k:第 k 个数据点。
  • \hat{x}_{k-1}:第 k-1 步时的均值估计(即之前的估计值)。
  • \alpha_k:第 k 步的学习率,是一个介于 0 和 1 之间的数。它控制着新观测值 x_k 对当前估计的影响程度。

学习率 \alpha_k 通常随迭代次数 k 变化。如果学习率较小,新数据对估计的更新幅度就小;如果学习率较大,更新幅度就大。

算法的收敛条件

关于这个简单的迭代更新规则,最重要的事实是:在特定条件下,估计值 \hat{x}_k 能以概率 1 收敛到真实均值。

这些条件由罗宾斯和门罗提出,具体如下:

  1. ∑_{k=1}^{∞} \alpha_k = ∞
  2. ∑_{k=1}^{∞} \alpha_k^2 < ∞

第一个条件确保学习率衰减得不能太快,以保证算法有足够的“动力”探索并最终收敛到真值。第二个条件确保学习率最终衰减得足够快,以平滑掉随机噪声,使估计稳定下来。

学习率调度

在实践中,我们需要为学习率 \alpha_k 选择一个具体的衰减方案,这通常被称为学习率调度

以下是常见的选择:

  • 罗宾斯-门罗原始选择\alpha_k = c / k,其中 c 是一个正常数。
  • 更通用的分数衰减\alpha_k = c / k^γ,其中 0.5 < γ ≤ 1

学习率的具体调度方案并非通用,它可能因问题和数据生成过程而异,在实际应用中通常需要一些实验来调整。

从在线到离线:小批量扩展

罗宾斯-门罗算法本质是一种在线算法,非常适合与环境实时交互的智能体。然而,通过适当的泛化,它也可以应用于离线(批量)设置。

在离线工作中,我们不是用单个数据点来更新,而是使用一块数据(称为小批量mini-batch)。使用小批量数据而非单个数据点,可以使参数更新更加稳定,因为它平滑了单个数据点带来的波动。这与我们在讨论随机梯度下降法时提到的使用小批量的优势是一致的。


本节课中,我们一起学习了随机逼近的核心思想以及罗宾斯-门罗算法。我们了解到,当模型未知时,可以通过在线数据迭代更新来估计价值函数。算法的成功依赖于恰当衰减的学习率。最后,我们还看到了如何将该算法从在线设置扩展到使用小批量的离线设置,以获得更稳定的更新。这是将理论强化学习算法应用于实际问题的关键一步。

课程 P25:强化学习方法 - Q学习 🧠

在本节课中,我们将学习强化学习中最著名的算法之一——Q学习。我们将了解它的核心思想、工作原理、更新规则,并探讨其在实际应用中的特点与局限。


概述

Q学习是一种用于估计最优动作价值函数的算法,由Watkins于1989年在其博士论文中提出。它基于随机逼近理论,能够在离散状态和动作空间中,通过迭代更新逐步逼近真实的最优Q函数。本节课我们将深入探讨其原理、更新规则及特性。


Q学习简介

在我们讨论了随机逼近法之后,现在来讨论著名的Q学习算法。这个算法是Watkins在1989年提出的,其论文被引用了超过一千次。Q学习及其扩展在许多强化学习应用中得到使用。例如,Google DeepMind曾使用Q学习教授智能体玩Atari电子游戏。

在Watkins提出的原始形式中,Q学习仅在离散状态和离散动作的情况下有效。此时,Q函数不是连续值,而是以离散表格形式表示,每个状态和动作的组合都有一个对应的Q值。

我们可以说,Q函数是以表格形式给出的。


Q学习的核心观点

Watkins Q学习的主要观点是:给定足够的数据,并按照顺序处理所有数据点,该算法会像Robbins-Monro随机逼近法一样,随着数据量增大,逐渐收敛到真实的Q函数。

更具体地说,收敛证明假设每个可能的状态-动作组合都会在数据中遇到无限次。当然,实践中数据总是有限的,因此数值收敛性需要实际检验。


Q学习的工作原理

Q学习具体做什么?它简单地采取下一个观察到的状态转移,并更新在此转移中观察到的状态-动作对的值。

以下是一个常用来说明Q学习工作原理的例子:解决迷宫问题。

迷宫问题示例:

  • 一个简单的迷宫,包含一个障碍物(用黑色方块表示)。
  • 右上角有一个出口。
  • 智能体需要学习一个最优策略,根据其当前位置决定移动方向。
  • 在每个单元格中,智能体可以向上、向下、向左、向右移动(四个自由度)。
  • 某些动作可能被禁止(例如,左边有墙则不能向左移动)。

在这个问题中,有11种可能的单元格位置,每个单元格最多有4个可能的动作。这带来了44种可能的单元格-动作组合,这个数量相对较小,可以用查找表存储所有Q值。

在这样一个简单环境中,学习可以通过模拟完成。每次模拟生成一个特定的数据点(状态转移)后,就用它来更新对应的Q函数值。


Q学习的更新规则

在我们讨论了Q学习的作用之后,接下来看看它是如何做到的。本质上,Q学习是Robbins-Monro随机逼近法在估计贝尔曼最优方程右侧未知期望值时的应用。

让我们将贝尔曼最优方程与Robbins-Monro更新进行比较。

  • 在贝尔曼方程中,最优Q函数由右侧的期望值给出。
  • 另一方面,Robbins-Monro公式展示了如何更新均值的运行估计。

因此,我们可以进行以下替代:

  • 将当前观测值 x_t 替换为当前观测到的即时奖励 R_t 加上下一步最优Q函数的估计值。
  • 将当前的均值估计 x_t 替换为我们对最优Q函数的当前估计。

如果我们为学习率 alpha_k 指定一个调度方案,这些替代将生成著名的Q学习更新规则。

Q学习更新规则(公式):
Q_{new}(S_t, A_t) = (1 - alpha) * Q(S_t, A_t) + alpha * [R_t + gamma * max_a Q(S_{t+1}, a)]

用文字描述:在状态 S_t 和执行动作 A_t 处的Q函数值的新估计,等于其旧估计值乘以 (1 - alpha),再加上 alpha 乘以贝尔曼最优方程右侧量的最新观测值(即时奖励加上下一状态的最大Q值折扣)。


Q学习的特性

Q迭代规则揭示了Q学习的两个重要特性:它是无模型离策略的算法。

  • 无模型:这意味着它不对产生当前观测数据的过程(即环境模型)做任何假设。它只是将数据视为给定,并更新给定状态-动作对的Q值。
  • 离策略:Q学习要奏效,唯一重要的是所有状态-动作对会被多次访问。至于它们被访问的原因(即遵循何种策略)并不重要。在极限情况下,如果所有状态-动作对被无限次访问,Q迭代保证渐近收敛到真正的最优值函数。

你可以在本周的阅读材料中了解更多关于Q学习算法的收敛性质。


经典Q学习的局限与批处理模式

考虑到我们在上一课中讨论的基于模型的动态规划解法,尽管经典的在线Q学习算法保证渐近收敛,但对于实际应用可能耗时过长。

其原因在于,最优解是通过所有蒙特卡罗路径的横截面信息获得的。然而,任何在线逐点更新Q值的方法都会掩盖这种横截面信息。

不过,解决办法是明确的:我们需要同时更新所有蒙特卡罗路径上的Q值,就像我们在上一节课计算最优解时做的那样。因为我们现在处于批处理强化学习的设置中,数据已经准备就绪,实际上不需要像传统Q学习中那样逐一获取数据点。

在下一节视频中,我们将看到如何调整经典Q学习以适应批处理模式的学习。


总结

本节课我们一起学习了Q学习算法。我们了解了它是基于随机逼近理论、用于在离散空间中估计最优动作价值函数的无模型、离策略算法。我们学习了其核心的迭代更新规则,并讨论了经典在线Q学习的局限性,引出了向批处理模式学习的必要性。

课程 P26:RL 方法 - 拟合 Q 迭代 🧠

在本节课中,我们将学习一种称为“拟合 Q 迭代”的批量强化学习方法。我们将了解它如何利用所有历史数据来更高效地学习最优策略,并理解其背后的数学原理。


概述

在上一个视频中,我们讨论了在计算最优策略时,需要同时利用所有蒙特卡罗路径的横截面信息。这是因为策略是一个函数,每个数据点仅提供该函数在某个特定点的信息。仅使用单一数据点更新函数的过程可能漫长且充满噪声。因此,尽管经典的 Q 学习算法能保证渐近收敛,但我们需要更实用、收敛更快的算法。

由于我们处于批量强化学习的设定中,通过查看所有投资组合动态的实现来决定最优策略,我们或许能比经典 Q 学习做得更好。幸运的是,确实存在针对批量强化学习的 Q 学习扩展。我们将采用其中最流行的一种——拟合 Q 迭代。


拟合 Q 迭代简介

拟合 Q 迭代大约在 2005 至 2006 年间,由 Ernst 及其同事和 Murphy 在一系列论文中提出。一个关键点是,Ernst 等人处理的是时间平稳问题,其 Q 函数与时间无关。而我们的问题具有有限时间视野,因此 Q 函数是时间相关的。Murphy 的论文展示了适用于此类有限时间视野问题的批量 Q 学习版本。

FQI 方法适用于连续值数据,因此我们可以将模型表述带回到一般的连续状态空间问题中。如果我们想坚持离散空间的表述,FQI 的实现方式几乎相同,区别仅在于需要指定使用的基函数。


FQI 的工作原理

FQI 方法通过使用所有蒙特卡罗路径或历史路径,同步复制投资组合动态来工作。这与我们使用动态规划结合蒙特卡罗方法解决已知动态问题的方式非常相似。在该方法中,我们通过对不同时刻 tt+1 的所有蒙特卡罗场景取经验均值,来同时对所有情景进行平均。

在时间 t 的条件下,给定信息集 t,这已经通过在 t 时刻对所有蒙特卡洛路径进行条件化来实现。

现在,在批量强化学习的设定下,唯一需要改变的是在这种蒙特卡洛设置中的输入输出数据结构。

  • 动态规划设定(模型已知)

    • 输入:状态变量的模拟或实际前向传递。
    • 输出:最优动作、动作策略以及最优 Q 函数(即负的期权价格)。最优动作 a* 通过最大化最优 Q 函数确定,瞬时奖励在后向递归过程中为最优动作和最优 Q 函数计算。
  • 批量强化学习设定(模型未知)

    • 输出:与之前相同,即必须找到期权价格和最优策略。
    • 输入:比之前更丰富。每个观察到的状态向量 x_t 现在有两个额外的观测值:采取的动作 a_t 和获得的奖励 r_t。我们不再有已知的转移概率函数和奖励函数,而只有从这些函数在不同状态 x_t 中采样得到的样本。

在批量强化学习中,T 时刻和 T+1 时刻的状态变量以及所有蒙特卡洛路径中收到的奖励,被同时用于找到最优动作和最优 Q 函数,这相当于为所有状态 x_t 和所有动作 a_t 学习一个策略。无论是使用模拟的蒙特卡洛数据还是实际数据,其工作方式相同。


FQI 在我们的问题中的应用

FQI 方法通过在基函数集合中展开来寻找最优 Q 函数。我们可以使用与动态规划解法中相同的基函数集合 {φ_n(x)}

回想一下,奖励是动作的二次函数。因此,Q 函数也将是动作的二次函数。我们可以将 Q 函数表示为:

Q_t(x_t, a_t) = A_t^T W_t φ(x_t)

其中:

  • A_t 是一个大小为 3 的向量,由 [1, a_t, 0.5 * a_t^2] 组成。
  • φ(x_t) 是一个包含 M 个基函数的向量(M 是基函数数量)。
  • W_t 是一个形状为 3 x M 的系数矩阵。

这种形式捕捉了 Q 函数对动作 a_t 的二次依赖,同时通过基函数 φ_n(x) 和系数 W 参数化了对状态 x_t 的依赖。

为了后续讨论,我们可以将 Q 函数等效地表示为另一种形式。将系数矩阵 W_t 和向量 φ(x_t) 合并成一个新的向量 U_W(x_t),该向量依赖于系数 W。我们可以为这个向量设置终端条件。例如,将到期日 T 时的终端动作 a_T 设为零,这将转化为 U_W 分量的终端条件:只有第一个分量在到期时非零,其他两个分量为零。


求解最优策略

现在,我们可以用两种方式来看待 Q 函数。

  1. 已知参数时:假设矩阵 W_t 的参数已知。由于 Q 函数是关于动作 a_t 的二次函数,我们可以根据向量 U_W(x_t) 的分量来求解最优动作 a_t* 和最优 Q 函数 Q_t*。通过简单的数学运算,可以得到以下公式:

    a_t = - (U_{W,2}(x_t)) / (U_{W,3}(x_t))*
    Q_t = U_{W,1}(x_t) - 0.5 * (U_{W,2}(x_t))^2 / (U_{W,3}(x_t))*

    (其中 U_{W,1}, U_{W,2}, U_{W,3} 是向量 U_W 的三个分量)

  2. 从数据中学习参数:实际上,我们的目标恰恰相反。我们需要根据可观察到的动作 a_t、状态 x_t 和奖励 r_t 来求解矩阵 W_t 的分量(或等效的 U_W 的分量)。因此,我们更愿意从右到左来看待这些方程。

但我们有两个方程和三个未知数(U_W 的三个分量)。这仍然可解,因为这些未知数都依赖于同一个矩阵 W_t,因此是相关的。这也意味着,为了解决我们的问题,我们必须直接从数据中找到矩阵 W_t

在下一个视频中,我们将具体探讨如何实现这一步。


总结

本节课我们一起学习了拟合 Q 迭代方法。我们了解到:

  • FQI 是一种批量强化学习方法,能同时利用所有历史路径数据,比经典 Q 学习更高效。
  • 它通过基函数展开来近似 Q 函数,在我们的问题中,Q 函数被参数化为动作的二次形式。
  • 学习的目标是从观测数据中估计出参数矩阵 W_t,进而得到最优动作和最优 Q 函数。
  • 我们推导了在参数已知情况下求解最优策略的公式,并指出了从数据中学习这些参数是下一步的关键。

下节课,我们将深入探讨如何具体实施拟合 Q 迭代算法,从数据中学习这些关键参数。

课程 P27:强化学习方法 - 拟合Q迭代与Ψ基函数 🧠

在本节课中,我们将学习如何将Q函数的参数化形式转化为一个更易于学习的线性模型。我们将引入一个依赖于状态和动作的新基函数向量ψ,并探讨在“基于策略”的设置下,强化学习方法与动态规划方法的联系与比较。


回顾:Q函数的参数化

在上一节中,我们介绍了Q函数的两种参数化方式:一种是时间相关的矩阵 W_t,另一种是向量 U_W(即矩阵 W_t 与基函数向量 φ 的乘积)。我们看到,如果已知最优动作 a_t* 和最优Q值 Q_t*,理论上可以求解参数。

这表明,一个正确的解(例如通过动态规划得到的解)应该位于由矩阵 W_t 参数化的解空间内。因此,我们的目标是找到一种方法来学习这些矩阵 W_t


将Q函数转化为线性形式

本节中,我们来看看如何将Q函数的定义重新排列,使其表示为一个参数向量与一个特征向量的点积形式。以下是实现这一目标的关键步骤。

首先,我们显式地写出Q值,它是矩阵表达式的迹:

Q_t = tr( W_t^T (A_t φ_t^T) )

这里,(A_t φ_t^T) 表示向量 A_tφ_t 的外积所构成的矩阵。符号 代表两个矩阵的逐元素乘积(即Hadamard积)。

接着,我们可以将这个迹运算转化为两个向量的标量积。具体做法是将矩阵 W_t 和矩阵 (A_t φ_t^T) 分别按列展开成向量。设展开后的向量分别为 wψ_t,则Q函数可以简洁地写为:

Q_t = w · ψ_t

其中,新定义的基函数向量 ψ_t 是通过将外积矩阵 (A_t φ_t^T) 的列连接起来得到的。ψ_t 同时依赖于状态 x_t 和动作 A_t:对动作的依赖是二次的,而对状态的依赖形式则由原始基函数 φ 决定(例如,若使用三次B样条,则状态依赖是局部三次的)。


与动态规划方法的比较

现在,让我们比较一下强化学习设置与动态规划设置的区别。

在当前的强化学习设置中,我们将问题转化为求解向量 w,其维度为 3m(因为矩阵 W_t 的维度是 3 × m)。在每个时间步,我们观察状态 x_t、动作 a_t 和奖励 r_t。如果我们有 n 条历史路径,则总观察变量数为 3m,对应 3m 个未知数。当 n > m 时,问题是良定的,每个参数平均拥有 n/m 个观测数据。

相比之下,在动态规划方法中,我们需要同时找到最优策略和最优Q函数,两者均用 m 个基函数展开,因此总未知系数为 2m。然而,动态规划每个时间步仅能观察到状态,因此对于 n 条路径,只有 n 个数据点,每个参数平均仅有 n/(2m) 个观测。

这表明,当训练数据恰好由动态规划的最优策略生成时(即“基于策略”学习),两种方法的表现应相近。这为我们提供了一个宝贵的基准测试框架。


基准测试与意义

以下是通过动态规划解来基准测试强化学习算法的优势:

  • 已知的期望结果:我们可以先用动态规划完全求解模型,得到精确的最优策略和Q函数。
  • 生成训练数据:使用该最优策略来模拟生成状态、动作和奖励序列,作为强化学习算法的训练数据。
  • 验证算法:应用拟合Q迭代等强化学习算法,将其结果与已知的动态规划解进行对比。任何收敛性问题或误差都会立即显现。
  • 算法测试平台:这个简单的MDP期权定价模型,因此可以成为一个可靠的测试平台,用于评估各种不同的强化学习算法。

总结

本节课中,我们一起学习了如何将Q函数重新参数化为线性模型 Q_t = w · ψ_t,其中引入了新的状态-动作基函数 ψ。我们分析了强化学习(拟合Q迭代)与动态规划在参数数量和观测数据上的差异,并阐述了在“基于策略”设置下,利用动态规划解作为基准来验证和测试强化学习算法的实用方法。

在接下来的课程中,我们将继续使用拟合Q迭代方法来实际求解这个期权定价模型。

课程 P28:强化学习方法 - 拟合 Q 迭代工作原理 🧠

在本节课中,我们将学习一种名为“拟合 Q 迭代”的强化学习方法。我们将了解如何将强化学习问题转化为一个标准的回归问题,并通过递归计算来求解最优的 Q 函数和策略。整个过程将完全由数据驱动,无需依赖特定的环境模型。


在之前的课程中,我们将问题转化为更标准的形式。其中,未知的 Q 函数在一个新的基函数 ψ(维度为 3 * m)中展开,原始矩阵 W_t 的参数 w 被按常数存储。现在,我们的核心问题是计算这个关键系数 W_t。这与我们在动态规划解法中的思路类似。

我们通过从时间 T-1 开始,依次向后递归计算这个关键系数,一直到当前时间 t = 0。做法类似于我们在动态规划方法中所做的。


我们查看这里显示的贝尔曼最优性方程。它表示时间 t 的 Q 函数由该方程右侧表达式的期望给出。现在,我们可以将其解释为对这个表达式在未知函数 Q_t 上的回归,这个函数表示为状态-动作基函数 ψ_n 的展开。

其中 ε_t 是一个随机噪声,时间 t 表示 0。这两个方程在期望上显然是等价的,因为如果我们对第二个方程两边取期望,就能恢复贝尔曼最优性方程。因此,现在我们有了一个标准的回归问题,用于在这个设置中计算系数 W_t

注意,这与我们上周在动态规划解法中计算最优 Q 函数的方式既相似又不同。在那里,我们有了贝尔曼方程的回归问题逼近,用于在最优动作 a_t* 处评估的最优 Q 函数。我们分别在一个基函数集合 φ_n(x) 中展开了这个 Q 函数,因为那里的动作被固定为最优动作 a_t*。奖励 r_t 在那里作为问题的解的一部分进行了计算。

现在,所有这些可以与当前的强化学习设置进行比较。这一次,我们使用贝尔曼方程的回归解释来计算最优的 Q 函数,对于任意的动作 a_t,而不仅仅是针对最优动作 a_t*,正如我们在动态规划解法中所得到的那样。

另一个相关的区别是,现在我们的 Q 函数的函数逼近依赖于状态-动作基函数 ψ_m 的展开,而不是动态规划解法中的基于状态的基函数 φ_n。而且,在动态规划方法中,我们在强化学习设置中计算了奖励 r_t,两个奖励 r_t 和动作 a_t 都是观察到的。


因为我们将问题简化为回归问题,我们现在可以通过最小化目标函数来找到系数 w_n,目标函数如本方程所示。现在,这个关系适用于任何数据,包括可能是次优策略的数据。

在我们讨论一般情况之前,先来讨论一个更简单的自有策略学习情况,当所有记录的动作都是最优动作时。对于这种情况,我们只需要在前面的方程中将 a_t 替换为 a_t*。然后我们有这里显示的第一个方程。

但现在我们可以看到它几乎与这里显示的第二个方程中的目标函数完全相同,且这正是我们在动态规划解法中所使用的目标函数。唯一的区别是在这两个方程的最后一项,但这正是通过选择参数来优化的项。如果我们有无限多的观测,那么这两个目标函数将有相同的最小值,因为在这个极限下,最后的项可以在逐点上趋于一致。

因此,如果我们处理的是自有策略着色,那么两种方法会渐近地收敛到相同的解。但是,由于着色是一个离策略算法,而且 W_t 的原始优化问题是凸的,我们可以保证离策略方法渐近地收敛到相同的解。如果我们在最小二乘意义下对它们施加等式,也可以找到两种解法之间的显式联系,即使 n 很大但有限。这将给我们第一个方程中的目标函数。

所以,当针对 W_tω_T 表示时,我们得到这里的第二个方程。这个方程给出了强化学习问题在自有策略学习情况下的解,它是通过动态规划解法得到的。这个关系在 n 趋于无穷时变得准确。


现在,让我们回到更一般的有限 n 和离策略学习情况,这由我们对 W_t 的最小二乘优化给出。这个情况也很容易解决。类似于我们的动态规划解法,我们引入了矩阵 S_T 和向量 M_T,它们在这些方程中显示,并用新的基函数 ψ_n 表示。然后,最优权重 W_t* 仅由矩阵 S_T 的逆乘以向量 M_T 给出。

一旦我们得到 W_t*,我们就知道最优 Q 函数,并且还知道我们之前引入的向量 U_w 的元素。我们计算当前时间步骤 T 的最优 Q 函数。然后我们在回溯递归中回到前一个时间步骤 T-1

但是现在,根据贝尔曼最优性方程,我们需要在下一个时间步骤 T 处的最优动作 a_T* 上得到最优 Q 函数,以便解决当前时间步骤的 W_{t-1}。我们如何做这一点对于算法非常重要,所以接下来我们来讨论这一点。


一旦我们求解出当前时间步 TW_t,我们就可以计算我们之前介绍过的向量 U_w 的元素,并将下一个时间步 T+1 的最优 Q 函数写成该向量分量的二次多项式,如此方程所示。

但关键点是,使用该表达式的最大值点作为 a_{T+1}* 的最优值是完全错误的,因为这相当于使用相同的数据集来估计最优行动和最优 Q 函数。这将导致由于詹森不等式和 max 函数的凸性,Q_{T+1}* 的潜在高估。

正确的做法是将我们之前的分析解 a_{T+1}* 插入其中,并在前一个时间步部署它。由于可以得到最优的分析行动,我们在这个设置中不会遇到潜在的高估问题,因为现在我们不会使用相同的数据集来估计两个函数。第二次计算最优行动现在是分析性的。

在这里,我想指出,潜在的高估是 Q 学习的经典问题,有时会通过各种数值技巧来解决,例如双 Q 学习。你可以在本周的附加阅读中了解更多此类方法,但在我们的框架中,不需要这些技巧,因为可以获得分析的最优行动。这会产生一个数值稳定的模型解。


因此,概括来说,我们看到了如何在拟合 Q 迭代方法中向后迈出一步。通过这种方式一直回溯到当前时间 t 等于零,我们得到最优的期权、对冲和价格。但这次是完全由数据驱动且与模型无关的方式,因为拟合 Q 迭代是一个无模型且脱离策略的算法。


在本节课中,我们一起学习了拟合 Q 迭代方法的工作原理。我们从将强化学习问题转化为回归问题开始,然后讨论了在自有策略和离策略情况下的求解方法。我们重点介绍了如何递归地计算最优 Q 函数和策略,并避免了经典 Q 学习中可能遇到的高估问题。最终,我们获得了一种完全数据驱动的、模型无关的求解最优策略的方法。

课程P29:RL方法 - RL解决方案 - 讨论与示例 📊

在本节课中,我们将总结并讨论将强化学习应用于期权定价和对冲的MGP模型。我们将从机器学习和金融建模两个角度进行回顾,并通过示例展示模型在策略和离策略学习中的表现。


一、 机器学习视角总结 🤖

上一节我们介绍了MGP模型的基本框架。本节中,我们来看看如何从强化学习和机器学习的角度来理解它。

我们首先将离散时间的布莱克-斯科尔斯模型表述为一个马尔可夫决策过程。然后,我们为该模型提供了两种解决方案。

以下是两种主要的解决方案:

  1. 动态规划解决方案:当模型动态已知时,我们可以应用此方法。我们在蒙特卡洛设置中实现了它,具体步骤是:

    • 首先模拟股票价格的路径。
    • 然后通过反向递归来解决最优控制问题。
    • 使用基函数展开来近似最优行动 A* 和最优Q函数 Q*

    这种方法为我们提供了贝尔曼最优性方程的基准解。我们可以验证,当时间步长趋近于零且风险厌恶系数 λ 趋近于零时,此动态规划解能重现经典的布莱克-斯科尔斯模型结果。

  1. 数据驱动的模型无关解决方案:我们转向完全基于数据的方法来解决相同的MGP模型。该模型可以使用Q学习及其更实用的版本——拟合Q迭代——来求解。这意味着我们可以使用实际的股票价格和期权交易数据来训练模型。

    由于Q学习和拟合Q迭代是离策略方法,算法可以从非最优的行动记录数据中学习。MGP模型的一个关键优势在于,它既可以通过动态规划求解,也可以通过强化学习方法求解。因此,动态规划解可以作为基准,用于测试包括拟合Q迭代在内的各种强化学习算法。

尽管目前我们仅考虑了单一股票模型,但该框架可以扩展以包含更复杂的动态。在这种更复杂的设定下,动态规划解决方案同样可以作为测试各种强化学习算法的基准。

关于强化学习和动态规划解法在该模型中的另一个优点是,它们都只涉及简单的线性代数运算。由于模型本身较为简单,两种解法都可以进行解析优化,从而保证较快的运行速度。


二、 金融建模视角总结 💹

讨论完机器学习方面,现在我们来探讨MGP模型在金融建模方面的意义。

我们发现,著名的布莱克-斯科尔斯期权定价模型,可以理解为另一个著名模型——马科维茨投资组合理论——的连续时间极限,尽管它应用于一个非常特殊的环境。

在我们的MGP问题中,期权的最佳对冲和定价问题,等价于马科维茨理论的多期版本,其中投资组合仅包含一只股票和现金。该模型假设股票动态服从对数正态分布,与布莱克-斯科尔斯模型一致。

以下是该模型的核心金融见解:

  • 如果构建一个投资组合,旨在在期权到期时匹配期权的收益,那么该期权的价格和对冲策略可以通过对此投资组合进行动态优化来计算,其原理类似于经典的马科维茨投资组合理论。
  • 通过使期权的复制投资组合达到马科维茨最优,并在时间步长趋于零、风险厌恶系数 λ 趋于零的极限下,我们重现了布莱克-斯科尔斯模型。

然而,当前的MGP模型不仅仅是在极限下重现布莱克-斯科尔斯模型。它做得更多:

  1. 定价与对冲的一致性:MGP模型不仅生成期权价格,还同时给出最优对冲策略。在传统的数学金融模型(如布莱克-斯科尔斯模型或各种随机波动率模型)中,主要关注的是所谓的“公平”或“风险中性”价格,而对冲误差被视为二阶效应。但在现实中,对冲风险(二阶效应)可能与价格(一阶效应)同等重要。MGP模型以一种与模型无关、数据驱动的方式捕捉了这种风险。更重要的是,定价和对冲都源自同一目标函数的最大化,保证了结果的一致性。
  2. 模型无关性:我们的方法无需事先构建和校准复杂的股票动态模型,而这正是传统数学金融模型的主要挑战之一。这使得方法更加灵活和实用。


三、 模型示例与实验 🧪

现在让我们总结MGP期权定价模型,并查看一些实验示例。

在第一组实验中,我们测试了拟合Q迭代在在策略设置中的表现。我们直接使用通过动态规划获得的最优对冲和Q值作为拟合的目标。

实验结果显示,在策略学习下,算法学习到的最优Q函数 Q_T* 和最优行动 A* 与动态规划基准几乎完全一致。例如,在给定参数下,期权价格计算为 4.90 ± 0.12,与动态规划结果相同。通过减小风险厌恶系数 λ,该价格可以恢复至布莱克-斯科尔斯价格 4.53

接下来,我们测试拟合Q迭代在离策略学习中的表现。

为了生成离策略数据,我们将通过动态规划计算出的最优对冲策略 A_DP,乘以一个在 [1-η, 1+η] 区间内均匀分布的随机数,其中参数 η 用于控制数据的噪声水平。

以下是我们在实验中测试的 η 值:

  • η = 0.15
  • η = 0.25
  • η = 0.35
  • η = 0.50

实验旨在测试算法对噪声的容忍度。结果显示,即使数据中包含次优行动,只要噪声水平适中(η 值不过大),拟合Q迭代仍能较好地学习。这是因为拟合Q迭代本质上是离策略算法,当数据集足够大时,它甚至能够从纯随机动作的数据中学习到接近最优的策略。这尤其证明了其作为无模型方法的有效性。


总结 📝

本节课中,我们一起学习了:

  1. 从机器学习视角,MGP模型可以通过动态规划(模型已知时)和强化学习(如拟合Q迭代,数据驱动时)两种方式求解,且前者可为后者提供基准。
  2. 从金融视角,MGP模型将期权定价与对冲统一到马科维茨投资组合优化框架下,在极限情况下重现布莱克-斯科尔斯模型,同时以一致且模型无关的方式处理了对冲风险。
  3. 通过实验示例,我们验证了拟合Q迭代算法在MGP模型中,无论在策略还是离策略设置下,都能有效学习到接近最优的定价和对冲策略。

这就结束了我们课程的第三周内容。在你们的作业中,将需要动手实现拟合Q迭代算法,并评估其在离策略和在策略设置下的性能。祝你们在这项工作中好运,我们下周再见。

课程P3:强化学习在金融中的应用介绍 📈

在本节课中,我们将要学习“强化学习在金融中的应用”这门课程的整体框架、学习目标以及主要内容安排。我们将了解为何选择金融作为强化学习的应用场景,以及课程将如何从期权定价逐步深入到更复杂的投资组合管理问题。


课程概述

欢迎来到Coursera“机器学习在金融中的应用”系列课程的第三门课。这门课程将专注于讲解强化学习,这是机器学习中最令人兴奋的领域之一。本课程将从头开始,完全聚焦于强化学习在金融领域的应用。

我们不会花费时间解释金融领域之外的任何强化学习例子。许多其他强化学习课程是为机器人领域设计的,因此常使用井字棋游戏、迷宫问题等作为示例。由于时间有限,我们将跳过这些例子,直接从金融问题中学习强化学习。这能让我们更快地达到学习目标。

如果你对其他应用场景感兴趣,例如如何用强化学习解决迷宫问题,在学习完本课程后,你也能理解其原理。本课程将衔接上一门课程的末尾,但内容会更加深入且节奏更快,因为我们将学习强化学习算法的具体细节。课程中会使用更多的数学工具。


课程内容与结构

上一节我们介绍了本课程的专注领域和特点,本节中我们来看看课程的具体内容安排。

以下是本课程为期四周的主要内容:

  1. 第一周:期权定价与马尔可夫决策过程
    我们将探讨量化金融中的经典问题——期权定价。如果你对期权不熟悉,课程会提供背景材料。我们选择从期权而非股票开始,是因为从强化学习的视角看,第一周要解决的期权问题相对更简单。我们将把布莱克-斯科尔斯模型转化为离散时间问题,并展示如何将其转化为一个具有特定奖励函数的马尔可夫决策过程。我们将讲解如何用此模型进行期权定价和风险管理,这与原始BS模型不同。

  2. 第二周:动态规划求解MDP
    我们将使用动态规划方法来解决第一周建立的MDP问题,并建立数值求解方法。你将在作业中对比BS模型的解析解与此数值解。

  3. 第三周:强化学习核心算法
    我们将学习强化学习的重要算法,首先是Q-learning,这是最重要的算法之一。接着会介绍其延伸算法——Fitted Q Iteration。在第三周的作业中,你将应用这些算法,并理解它们如何用于期权定价。

  4. 第四周:股票投资组合管理
    我们将研究强化学习在股票投资组合管理中的应用。这里涉及的不再是单一问题,而是多个经典量化金融问题,例如马科维茨最优投资组合或最优交易执行问题。这些问题比期权定价更复杂,需要引入新方法,例如逆向强化学习G-learning等,以处理高维度问题。你将在最终的课程项目“最优股票交易”中应用这些方法。


学习建议

课程中会用到较多的数学知识。如果遇到难以理解的部分,请随时暂停视频进行思考,或尝试推导黑板上的公式。我也会提供相关的文献链接,这些资料可能对理解课程、完成作业和编程项目有所帮助。


总结

本节课中,我们一起学习了“强化学习在金融中的应用”这门课程的整体介绍。我们明确了课程将完全专注于金融领域,并了解了从期权定价到投资组合管理的四周学习路径。课程将结合理论算法与金融实践,帮助你掌握将强化学习应用于核心金融问题的能力。

📈 课程P30:股票交易的强化学习 - 第四周

在本节课中,我们将学习如何将强化学习应用于股票交易领域。我们将探讨量化交易中的核心问题,并学习如何构建模型来寻找最优的交易或执行策略。

上一周,我们学习了如何将期权定价和对冲问题构建为强化学习模型。本节中,我们来看看强化学习在股票交易中的具体应用。

🎯 本周学习目标

以下是本周课程将要涵盖的核心内容:

  • 问题定义:讨论量化交易中可归结为强化学习任务的各种问题。
  • 模型构建:开发一个简单的投资组合模型,为不同问题提供统一的建模框架。
  • 解决方案:介绍使用强化学习方法,直接从数据中学习最优策略。
  • 进阶应用:探讨逆强化学习在无法直接观察奖励场景下的应用及其优势。
  • 市场层面分析:将模型扩展至整个市场,展示如何学习市场的最优交易策略。

🔄 从直接学习到逆向学习

在直接强化学习中,智能体通过与环境交互,根据观察到的状态 (State)、采取的动作 (Action) 和获得的奖励 (Reward) 来学习策略。其目标是最大化累积奖励,公式可表示为:

Maximize E[Σ γ^t * R_t]

其中,R_t 是时间 t 的奖励,γ 是折扣因子。

然而,在许多实际金融问题中,我们无法直接观察到明确的奖励信号。这时,逆强化学习方法就显得更为有用。它试图从专家(如成功投资者)的行为中逆向推导出隐含的奖励函数(即效用函数)。

💡 核心概念与总结

本节课中,我们一起学习了强化学习在股票交易中的应用框架。我们从定义问题开始,建立了统一的投资组合模型,并介绍了直接通过数据学习策略的强化学习方法。接着,我们探讨了在奖励函数未知时更为强大的逆强化学习方法,并展示了如何用它来学习投资者或市场的效用函数。

本周内容不仅是本课程的收官之章,也为后续更深入的金融强化学习应用课程奠定了基础。希望你能通过这些知识,对智能交易策略的学习有更清晰的认识。

课程 P31:股票交易的强化学习 📈

概述

在本节课中,我们将学习如何将强化学习应用于股票交易领域。我们将从回顾上一节关于期权定价的内容开始,然后探讨股票交易问题的特点、常见任务类型,并分析其与期权定价问题的核心区别。

从期权定价到股票交易

上一节我们介绍了如何使用强化学习进行期权定价和对冲。我们建立了一个简单且可分析的模型,解决了单一欧式看跌期权的定价问题。

本节中,我们来看看强化学习如何应用于更广泛的股票交易问题。你可能会问,为什么先讨论期权再讨论股票交易?原因是期权定价是金融领域中最简单的强化学习设置之一,它本身具有实际意义,并且能帮助我们理解基础概念。接下来我们将看到,股票交易中的应用在技术上更为复杂。

期权定价模型回顾

首先,我们简要总结在期权方面的工作。我们发现,通过经典的Black-Scholes期权复制理论,股票期权的定价等价于对一个非常简单的股票和现金组合进行动态优化。

在这个问题中,目标是最优地动态复制期权。我们进一步发现,如果我们将该组合的风险调整后收益视为强化学习中的一步奖励函数,就可以应用标准的风险中性Q学习算法,该算法只优化预期奖励而不控制方差。

在我们的案例中,这样做是可行的,因为风险惩罚已经包含在风险调整后的预期奖励中。另一个重要观察是,只有当风险厌恶参数 λ ≠ 0 时,奖励函数才是二次的。此外,我们是从小型投资者的视角看待问题,因此假设交易行为不会影响市场,并且为了简化,我们忽略了交易成本。

这个简单模型易于解决,主要基于两个简化假设:

  1. 无交易成本,因此我们无需将当前股票持仓作为状态变量存储。
  2. 忽略市场影响,这使得问题保持线性。

这两个假设使得使用Q学习解决期权定价和对冲问题相对容易。

股票交易问题的挑战

现在,让我们看看当我们将目光转向与股票交易相关的投资组合任务时,情况发生了哪些变化。

一般来说,大多数股票交易中的实际问题都可以视为股票投资组合优化问题。以下是此类问题的一些关键特征,它们与期权定价案例有显著不同:

  1. 状态变量:现在我们需要将股票仓位作为状态变量的一部分。
  2. 市场影响:通常需要考虑交易行为对股票价格产生的反馈回路影响。
  3. 高维性:许多问题在状态和动作空间上都具有高维性,即使是单一股票问题。
  4. 大数据:这些问题通常与大数据相关,例如大额订单数据或高频交易数据。

由于状态空间维度可能高达几十、几百甚至几千维,传统的基于状态空间离散化的动态规划方法不再适用。这促使我们使用强化学习等更适合处理高维连续空间的方法。

股票交易中的常见任务

以下是股票交易中几类典型的强化学习任务,我们将逐一简要介绍。

1. 最佳执行

这个问题描述如下:我们持有大量(例如N股)某公司股票,需要在特定时间T内(通常是分钟级别)全部卖出。经纪人每天需要解决数千次此类问题。

从数学上讲,这相当于一个带有反馈回路(市场影响)的动态优化问题。经纪人会将大额订单拆分成较小的块逐步交易,以最小化市场冲击。问题复杂性在于,交易中可能涉及市价单(以当前市价成交)和限价单(以指定价格成交,但不保证成交)。

2. 最佳投资组合清算

这个问题与最佳执行非常相似,区别在于起始状态是一个由不同股票构成的投资组合,而不仅仅是单一股票。其规划周期可能稍长,例如几小时或几天。

3. 动态投资组合优化

这本质上是上一个问题的反向问题:目标不是清算一个现有投资组合,而是动态构建一个最优投资组合。其目标函数同样是风险与成本调整后的投资组合回报。

主要区别在于定量层面:这类任务的规划周期更长,可能延伸至几周、几个月甚至几年,因此需要考虑更多预测变量,如宏观经济因素。

4. 最佳指数跟踪

此类任务的目标是使用一个由较少数量(N只)股票构成的代理投资组合,来跟踪一个市场指数(如S&P 500)。时间跨度可以是几周、几个月,也可以是较短的日内周期。

交易所交易基金(ETF)就是为此目的设计的工具,它提供了一个高流动性的、旨在紧密跟踪某个指数的投资组合。数学公式与前述问题相似,主要区别在于终止条件的设计。

总结与后续计划

本节课中,我们一起学习了强化学习在股票交易中的应用概览。我们回顾了期权定价的基础模型,探讨了股票交易问题的新挑战(如高维状态、市场影响),并介绍了几类核心任务:最佳执行、投资组合清算、动态优化和指数跟踪。

基于以上分析,我们后续的计划如下:

  1. 所有这些问题都可表述为最优控制问题,适合用强化学习方法求解。
  2. 由于问题具有高维性,我们将直接使用连续的数学模型,而非离散化状态或动作空间。
  3. 我们将尝试建立一个简单但通用的数学公式,使其能够涵盖上述所有问题,并在特定上下文中保持分析上的可处理性。

在下一个视频中,我们将深入探讨这些问题的具体数学模型和解决方法。


感谢观看。

课程 P32:RL股票交易 - 投资组合模型 📊

在本节课中,我们将学习如何构建一个用于强化学习的简单股票投资组合模型。我们将定义模型的核心组成部分,包括资产、头寸、操作以及投资组合价值的动态变化过程。

模型概述

我们假设一个由N只股票或其他资产(如ETF)组成的投资宇宙。在时间T,资产的价格向量表示为 P_T,它是一个大小为N且所有元素均为正值的向量。投资者可以投资这些股票,同时也可以将财富以无风险利率 R_F 存放在现金账户中,现金金额记为 B_T

头寸与操作

一个向量 X_T 用于描述所有资产中的美元头寸,其大小同样为N。X_T 的正分量表示股票的多头头寸,负分量则表示空头头寸。具体持有的股票数量可以通过将 X_T 的各分量除以市场价格 P_T 并四舍五入得到。

向量 U_T 描述在时间步T开始时执行的操作。操作完成后,头寸的新值 X_T^+ 是即时确定的,它等于当前头寸与操作向量的和:
X_T^+ = X_T + U_T

投资组合价值

投资组合在时间T的总价值 V_T 是所有资产头寸的总和加上现金金额。我们可以用1向量(所有元素为1)与 X_T 的点积来表示总和:
V_T = 1^T · X_T + B_T (公式 2)

如果将操作后的头寸 X_T^+ 和现金 B_T^+ 代入,可以得到操作后的投资组合价值 V_T^+
V_T^+ = 1^T · X_T^+ + B_T^+ (公式 3)

自融资条件与交易成本

我们假设投资组合是自融资的,即所有股票头寸的变化只能通过现金头寸来融资,投资组合的总价值不能仅通过现金与股票间的重新分配而瞬间改变。其价值变化仅源于资产的随机回报。自融资条件表示为:
1^T · U_T + (B_T^+ - B_T) = 0 (公式 4)

目前我们暂不考虑交易成本,但可以在后续加入。

投资组合的动态变化

投资组合的变化过程如下:在时间间隔开始时进行一次再平衡操作,然后进入持有期,直到间隔结束。

我们定义资产在持有期内的回报 R_T 为:
R_T = (P_{T+1} - P_T) / P_T (公式 6)

下一个周期开始时的头寸 X_{T+1} 与当前周期结束时的头寸相同,其计算涉及元素级乘法(Hadamard积):
X_{T+1} = X_T^+ ◦ (1 + R_T) (公式 7)

资产回报模型

我们需要为回报向量 R_T 指定一个模型。这里我们使用一个简单的参数化模型:
R_T - R_F · 1 = W_T · Z_T + M_T · U_T + ε_T (公式 8)

其中:

  • Z_T 是预测因子向量。
  • W_T 是预测因子的权重矩阵。
  • M_T 是交易的市场影响矩阵。
  • ε_T 是均值为0、协方差为 Σ_T 的残差向量。

投资组合价值演进

利用以上关系,我们可以计算时间T+1的投资组合价值 V_{T+1}
V_{T+1} = 1^T · [X_T^+ ◦ (1 + R_T)] + B_T^+ (公式 10)

进而,我们可以计算投资组合价值超出无风险增长部分的变化 ΔV_{T+1}
ΔV_{T+1} = V_{T+1} - (1 + R_F) V_T = (X_T+)T · (R_T - R_F · 1) (公式 11)

终端条件

上述关系适用于除最后一个时间步外的所有时间步。对于最终时间步T,我们需要施加适当的终端条件。

例如,在处理指数跟踪或基准匹配问题时,终端头寸 X_T 应与给定的基准投资组合 X_B(如标普500投资组合)匹配。这可以用来确定最终操作 U_T
U_T = X_B - X_T (公式 12)
由于最终操作是确定性的,它可以从操作优化问题中移除,我们只需优化剩余的操作 U_0U_{T-1}

对于其他情况,可以设定不同的终端条件。例如,在最优投资组合或最优清算问题中,可以对 X_T 施加零终端条件,意味着所有股票头寸在T时刻被转换为现金价值。

初始条件

问题的初始条件取决于具体的应用场景:

  • 最优股票执行:初始条件是待卖出股票的初始美元价值。
  • 投资组合清算:初始条件由给定的初始投资组合 X_0 定义。
  • 最优投资组合管理:初始条件可以是全现金头寸 B_0,或一个给定的初始投资组合 X_0
  • 指数/基准跟踪:初始条件同样可设为全现金或给定的初始投资组合 X_0


本节课中,我们一起学习了构建强化学习股票交易投资组合模型的核心框架。我们定义了资产、头寸、操作以及自融资条件,并描述了投资组合价值随资产回报变化的动态过程。同时,我们探讨了适用于不同场景(如指数跟踪、最优清算)的终端条件和初始条件,为后续应用强化学习算法解决具体交易问题奠定了基础。

课程 P33:股票交易的强化学习 - 一期奖励 🧮

在本节课中,我们将学习如何为股票交易强化学习模型定义一期奖励。一期奖励是智能体在采取一个交易动作后获得的即时回报,它综合考虑了交易收益、风险惩罚和交易成本。

上一节我们介绍了投资组合的动态变化模型,本节中我们来看看如何计算执行交易动作后获得的即时奖励。

瞬时随机奖励

通过将投资组合变化公式代入,可以得到采取行动后获得的瞬时随机奖励,其公式如下:

公式 13:
R_t^0 = u_t^T (μ_t + σ_t ε_t) - (1/2) u_t^T Γ_t u_t

该公式是二次方程,因为市场影响项与度量 M_t 成正比。奖励是有风险的,因为它依赖于噪声项 ε_t

风险惩罚

我们将增加风险惩罚来补偿这种风险。风险惩罚是因承担交易风险而获得的负奖励。我们假设风险惩罚与瞬时奖励 R_t^0 的条件方差成比例。

公式 14:
风险惩罚 = -λ * Var[R_t^0 | X_t, u_t]

其中,λ 是风险厌恶参数。计算该方差后,可得到最终表达式。该表达式是 X_tu_t 的二次函数。由于噪声的协方差矩阵是非负定的,整个表达式是非正定二次型。

交易成本

一步奖励中需要包含的下一个元素是费用惩罚或交易成本。交易成本取决于 u_t 的符号,因为交易者以买入价买入,以卖出价卖出。

以下是处理买卖不同成本的方法:
我们将每个 u_t 分解为两个非负值的差值,即 u_t^+u_t^-。然后:

  • u_t = u_t^+ - u_t^-
  • |u_t| = u_t^+ + u_t^-

通过这些定义,可以指定交易成本公式:

公式 17:
交易成本 = -κ^+ * u_t^+ - κ^- * u_t^-

其中,κ^+κ^- 是买卖订单的不同交易成本参数。

市场输入缺陷

我们假设市场输入与所有股票的总头寸成比例。它包含以下几项:

  • 两项与订单大小 u_t 成正比,系数分别为 θ^+θ^-
  • 一项依赖于信号 f_t,权重由矩阵 Φ 给出。

总一期奖励

最后,我们将所有这些贡献汇总,定义总的一步奖励为它们的和。

公式 18:
R_t = R_t^0 + 风险惩罚 + 交易成本 + 市场输入缺陷

请注意,这是一个随机奖励,因为第一项 R_t^0 依赖于噪声 ε_t。对于给定的 X_tu_t 值,剩余项是非随机的。

期望一期奖励

当我们给定动作 u_t 时,可以定义期望的一步奖励,即公式18给出的表达式的期望值。

公式 19:
\hat{R}_t = E[R_t | X_t, u_t]

其中,\hat{R}_t^0 是瞬时奖励 R_t^0 在给定状态和动作下的期望值。

公式 20:
\hat{R}_t^0 = u_t^T μ_t - (1/2) u_t^T Γ_t u_t

简化表达式

我们可以简化这个表达式,并将其转换为更简洁的形式。使用向量表示法,引入一个大小为 2m 的向量 a_t,它通过将 u_t^+u_t^- 的分量堆叠在一起来构造。

然后,一步奖励的整个表达式可以表示为 X_ta_t 的二次泛函。

公式 21:
\hat{R}_t = a_t^T A_{aa} a_t + X_t^T A_{xx} X_t + a_t^T A_{ax} X_t + B_a^T a_t + B_x^T X_t

我们在这里有三个二阶项和两个一阶项,分别与 X_ta_t 成正比。这里没有常数项,因为如果没有采取行动 a_t 或没有头寸 X_t,就没有奖励。

请注意,矩阵 A_{aa}, A_{xx}, A_{ax} 都依赖于风险厌恶系数 λ,以及市场输入矩阵 M 和系数 θ。如果它们都为零,那么一步奖励就变成了线性泛函,而不是二次泛函。


本节课中我们一起学习了如何构建股票交易强化学习模型中的一期奖励函数。我们推导了包含瞬时收益、风险惩罚、交易成本和市场影响的随机奖励公式,并最终将其简化为状态和动作的二次期望奖励形式,为后续求解最优交易策略奠定了基础。

课程 P34:股票交易的强化学习 - 正向与反向优化 📈➡️⬅️

在本节课中,我们将学习如何为投资组合优化问题定义目标函数,并探讨正向优化与逆向优化两种方法。我们将从单步优化出发,逐步深入到动态多期优化,并理解如何利用逆向优化来推断市场隐含信息或评估私人信号的价值。


定义目标函数 🎯

上一节我们定义了风险与成本调整后的单步回报,现在我们可以继续为投资组合优化问题定义一个目标函数。

该目标函数在方程式23中给出。它是所有未来时期贴现单步回报总和的期望值。其中,gamma是一个贴现因子,通常接近1。

我们可以将其视为适用于单步投资组合问题的无风险贴现因子。该公式最重要的部分是,这里显示的单步回报在状态 xt 和行动 at 上是二次的。

优化问题的目标是在从 t = 0t = T - 1 的行动 at 下,在一定约束条件下最大化这个表达式。

以下是主要的约束条件:

  • 两个分量 a+a- 应当为非负值,这符合我们构建的含义。
  • 我们可能还会有其他的投资组合约束。我们可以使用一个通用符号 at 来表示一组对行动的约束,这些约束被称为交易约束。
  • 我们也可以有来自 zt 集合的约束,约束不同资产中新的持仓。

请注意,求和不包括最后一步 t,因为我们在上一期视频中看到,最后一步的行动是确定性的。


问题的凸性与实际约束 📐

现在我们可以看到,我们问题中的词函数是 xtat 的凸函数。因此,如果额外的约束集 atzt 是凸的,那么整个问题是凸的,并且可以通过凸优化方法解决。

这种设置在 Stephen Boyd 和 Coathers 撰写的名为《通过上下文优化进行多周期交易》的教程风格论文中得到了建议。该论文展示了许多实际有趣的投资组合优化设置可以在这种凸优化框架下进行考虑。

以下是几个凸约束的示例:

  • 仅多头约束:例如,养老金基金不能做空资产,因此对于它们,只有多头的约束是合适的。
  • 空头头寸限制:适用于可以做空的机构。通常会有对新头寸 xt 加上 u 团队的限制,这给出了限制性约束。
  • 杠杆约束:对总空头头寸的约束可以表示为一个杠杆约束。它涉及所有头寸绝对值的总和。它超过所有头寸总和的部分称为杠杆。
  • 最低现金余额约束:确保投资组合持有一定量的现金。

所有这些都将是凸约束的例子,即使在高维投资组合中也能保持问题的可处理性。


正向投资组合优化框架 🔄

接下来让我们总结一下这个框架,我们将其称为前向投资组合优化。

在这种方法中,我们的任务是找到一个最优的投资组合交易策略。我们已知一个目标函数、约束条件以及投资组合的初始和终止条件。这是一个典型的动态优化问题,如果已知模型,可以通过动态规划来解决。

但如果模型涉及对预测因子 zt 的预测,这就变得困难,因为预测中的任何误差都会直接导致最优投资组合配置的误差。


单步优化特例:市场模型 📊

为了说明这一切是如何运作的,让我们考虑这个形式化方法的一个特例,当步骤数仅为一步时。这样我们就可以讨论一步投资组合优化。

在这个特例中,事情变得更简单。我们不再需要动态交易策略,而只需要一个仅涉及一步的策略。在这种情况下,金融领域的人们通常谈论资产配置,因此资产配置的另一种说法就是单步策略。

如果我们将这种一步设置应用于一步投资组合优化问题,我们将得到1959年著名的市场投资组合模型。市场模型可能是金融领域最重要且应用最广泛的模型之一。

使用市场投资组合模型的从业人员非常清楚,实践中的主要挑战之一正是我们前面提到的那个问题。该模型在很大程度上依赖于我们对预测因子 zt 未来值的预测精度。


逆向优化方法:翻转问题 ⬅️

现在,存在一种非常优雅的方法来解决这个问题,即将优化问题翻转过来。这种方法被称为逆优化

逆优化的工作原理如下。假设我们已经知道了最优的投资组合配置。这意味着我们已经知道了优化问题的一个解。现在我们可以问一下,产生如此最优配置的目标函数的参数是什么?

对于一步投资组合市场的具体情况,它的优化也意味着我们需要取一个投资组合,并反转市场的最优投资组合公式,以便得到由观察到的最优解所暗示的预测因子 zt 的预测值。

这本质上是1992年著名的布莱克-利特曼模型的一种方法。布莱克和利特曼将市场投资组合优化问题应用于市场投资组合,例如标准普尔500指数投资组合,然后进行了反转。这为他们提供了市场本身如何预测未来预测因子 zt 值的见解。

原始的黑色利特曼模型并没有被表述为逆向优化,但这种表述在2012年由 Bertzmas 及其合作者提出。这些论文以及其他研究人员展示了如何使用黑色利特曼框架来评估仅对投资者而非市场其他参与者已知的私人信号 zt 的价值。


动态逆向投资组合优化 🚀

现在我们可以将相同的逆向优化方法推广到动态和多期的设置中。在这种情况下,我们不仅仅给出一个时间点的最优配置,而是给出一系列这样的再配置。也就是说,我们给出了一个动作历史。

任务是找到一步奖励,或者在参数化设置中找到一步奖励的参数。另一个任务是找到一个与观察到的动作相对应的投资策略。

现在我们可以讨论两种可能的动态逆向投资组合优化设置:

  • 专有投资组合分析:处理某个特定交易员或经纪人的专有投资组合和动作。
  • 市场投资组合分析:查看市场投资组合。对于这种情况,Sashi 的方法将黑色利特曼分析推广到多期设置,并且可以用于与原始黑色利特曼模型相同的目的。

对于第一个案例,可以使用相同的方法来构建一个交易员的模型。对于这两种情况,可以以相同的方式使用黑色利特曼模型来评估仅对投资者而非其他市场参与者已知的私人信号 zt 的价值。

但不同之处在于,现在我们分析的是预测因子 zt 在较长时间段内的影响,而不是一步黑色利特曼公式。这应该是件好事,因为多步投资组合表现是投资组合经理的最终目标。如果他们能观察到信号在一段较长时间内的表现,这将平滑掉这种估算中的噪声,并可能有助于找到信号价值的更稳定估计。


与强化学习的联系 🤖

在这一点上,你可能会注意到,动态逆向优化的上述问题听起来与强化学习的目标非常相似,或者可能是逆向强化学习的目标。这确实是事实,这意味着动态逆向投资组合优化可以使用强化学习和逆向强化学习中的工具来完成。我们将在下一个视频中讨论这些方法。


总结 📝

本节课中我们一起学习了投资组合优化的核心框架。我们首先定义了目标函数并讨论了其凸优化性质及常见约束。接着,我们探讨了正向优化方法及其对预测精度的依赖。然后,我们引入了逆向优化的概念,从单步的布莱克-利特曼模型出发,理解了如何通过已知的最优解反推市场隐含的预期。最后,我们将此方法推广到动态多期场景,并指出了其与强化学习领域的紧密联系,为后续学习奠定了基础。

课程 P35:股票交易中的强化学习 - 投资组合的强化学习 📈

在本节课中,我们将学习如何将动态投资组合优化问题转化为一个强化学习问题,并引入随机策略和参考策略的概念,以更好地处理现实世界中的不确定性。

概述

上一节我们定义了动态投资组合优化问题。本节中,我们将探讨如何将其表述为马尔可夫决策过程,并引入随机策略来应对金融市场的随机性。

从确定性策略到随机策略

我们之前将问题表述为一个马尔可夫决策过程,并使用了二次一阶奖励函数。只要有了MDP问题,我们就可以使用动态规划或强化学习来寻找最优策略。这个最优策略是一个从状态空间到行动空间的映射函数,在强化学习中被称为确定性策略

确定性策略可以视为一个由狄拉克δ函数给出的特殊概率分布:

π(a_t | x_t) = δ(a_t - a_t*)

其中,a_t* 是通过求解投资组合优化问题得到的确定性最优行动。

然而,确定性策略在现实中几乎不存在,也与金融实践不太相关。原因如下:

  • 策略的参数是从有限数据中估计得出的,这些参数本身具有随机性。
  • 模型依赖的预期变量(如预期收益)是估计值,因此模型推荐的配置也具有随机性。
  • 现实数据往往不是严格最优的,可能包含次优决策。确定性策略会赋予这些数据零概率,这不符合实际情况。

因此,我们需要考虑更具一般性的随机策略

随机策略的定义与优势

随机策略 π 是给定状态 x_t 下,行动 a_t 的一个有效概率分布,通常由参数向量 θ 参数化:

π_θ(a_t | x_t)

使用随机策略而非确定性策略,为我们带来了新的视角和工具:

  • 概率建模:我们可以为观察到的数据建立概率模型。
  • 生成模型:该概率模型可用于模拟和生成未来的数据。
  • 不确定性评估:模型不仅能给出推荐配置,还能提供对该配置的置信度评估。

基于随机策略的优化问题

现在,让我们看看如何将投资组合优化问题改写为基于随机策略的形式。新的优化目标是最大化期望折扣未来奖励:

J(π) = E_{τ∼p_π} [ Σ_{t=0}^{T-1} γ^t R_t ]

其中,路径概率 p_π 由策略和状态转移共同决定:

p_π(τ) = π(a_0 | x_0) Π_{t=0}^{T-2} p(x_{t+1} | x_t, a_t) π(a_{t+1} | x_{t+1})

这里,p(x_{t+1} | x_t, a_t) 是环境的状态转移概率。

这一公式化的核心转变是:我们将函数空间中的优化问题,转换为了概率分布空间中的优化问题。接下来的关键是如何在这个概率空间中进行优化。

引入参考策略

为了在概率空间中进行优化,我们引入参考策略的概念。参考策略可以被视为在看到任何数据之前所使用的先验策略,这是贝叶斯方法中的常见思路:从先验开始,然后用数据对其进行更新。

我们将使用一个简单的高斯分布作为参考策略 π_0

π_0(a_t | x_t) = N(a_t | â_t, Σ_a)

其中,均值 â_t 是状态 x_t 的线性函数:

â_t = a_0 + A_1 x_t

系数 a_0A_1 和协方差矩阵 Σ_a 构成了先验的参数。为了简化,初始时我们可以使用常数系数和一个简单的协方差矩阵(例如,所有资产具有相同方差和相关性的矩阵)。

在后续的学习中,我们将看到如何利用数据和强化学习目标,对这个先验参考策略进行贝叶斯更新,从而得到与数据一致且表现更优的后验策略。

总结

本节课中,我们一起学习了:

  1. 确定性策略的局限性:在随机的金融世界中,纯粹的确定性策略是不现实的。
  2. 随机策略的引入:将策略定义为概率分布,允许我们对数据和决策进行概率建模,并能评估不确定性。
  3. 优化问题的重构:投资组合优化问题被重新表述为在策略概率分布空间中的优化问题。
  4. 参考策略的作用:引入高斯参考策略作为先验,为后续基于数据的贝叶斯更新提供了起点。

在下一节中,我们将具体探讨如何利用这些工具和概念,通过强化学习算法来优化我们的随机投资策略。

课程 P36:股票交易的强化学习 - 熵正则化强化学习 📈🧠

在本节课中,我们将深入探讨强化学习中的一个高级概念——熵正则化。我们将从回顾标准的贝尔曼方程开始,逐步引入信息成本、KL散度等概念,并最终推导出熵正则化后的价值函数(自由能函数)及其贝尔曼方程。内容涉及一些数学公式,但我们会力求解释清晰,让初学者也能跟上思路。

概述与背景回顾

上一节我们介绍了强化学习中的基本价值函数和贝尔曼方程。本节中,我们来看看如何通过引入“熵正则化”来改进这些方程,使其在处理有噪声的环境(如金融市场)时更加鲁棒。

首先,让我们回顾一下最优价值函数 V* 的标准贝尔曼最优性方程。它定义为在所有策略 π 下,期望折现未来奖励的最大值,如公式所示:

V*(s) = max_a [ R(s, a) + γ E[ V*(s') | s, a ] ]

这个方程的第二项是在给定当前状态和动作下,对未来价值函数的期望。最优策略 π* 可以通过解决另一个优化问题(策略改进步骤)从 V* 中推导出来。

显式引入策略:费恩索尔表示

为了使策略 π 在方程中显式出现,我们使用一个称为“费恩索尔表示”的技巧。新公式如下:

V*(s) = max_{π ∈ P} E_{a∼π(·|s)} [ R(s, a) + γ E[ V*(s') | s, a ] ]

这里,我们改为对策略分布 π 进行最大化,而非直接对动作 a。集合 P 是所有有效策略分布的集合。

这个公式与原始公式等价的原因在于一个简单的恒等式:一组数字 {x_i} 的最大值,等于所有可能权重分布 πx_i 点积的最大值。最优的权重分布会给具有最大值的 x_i 赋予权重1,其余赋0。

引入信息成本与KL散度

现在,我们迈出关键的一步:引入从某个参考策略 π₀ 更新到新策略 π 所产生的“信息成本”。该成本由以下公式定义:

信息成本 = log( π(a|s) / π₀(a|s) )

如果我们对此表达式用分布 π 取期望,就得到了著名的KL散度(Kullback-Leibler Divergence),用于衡量两个分布 ππ₀ 的差异:

KL( π || π₀ ) = E_{a∼π} [ log( π(a|s) / π₀(a|s) ) ] ≥ 0

KL散度总是非负的,且仅当 π 等于 π₀ 时为零。

接下来,我们对所有时间步的折扣信息成本求和,得到轨迹的总折扣信息成本:

总信息成本 = E_π [ Σ_{t=0}^{∞} γ^t log( π(a_t|s_t) / π₀(a_t|s_t) ) ]

构建熵正则化的奖励函数

我们可以将原始奖励与信息成本结合起来,形成一个正则化后的奖励函数。引入一个参数 β(称为逆温度参数)来控制正则化的强度:

修改后的单步奖励 = R(s, a) - (1/β) log( π(a|s) / π₀(a|s) )

参数 β 的意义如下:

  • β → ∞ 时,正则化项消失,我们恢复原始问题。
  • β → 0 时,正则化项主导,智能体的行为将主要致力于使策略接近参考策略 π₀

自由能函数:熵正则化的价值函数

基于修改后的奖励,我们定义“自由能函数” F(s),它本质上是熵正则化后的价值函数:

F(s) = max_{π} E_π [ Σ_{t=0}^{∞} γ^t ( R(s_t, a_t) - (1/β) log( π(a_t|s_t) / π₀(a_t|s_t) ) ) | s₀=s ]

这个函数对应的贝尔曼方程为:

F(s) = max_{π(·|s)} E_{a∼π(·|s)} [ R(s, a) - (1/β) log( π(a|s) / π₀(a|s) ) + γ E[ F(s') | s, a ] ]

可以验证,当 β → ∞ 时,此方程退化为标准的贝尔曼最优性方程。熵正则化在环境噪声大时特别有用,它能帮助找到对噪声更鲁棒的最优策略。

正则化的动作价值函数:G函数

类似于对状态价值函数 V 进行正则化得到 F,我们也可以对动作价值函数 Q 进行正则化,得到 G 函数。G 函数的贝尔曼方程如下:

G(s, a) = R(s, a) + γ E_{s'} [ F(s') | s, a ]

F(s) 的表达式代入,我们可以得到 G 函数的另一种形式,它表示在给定状态和动作下,修改后奖励的期望折扣和。

G 函数与 F 函数之间存在明确的关系:

F(s) = (1/β) log( E_{a∼π₀(·|s)} [ exp( β G(s, a) ) ] )

这个关系类似于 softmax 函数,将 G 值“软化”后得到状态价值 F,其中 β 控制着“软化”的程度。

总结

本节课中,我们一起学习了熵正则化强化学习的核心内容。

我们首先回顾了标准贝尔曼方程,然后通过费恩索尔表示将策略显式引入优化目标。接着,我们引入了信息成本和KL散度的概念来量化策略变化。通过引入逆温度参数 β,我们构建了熵正则化的奖励函数,并由此定义了自由能函数 F 及其贝尔曼方程。最后,我们将其扩展到动作价值函数,得到了 G 函数。

熵正则化通过惩罚策略与参考策略的偏离,使学习过程更加平滑,并能有效提升在噪声环境(如股票交易)中的鲁棒性。理解这些公式是应用高级强化学习算法解决实际金融问题的重要基础。

课程 P37:股票交易的强化学习 - 强化学习方程 🧮

在本节课中,我们将学习如何将强化学习中的核心概念——G函数、F函数和策略π——组合成一个自洽的方程组。我们将推导这些方程,并探讨如何在一个简化的投资组合模型中求解它们。


1. G函数与F函数的关系

在上一节中,我们介绍了G函数和F函数。本节中,我们来看看它们之间的明确关系。

G函数和F函数之间的关系可以用以下公式表示:

G(π) = F(π) + (1/β) * Σ π(a|s) * log(π(a|s) / π₀(a|s))

这是一个关于策略π的泛函。我们可以针对策略π进行最大化。


2. 最优策略的推导

以下是推导最优策略π*的步骤:

  1. 对上述关于π的泛函进行最大化。
  2. 通过变分法(或形式化地对π求导)可以得到最优策略π*的表达式。

最优策略π*的表达式如下:

π*(a|s) = (π₀(a|s) * exp(β * G(s, a))) / Z_t

其中,Z_t是归一化因子,定义为:

Z_t = Σ_a [π₀(a|s) * exp(β * G(s, a))]

这个因子确保π*是一个归一化的概率分布。


3. 最优自由能

上一节我们推导了最优策略,本节中我们来看看如何得到最优自由能。

将最优策略π代回自由能F的原始表达式中,我们可以得到最优自由能F

F = (1/β) * log(Z_t)*

这意味着,我们可以将归一化因子Z_t用最优自由能表示:Z_t = exp(β * F*)。进而,最优策略可以重写为:

π(a|s) = π₀(a|s) * exp(β * (G(s, a) - F(s)))

由此可见,最优策略依赖于G函数和F函数,而这两个函数本身又是相互关联的。


4. 自洽方程组与求解方案

现在,我们可以将所有内容总结为一个自洽的方程组。这个方程组需要在时间上反向递归求解,从最终时刻T-1开始,回溯到初始时刻0。

该方程组通常很复杂。在原始论文中,它是在离散的表格设置下求解的。然而,我们处理的是高维连续状态和动作空间的问题。幸运的是,对于我们的简单投资组合模型,这个方程组可以相对容易地求解。

求解的核心思想是对非线性动态进行线性化近似。以下是计算方案的整体结构:

  1. 模型动态:我们的投资组合模型具有二次非线性动态。在存在市场输入的情况下,无法精确求解,需要进行近似。
  2. 线性化:我们假设一条参考轨迹(记为x̄_t, ū_t),并定义状态和动作的增量:δx_t = x_t - x̄_t, δu_t = u_t - ū_t
  3. 增量动态:将增量代入原动态方程,并忽略高阶项,得到关于δx_t和δu_t的线性化方程。
  4. 函数参数化:我们假设F函数和G函数是δx_t(和δu_t)的二次函数。例如:
    • F_t(δx) = (1/2) δx^T D_t δx + h_t^T δx + f_t
    • G_t(δx, δu) = ... (类似形式的二次函数)
  5. 反向递归:从最终时刻开始,向后递归计算每个时间步的系数。
    • 计算期望:首先计算下一期F函数的期望值,它是关于δx_{t+1}的二次函数。
    • 代入动态:利用线性化的动态方程,将上述期望值表示为当前δx_t和δu_t的二次函数。
    • 求解G函数系数:将参数化的G函数、奖励函数和上一步得到的F函数期望代入贝尔曼方程。通过比较等式两边δx_t和δu_t各次项的系数,可以解出G函数的系数。
    • 计算F函数:得到G函数后,利用关系式 F_t = (1/β) log( ∫ exp(β G_t) d u_t ) 计算F函数。在我们的模型中,这个积分是高斯型的,可以解析求出,从而得到F函数的系数。
  6. 迭代:重复此过程,直至完成所有时间步的计算。

5. 总结

本节课中,我们一起学习了强化学习核心方程组的构建与求解。

  1. 我们首先回顾了G函数与F函数的关系。
  2. 接着,我们通过最大化推导出了最优策略π*的表达式。
  3. 然后,我们将最优策略代回,得到了最优自由能F*,并形成了G、F、π三者相互依赖的自洽方程组。
  4. 最后,我们介绍了针对连续状态-动作空间和高维问题的求解方案。该方案通过对模型动态进行线性化,并将关键函数参数化为二次形式,从而能够在反向递归中高效地计算出所有系数。

这个框架为我们应用强化学习解决实际的股票交易问题奠定了坚实的理论基础。

课程 P38:股票交易的强化学习 - 强化学习与反向强化学习解决方案 📈

在本节课中,我们将学习如何整合一个反向迭代方案,用于通过数据计算股票交易中的最优策略。我们将涵盖从常规强化学习到反向强化学习的完整算法流程,并解释其在实际市场数据中的应用。


整合反向迭代方案

上一节我们介绍了模型的基础。本节中,我们来看看如何将所有内容整合成一个用于计算最优策略的反向迭代方案。

我们首先更新最优策略,通过增量 delta A(t) 来实现。A(t) 的后验概率如以下公式所示:

公式 50:
P(delta A(t) | data) ∝ exp(...)

这里,delta A(t) 的先验分布 pi0 被重新表达为关于 delta A(t) 的高斯分布。由于指数中的表达式是二次的,结果仍是高斯分布,其新的均值和协方差在公式51中给出。

公式 51:
均值更新: mu_new = ...
协方差更新: Sigma_new = ...

我们可以将此方程视为对这些量的先验值进行贝叶斯更新。


寻找自洽轨迹

现在我们已经接近完成,但还需要找到方案中使用的轨迹。这种轨迹是通过在前向传递和反向传递之间进行多次迭代,自洽地找到的。

以下是计算中使用的方法,称为迭代二次高斯调节器:

  • 初始轨迹:使用先验策略分布的均值构建。
  • 前向传递:在每一步,将先验的当前均值作为确定性动作,使用原始状态方程(不含噪声项)计算新状态。
  • 反向传递:递归计算 g 函数,为策略的均值提供更新。
  • 迭代:基于更新后的均值生成新轨迹,重新开始前向传递。此过程持续直到收敛,产生一个自洽的动力学解。

最终结果是一个最优的数据隐含策略,其函数形式与先验策略相同,但具有更新的参数。系数 A0A1 的显式表达式可在原始文献中找到。

在每一步轨迹优化中,更新后的协方差矩阵 sigma_m 如图所示。Sigma_m 是先验的正则化协方差矩阵,其中正则化项等于 beta 乘以矩阵 G_aa_t


常规强化学习算法总结

现在让我们总结并把整个方案整合起来。这是一个适用于传统强化学习设定(当奖励可观察时)的算法。

该算法从初始轨迹开始,作为一系列状态-动作对 (x_bar, u_bar),涵盖从 t=0t=T 的所有时间步。这是第一次前向传递。然后,我们开始在反向和前向传递之间迭代,直到收敛。

以下是算法的具体步骤:

首先,执行一个从 t=T-1 时刻回溯到 t=0 时刻的后向传递。对于每个时间步 t

  1. 计算从下一时期得到的 F 函数的期望值。
  2. 使用计算出的值和观察到的奖励,计算 G 函数。
  3. 计算相同时间步的 F 函数。
  4. 通过更新其均值和方差,重新计算此时间步的策略。

重复步骤1到4,直到所有时间步都完成后向传递。然后,通过使用新的均值和方差构建新的轨迹进行前向传递,整个过程重复进行。这总结了在我们的模型下进行常规强化学习的过程(奖励可观察)。


扩展到反向强化学习

上一节我们介绍了奖励可观察的情况。本节中,我们来看看当奖励不可观察时,模型如何解决更有趣的问题。

这种设置被称为反向强化学习。在这种设置下,我们观察状态和动作,但无法直接观察奖励。通常,这比直接强化学习更加困难。

然而,对我们的模型来说,这个案例相对容易处理,因为模型中的策略是高斯策略,其均值和方差依赖于奖励函数的参数。因此,我们可以利用观察到的状态-动作数据,应用常规的最大似然估计方法。

这给出了数据的负对数似然,如公式54所示:

公式 54:
负对数似然 = -log L(data | theta)

由于该高斯似然的参数依赖于奖励函数的原始参数,我们可以通过最小化负对数似然,使用梯度下降法来计算这些参数。

这一过程应在上述前向-后向方案的每次迭代中进行。对于每次迭代 K,我们需要使用在该迭代中计算出的 A0A1sigma_M 值。这一过程将强化学习设置中的观察奖励替换为反向强化学习设置中的估计奖励。

现在我们为反向强化学习引入了这一附加元素,并提出了完整的方案。与强化学习模型相比,唯一的新元素是第二步:使用最大似然法来估计奖励参数和其他参数(包括逆温度参数 beta)。接下来的步骤使用这个估计的奖励值来计算 G 函数,其余步骤相同。这表明,在这个模型中,反向强化学习在计算上并不比直接强化学习更复杂。


模型的实际应用

现在我们如何利用这个模型来关注强化学习的相关内容呢?

回想一下,这个模型可以作为特定交易员的模型,或作为市场投资组合(如S&P 500)的模型。

  • 专有数据应用:如果需要学习特定交易员的奖励函数和最优策略,我们需要该交易员的专有交易数据。例如,可以计算出该交易员的隐含风险厌恶参数 lambda。但这类数据通常难以获得。
  • 公开市场数据应用:我们可以使用公开市场数据,将模型应用于市场投资组合。这可以视为Black-Litterman模型的动态、概率性和数据驱动的扩展。在这种情况下,我们计算出的最优策略将是市场隐含的最优策略。我们可以使用一组常见的预测因子 Z_t,通过之前描述的方法直接估计出这个策略。
  • 私人信号应用:如果我们拥有不为市场其他参与者所知的私人信号(私人观点),我们可以将这些信号添加到常见预测因子的列表中,通过我们改进的最优策略来尝试超越市场。

你可以在原始文献中找到更多关于该模型的细节,因为你将在课程的最终项目中使用它。


总结

本节课中,我们一起学习了:

  1. 如何整合一个反向迭代方案来计算股票交易中的最优策略。
  2. 常规强化学习(奖励可观察)下的完整算法流程,包括前向与反向传递的迭代。
  3. 如何将模型扩展到反向强化学习(奖励不可观察)场景,并通过最大似然估计来学习奖励函数。
  4. 该模型在专有数据、公开市场数据及私人信号等多种实际场景中的应用方式。

本周关于强化学习的课程内容到此结束。我们将在下一个视频中对所学内容进行总结。

课程总结 P39 📚

在本节课中,我们将回顾并总结过去四周课程的核心内容。我们将看到强化学习如何被应用于两个基础的量化金融问题,并理解这些问题的强化学习表述方式。


课程内容回顾

上一节我们介绍了本课程的整体框架,本节中我们来详细回顾所学到的具体知识。

在这门课程中,我们讨论了两个最基本的量化金融问题,并展示了强化学习不仅可以应用于这些问题,而且这些问题本身可以用强化学习任务的方式来表述。


第一部分:期权定价与对冲

我们从期权定价和对冲的问题开始,展示了如何解决这个问题。

该问题可以重新表述为一个离散时间的马尔可夫决策过程。然后,我们学习了强化学习的方法,如Q学习和拟合Q迭代。

以下是这些方法如何应用于该模型的要点:

  • 在单一期权的情况下,整个方案在计算上相当简单。
  • 为了计算期权的最优价格和对冲,我们只需要进行一系列线性回归。
  • 这个模型直接从期权的复制投资组合的交易数据中学习,因为它是一个强化学习模型。
  • 我们使用了基于模型的强化学习,其中奖励函数是一个二次函数。

其参数使得模型变得非常易处理。特别是,在这种简单的设置下,我们不需要像神经网络这样复杂的函数逼近方法。


第二部分:投资组合优化

在掌握了期权定价的基础后,本节中我们来看看一个更广泛的问题类别。

在本周的课程中,我们研究了一个非常大的投资组合优化问题类。我们再次首先构建了一个简单的投资组合模型,可以应用于所有此类任务。

该模型的应用范围包括:

  • 最优投资组合清算
  • 最优投资组合构建
  • 指数跟踪

通过这个模型,我们学习了强化学习本身的新话题,包括随机策略和熵正则化强化学习。这种熵正则化强化学习在学习和噪声环境中非常有用,这在金融中几乎总是适用。

最后,我们看到了如何通过相同的动态投资组合模型进行逆向强化学习,以及如何使用它来提供市场观点和私有信号的价值,这与著名的Black-Litterman模型的精神非常相似。

由于模型相当简单,我们再次能够在不调用其他复杂方法(例如神经网络)的情况下推进这个模型。


总结与展望

本节课中我们一起学习了如何将强化学习应用于期权定价和投资组合优化两大金融核心问题。

正如我们将在下一门课程中看到的,强化学习在金融中的其他问题确实使用了神经网络,特别是深度神经网络,从而产生了深度强化学习。我们将在这门课程的下一部分详细讨论深度强化学习。

目前,祝你在课程项目中好运,下一门课程再见。

课程 P4:MDP - 马尔可夫决策过程与强化学习简介 📚

在本节课中,我们将学习马尔可夫决策过程(MDP)的基本概念、贝尔曼方程,以及它们与强化学习的关系。我们将回顾这些核心主题,为后续课程中将经典金融问题转化为MDP问题并测试不同强化学习算法打下基础。

强化学习概述 🤖

上一节我们介绍了机器学习的不同范式。本节中,我们来看看强化学习的独特之处。

强化学习处理的是智能体与环境交互的问题。智能体通过一系列顺序决策,在过程的每一步从众多可能的行动中选择最优行动。我们在第一门课程中将此类任务称为“动作任务”。

智能体通过感知环境状态 St 的信息来了解环境。环境可能具有复杂的动态,因此强化学习任务通常涉及对未来进行规划和预测。此外,智能体在每一步选择的动作 At 旨在优化其长期目标,而这个动作本身可能会影响环境的状态。

这就形成了一个反馈循环:当前智能体的动作 At 可能会改变下一个状态 St+1,进而可能影响智能体在下一时间步需要选择的动作。这种反馈循环的存在是强化学习独有的,在有监督或无监督学习中不会出现,因为后两者的任务中不存在需要优化操作的问题。

强化学习的两种设置 ⚙️

上一节我们了解了强化学习的核心交互模式。本节中,我们来看看其两种主要的实施设置。

以下是两种可能的强化学习设置:

  1. 在线强化学习:实时进行。智能体直接与环境交互,并在每个时间步获取环境新状态信息后立即选择动作。例如,真空清洁机器人就是在线强化学习的一个实例。
  2. 批处理/离线强化学习:智能体不能按需访问环境,只能访问一些存储的数据,这些数据记录了其他代理或人类与该环境交互的历史。数据应包含环境状态、采取的行动以及每个时间步所获奖励的记录。

环境建模:完全可观察与部分可观察 🔍

在以上两种设置中,我们讨论了两种对环境建模的方法。

如果环境是完全可观察的,且其动态可以建模为马尔可夫过程,则可以使用马尔可夫决策过程。马尔可夫过程的特点是“记忆”时间短,其未来仅取决于当前状态,而非整个历史。

第二种情况是部分可观察的环境,其中一些对动态很重要的变量是不可见的。正如我们在上一门课程中讨论的,这可以使用动态潜变量模型(如隐马尔可夫模型)进行建模。在本课程中,我们将主要关注完全可观察的系统,因此暂时使用马尔可夫过程。

马尔可夫决策过程(MDP)框架 🧩

上一节我们区分了环境类型。本节中,我们深入探讨完全可观察环境下的标准数学框架——马尔可夫决策过程。

马尔可夫决策过程是纳入智能体行动的环境马尔可夫动力学模型的恰当数学形式。一个MDP包含以下要素:

  • 状态空间 S:每个观察到的状态 St 都属于这个空间。S可以是离散的或连续的。
  • 动作空间 A:智能体采取的动作 At 属于这个空间。
  • 状态转移概率 P:定义了在给定前一状态 St 和在该状态下采取的动作 At 时,下一状态 St+1 的概率。公式表示为:P(St+1 | St, At)
  • 奖励函数 R:给出了在给定状态 St 下采取给定动作 At 后所获得的奖励 Rt。它将状态和动作的笛卡尔积映射到实数:R: S × A → ℝ
  • 折扣因子 γ:一个介于0和1之间的数字,用于计算总累积奖励。

我们需要折扣因子 γ 来计算由整个单步奖励之和给出的总累积奖励 Gt,其中未来奖励会按指数衰减:
Gt = Rt + γ * Rt+1 + γ² * Rt+2 + ...
在MDP中,折扣因子的作用类似于金融中的贴现因子,反映了奖励的时间价值(即通常认为即时奖励比延迟奖励更有价值)。

MDP的目标与策略 🎯

上一节我们定义了MDP的组成部分。本节中,我们明确MDP要解决的核心问题。

马尔可夫决策过程(或强化学习)的目标是最大化期望的总累积奖励。这是通过正确选择策略 π 来实现的,策略规定了智能体在每种可能的环境状态下应如何行动。

然而,这个任务具有挑战性,因为我们通常只知道系统的当前状态,而非其未来。这意味着我们必须现在就决定在未来所有可能的环境情景下如何行动,以确保期望的累积奖励最大化。

需要注意的是,标准方法优化的是期望值(平均值),这意味着策略在平均意义上可能是好的,但可能存在高风险,偶尔会产生极差的结果。因此,标准强化学习常被称为风险中性强化学习,因为它不考虑策略的方差风险。

也存在风险敏感强化学习,它会关注累积奖励分布的更高阶矩(如方差),而不仅仅是均值。这在某些注重风险控制的场景中可能很有用。但在本课程的其余部分,我们将处理标准的、专注于最大化平均累积回报的强化学习设定。

总结 📝

本节课我们一起学习了强化学习的基础框架——马尔可夫决策过程。我们回顾了强化学习智能体与环境的交互、在线与离线两种学习设置,并重点阐述了完全可观察环境下MDP的五大核心要素:状态空间、动作空间、转移概率、奖励函数和折扣因子。最后,我们明确了强化学习的目标是寻找最优策略以最大化期望累积奖励,并指出了标准风险中性方法与风险敏感方法的区别。理解MDP是掌握后续各类强化学习算法的关键。

课程 P5:MDP 与 RL - 决策策略 🧭

在本节课中,我们将学习强化学习中的核心概念——决策策略。我们将探讨策略的定义、不同类型(确定性与随机性),并深入分析强化学习特有的“探索与利用”困境。


策略的定义与目标

上一节我们介绍了马尔可夫决策过程(MDP)的基本框架,本节中我们来看看如何在该框架下做出决策以实现目标。

强化学习的目标是最大化未来所有操作带来的预期总回报。由于决策需要在当前做出,但影响的是未来,因此我们必须定义一个称为“策略”的函数来指导行动。

策略是一个函数,它根据当前状态 S_t 输出一个动作 A_t。该函数将状态空间映射到动作空间。其数学表达为:

A_t = π(S_t)

如果策略函数 π 是状态 S_t 的常规函数,那么其输出 A_t 就是一个确定的数值或动作。例如,一个线性策略可以表示为 π(S) = S/2。这种策略被称为确定性策略。


确定性策略与随机策略

我们已经了解了确定性策略,它意味着在相同状态下总会采取相同的行动。然而,策略并非只有这一种形式。

以下是策略的两种主要类型:

  1. 确定性策略:行动 A_t 完全由当前状态 S_t 通过函数 π 决定。其公式为 A_t = π(S_t)。对于MDP,理论上总存在一个最优的确定性策略。
  2. 随机策略:策略 π 定义为一个概率分布,用于描述在给定状态 S_t 下采取各个可能动作 A_t 的概率。其公式为 A_t ~ π(· | S_t)。这意味着即使处于相同状态,代理也可能采取不同的行动。

那么,为什么需要考虑随机策略呢?主要有两个原因:

  • 促进探索:当环境模型(如转移概率)未知时,随机化动作有助于收集更多样化的数据,从而更好地学习环境。
  • 处理部分可观察环境(POMDP):在现实问题(如许多金融场景)中,代理可能无法完全观测到环境状态,随机策略在这种情况下可能更鲁棒。本课程将主要关注完全可观察的MDP。

探索与利用的困境

在讨论随机策略时,我们提到了“探索”的概念。这引出了强化学习中的一个核心挑战。

“探索与利用的困境”是指在每一步决策时,代理需要在两种选择间权衡:

  • 探索:尝试新的、未经充分测试的动作,以发现可能带来更高长期回报的策略。
  • 利用:执行当前已知能带来较好回报的动作,以最大化短期收益。

这个困境之所以存在,是因为如果只专注于利用,代理可能会陷入局部最优,错过更好的策略;如果过度探索,则会在试错过程中累积大量低回报。在在线强化学习中,代理必须动态地平衡这两者。

值得注意的是,这个困境主要存在于在线强化学习中,即代理与环境实时交互并学习。而在批量强化学习中,代理从一个固定的、预先收集的数据集中学习,无法进行主动探索,因此其性能受限于数据集的质量和探索程度。


总结

本节课中我们一起学习了强化学习的决策核心——策略。我们明确了策略是连接状态与行动的桥梁,并区分了确定性策略与随机策略的异同与适用场景。最后,我们深入探讨了强化学习特有的“探索与利用的困境”,理解了在未知环境中平衡尝试新行动与利用已知好行动的重要性。掌握这些概念是理解后续更复杂强化学习算法的基础。

课程 P6:MDP与RL - 价值函数与贝尔曼方程 🧠

在本节课中,我们将要学习马尔可夫决策过程(MDP)的核心定量工具:价值函数与贝尔曼方程。我们将理解如何通过价值函数来评估和比较不同策略的优劣,并掌握贝尔曼方程这一关键递归关系,它是求解最优策略的数学基础。

目标与价值函数

我们之前提到,马尔可夫决策过程的目标是最大化预期的总累积奖励。由于奖励在未来获得,而决策需要在当下做出,因此我们通过策略来解决问题。策略规定了在任意可能的世界状态下应该采取的行动规则。

那么,如何定量地比较同一个MDP问题下的不同策略呢?

我们计算预期的总累积奖励,但有一个重要补充:我们需要对当前系统状态 S_t 进行条件化处理。这是因为从不同的初始状态出发,会得到不同的总奖励。这种条件期望的总累积框架被称为价值函数

对于每一个可能的状态 S_t,价值函数 V 给出了在该状态下,遵循特定策略 π 所能获得的预期总奖励。因此,价值函数依赖于所选策略 π,我们将其记为上标:V^π。同时,它也与时间 t 和状态向量 S 相关,在离散时间下我们使用下标表示时间,例如在时间 0 定义的价值函数为 V_0^π(S_0)

价值函数的定义公式如下:
V_t^π(s) = E[ Σ_{k=t}^{T} γ^{k-t} R_k | S_t = s ]
其中,E 表示期望,γ 是折扣因子(0 ≤ γ ≤ 1),R_k 是在时间 k 获得的即时奖励,T 是终止时间。

贝尔曼方程的推导

上一节我们介绍了价值函数的概念,本节中我们来看看如何具体计算它,这将引出一个重要的递归关系。

让我们看看如何评估价值函数的表达式。我们将求和式中的第一项分离出来,写成第一项加上从第二项开始的剩余和式。然后,我们将期望的和式替换为和式的期望。

现在,第一项仅仅是当前时间步的即时奖励 R_t。第二项则是从下一时间步开始的、相同的价值函数(但以新状态为参数),并乘以折扣因子 γ。接下来,我们可以将这个第二项的期望符号展开,明确写出从当前状态 s 转移到所有可能下一个状态 s‘ 的概率求和。

这就得到了一个关于价值函数的递归关系,这个关系被称为贝尔曼方程。它由理查德·贝尔曼在20世纪50年代提出,是其动态规划开创性工作的一部分。

对于奖励 R 可能依赖于下一个状态 s‘ 的更一般情况,只需将奖励项放入期望中,贝尔曼方程变为如下形式:
V_t^π(s) = E_{a ~ π(·|s), s‘ ~ P(·|s,a)} [ R(s, a, s‘) + γ * V_{t+1}^π(s‘) ]

稳态MDP与贝尔曼方程

当马尔可夫决策过程是稳态的,即转移概率和奖励不显式依赖于时间,并且时间范围 T 趋于无限时,情况会得到简化。

在这种情况下,价值函数也将不依赖于时间,我们可以去掉时间下标 t。此时,贝尔曼方程简化为一个更简单的形式,对于每个可能的状态 s,都有一个方程。

如果离散状态集有 N 个状态,我们将得到 N 个这样的线性方程。在已知转移概率和奖励函数的情况下,我们可以使用线性代数的方法求解这个线性方程组,从而得到在给定策略 π 下的状态价值。

稳态MDP的贝尔曼方程公式如下:
V^π(s) = Σ_{a} π(a|s) Σ_{s‘} P(s‘|s, a) [ R(s, a, s‘) + γ * V^π(s‘) ]

最优价值函数与贝尔曼最优性方程

我们定义了价值函数来评估给定策略的好坏。那么,如何找到最好的策略呢?这就引出了最优价值函数的概念。

一个状态的最优价值函数 V*,简单来说,就是所有可能策略中,该状态能获得的最大价值。即:
V*(s) = max_{π} V^π(s)
最优价值函数对应着一个最优策略 π*,该策略对于系统的所有状态都是最优的。

我们可以为最优价值函数推导一个类似的递归方程,即贝尔曼最优性方程。形式上,可以通过在标准贝尔曼方程两边对策略取最大值来得到。

这表达了著名的贝尔曼最优性原理:最优的累积奖励可以通过在当前时刻采取最优行动,并在后续所有时刻遵循最优策略来获得。因此,V* 的贝尔曼最优性方程如下:
V*(s) = max_{a} Σ_{s‘} P(s‘|s, a) [ R(s, a, s‘) + γ * V*(s‘) ]

由于方程右边有一个 max 运算符,这通常是一个需要通过数值迭代方法求解的非线性方程。

从最优价值函数到最优策略

如果我们已经知道了最优价值函数 V*,如何找到最优策略 π* 呢?

这一部分很直接。回顾贝尔曼最优性方程,其第二项涉及在所有可能的动作 a 中取最大值。而能给出这个最大值的动作,正是在状态 s 下的最优动作。

因此,最优策略 π* 可以通过以下方式确定:在状态 s 下,选择能使贝尔曼最优性方程右边项达到最大的动作 a
π*(s) = argmax_{a} Σ_{s‘} P(s‘|s, a) [ R(s, a, s‘) + γ * V*(s‘) ]


本节课中我们一起学习了马尔可夫决策过程的核心数学工具。我们首先定义了价值函数,用于定量评估策略。然后,我们推导了贝尔曼方程,它建立了价值函数在不同时间步之间的递归关系,是动态规划的基础。接着,我们引入了最优价值函数贝尔曼最优性方程,它们描述了最优策略应满足的条件。最后,我们看到了如何从最优价值函数中提取出最优策略。理解这些概念是掌握后续强化学习算法(如价值迭代、策略迭代)的关键。

课程 P7:MDP & RL - 值迭代与策略迭代 🧠

在本节课中,我们将学习求解马尔可夫决策过程(MDP)的两种经典算法:值迭代和策略迭代。我们将了解它们的基本原理、计算步骤以及各自的适用场景。


回顾与引言

上一节我们介绍了贝尔曼最优方程。本节中,我们来看看求解该方程的两种经典方法:值迭代和策略迭代。这两种方法可应用于时间均匀的马尔可夫决策过程。对于此类过程,价值函数与时间无关,因此贝尔曼最优方程简化为单一函数的非线性方程,可通过数值方法求解。


值迭代 🔄

值迭代是一种简单快速的数值求解方法,适用于状态-动作空间离散且规模较小的问题。

它的工作原理如下:我们首先初始化所有状态的价值函数,通常将所有状态的值设为零。然后,我们反复迭代,使用贝尔曼方程本身来更新价值函数。在每次迭代中,我们利用上一次迭代的结果计算方程右侧的值。

以下是值迭代中更新价值函数的两种主要方式:

  • 同步更新:遍历状态空间中的所有状态,计算每个状态的新价值函数,然后一次性更新所有状态的值。
  • 异步更新:每计算出一个状态的新价值函数后,立即更新该状态的值。

无论采用哪种更新方式,算法最终都能收敛到最优价值函数。收敛后,我们可以利用最优价值函数,通过公式 π(s) = arg maxₐ [ R(s, a) + γ Σₛ‘ P(s'|s, a) V(s') ] 推导出最优策略。

因此,只要状态-动作空间是离散且规模不大,值迭代算法就非常直接有效。


策略迭代 🔁

上一节我们提到了值迭代,本节我们介绍另一种经典方法:策略迭代。

在策略迭代中,我们从某个初始策略 π₀(通常是随机策略)开始,然后重复执行一个包含两个步骤的循环,直至收敛。

以下是策略迭代循环的两个核心步骤:

  1. 策略评估:为当前策略 π 计算其价值函数 V^π。这一步通过求解 V 的贝尔曼方程(一个线性方程)来完成,相对直接。
  2. 策略改进:基于上一步计算出的价值函数,通过应用贝尔曼最优方程右侧的 arg max 算子来更新策略,即 π_{new}(s) = arg maxₐ [ R(s, a) + γ Σₛ‘ P(s'|s, a) V^{π}(s') ]

需要注意的是,策略迭代中这两个步骤的计算负担不同。策略改进步骤是直接的,可通过标准优化完成。然而,策略评估步骤涉及求解贝尔曼方程,当状态空间维度很大时,反复进行策略评估的计算成本可能非常高。


从动态规划到强化学习 🚀

另一方面,对于许多实际的最优控制问题,尤其是当状态-动作空间很大(甚至是连续的)时,动态规划方法(如值迭代或策略迭代)可能不再适用。

在这些情况下,强化学习成为了解决问题的关键工具。我们将在后续课程中详细探讨强化学习的工作原理。


总结 📝

本节课我们一起学习了求解MDP的两种核心算法:

  • 值迭代通过不断迭代更新价值函数直接逼近最优解,适用于中小型离散问题。
  • 策略迭代则在策略评估与策略改进的交替循环中寻找最优策略,其策略评估步骤在状态空间大时可能计算昂贵。

当问题规模过大或状态连续时,我们需要转向强化学习等更高级的方法。

课程 P8:MDP & RL - 动作价值函数 🎯

在本节课中,我们将学习强化学习中的一个核心概念——动作价值函数(Q函数)。我们将了解它与之前介绍的状态价值函数有何不同,如何推导其贝尔曼方程,以及它在解决实际问题(如经典的推车平衡问题)中的重要性。


概述 📖

上一节我们介绍了价值函数和最优价值函数,并讨论了如何通过求解贝尔曼最优方程来找到最优策略。本节中,我们将探讨另一种更便捷、专为强化学习设计的方法,它基于动作价值函数。我们将学习其定义、贝尔曼方程的推导,并了解它在实际应用中的意义。


动作价值函数与状态价值函数

首先回顾一下,状态价值函数 V(s) 只依赖于状态 s 和策略 π,不包含当前采取的具体动作信息。

而动作价值函数 Q(s, a) 则同时依赖于当前状态 s 和在该状态下采取的动作 a。它计算的是在状态 s 下执行动作 a,然后遵循策略 π 所能获得的预期累积奖励

用公式表示,动作价值函数定义为:
Q^π(s, a) = E[ R_t + γ * R_{t+1} + γ^2 * R_{t+2} + ... | S_t = s, A_t = a ]

这意味着在 Q 函数中,第一个动作是固定的(由参数 a 给出),后续的所有动作则由策略 π 决定。


Q函数的贝尔曼方程 🔄

我们可以像推导状态价值函数的贝尔曼方程一样,为动作价值函数 Q 推导其贝尔曼方程。

推导过程是将预期累积奖励的总和分为第一项奖励后续所有奖励的期望

  • 第一项是执行固定动作 a 所获得的即时奖励 R(s, a)
  • 第二项是从下一时间步开始的、遵循策略 π 的预期累积奖励的折扣值。这部分仅依赖于策略 π 和下一状态,因此它就是下一状态的状态价值函数 V^π(s‘)

由此,我们得到 Q 函数的贝尔曼方程:
Q^π(s, a) = R(s, a) + γ * Σ_{s'} P(s' | s, a) * V^π(s')

这个方程涉及 QV 两个函数,使用起来不太方便。


最优动作价值函数 ⭐

类似于最优状态价值函数 V*,我们定义最优动作价值函数 Q*。它是在状态 s 下执行动作 a 后,遵循所有可能策略中最好的那个(即最优策略 π*)所能获得的最大预期累积奖励。

Q*(s, a) = max_π Q^π(s, a)

最优状态价值函数 V*(s) 实际上就是在状态 s 下,对所有可能动作 aQ*(s, a) 取最大值:
V*(s) = max_a Q*(s, a)


贝尔曼最优方程(Q函数版)🎯

利用 V*Q* 的关系,我们可以推导出一个仅包含 Q* 的方程,即贝尔曼最优方程

Q*(s, a) = R(s, a) + γ * Σ_{s'} P(s' | s, a) * max_{a'} Q*(s', a')

这个方程是下周我们将要学习的 Q学习算法 的核心理论基础。它意味着一个状态-动作对的最优价值,等于即时奖励加上所有可能下一状态中最佳后续动作价值的折扣期望。


估计价值函数:蒙特卡洛方法 🎲

在实践层面,如何估计这些价值函数呢?

以下是基于经验估计价值函数的基本思路:

  • 估计状态价值函数 V:智能体遵循某个策略 π,记录访问每个状态后获得的实际累积奖励,然后计算平均值。访问次数足够多时,这个平均值会收敛到该状态的 V^π(s)
  • 估计动作价值函数 Q:类似地,智能体记录在状态 s 下采取动作 a 后获得的实际累积奖励,并计算平均值。这个平均值会收敛到 Q^π(s, a)

这类通过大量“试验”或“情节”的平均回报来估计价值的方法,被称为蒙特卡洛方法

当状态和动作空间较小时,这种方法简单有效。但如果状态或动作数量巨大甚至是连续的,为每个状态-动作对维护单独的平均值就不现实了。这时,我们需要使用函数逼近(例如神经网络)来近似 Q 函数,这将在后续课程中讨论。


经典案例:推车平衡问题 🏗️

现在,让我们看一个强化学习的经典例子——推车平衡问题(Cart-Pole Problem)。

该问题的任务是:对一个可在轨道上左右移动的推车施加水平力,目的是防止与推车铰接的杆子从垂直位置倒下。

  • 状态 s:通常包括推车的位置、速度,以及杆子的角度、角速度。
  • 动作 a:施加在推车上的向左或向右的力。
  • 奖励 R:有两种常见设定:
    1. 分幕任务:在每个未发生故障(杆子未倒下)的时间步,奖励为 +1。杆子倒下则情节终止,奖励为0,并开始新情节。
    2. 持续任务:任务无限进行,直到杆子倒下。通常设定为:杆子未倒下时奖励为0,倒下时奖励为 -1。这种设定需要使用折扣因子 γ 来计算无限时间步的累积奖励。

推车平衡问题是测试和演示新强化学习算法的标准环境之一。下图展示了训练后的智能体成功平衡杆子的过程:



总结 ✨

本节课中,我们一起学习了:

  1. 动作价值函数 Q(s, a) 的定义及其与状态价值函数 V(s) 的区别。
  2. 如何推导 Q 函数的贝尔曼方程,以及更重要的、仅包含 Q*贝尔曼最优方程
  3. 通过蒙特卡洛方法从经验中估计价值函数的基本思想。
  4. 强化学习的经典测试案例——推车平衡问题的MDP建模方法。

Q 函数和贝尔曼最优方程是理解后续许多强化学习算法(特别是Q学习)的关键。在接下来的课程中,我们将构建一个简化的金融模型,作为应用这些强化学习概念的测试案例。

课程P9:BSM模型 - 期权与期权定价 📈

在本节课中,我们将学习如何为强化学习构建一个金融领域的测试环境。我们将从回顾默顿违约模型开始,并引入著名的布莱克-舒尔茨-默顿(BSM)模型,它是现代量化金融的基石,也是我们后续构建金融强化学习测试环境的基础。


在上一课中,我们讨论了市场决策过程以及如何使用强化学习来找到MDP的最优策略。我们还以杆平衡问题为例,介绍了强化学习算法的经典测试用例。这类测试用例非常有用,因为它们不仅能让我们看到特定的强化学习算法在已知预期的情况下如何在这种环境中工作,也可以比较不同算法在性能上的表现。

尽管卡片杆系统的物理学处理的是位置和速度等连续变量,这些变量是可以离散化的。通过离散化,系统被映射到一个决策过程问题上,具有离散的状态和动作空间。在这种设置下,我们之前概述的所有方法以及许多其他强化学习方法都可以尝试。因此,这个测试用例通常被用来说明和基准测试不同的强化学习算法。

但因为在这门课程中我们涉及的是金融,拥有一个像杆平衡问题一样简单的金融场景会更好。这样一个最简单的但并非过于简化的设置,可能会对强化学习在金融领域的应用产生有益影响,作为探索和基准测试不同金融应用RL算法的测试实验室。在本节课中,我们将为强化学习与金融构建这样的测试环境。正如我们稍后将看到的,它非常灵活且可扩展。

以下是构建这个金融测试环境的主要优势:

  • 它可以帮助我们对离散动作和连续动作的强化学习算法进行基准测试。
  • 在金融领域,它提供了对对冲、交易和金融市场定价问题的洞察。
  • 许多金融任务的主要元素都存在于一个可控且易于理解的环境中。
  • 它有可能通过适当的推广扩展成实际有用的方法。

为此,我们建议使用著名的布莱克-舒尔茨-默顿(Black-Scholes-Merton,简称BSM)模型,这是现代量化金融的基石。我在我们第一节关于监督学习的课程中提到过这个模型,当时我们讨论了默顿的公司违约模型。所以让我们从快速回顾默顿违约模型开始。


上一节我们介绍了构建金融测试环境的目标,本节中我们来看看作为其基础的默顿模型。

默顿模型提供了对公司的一种简化视图,该公司只有一个被称为公司价值的资产,其被建模为几何布朗运动。如果公司价值低于债务水平,在到期时 t,股东将违约,未能向为公司融资的债券持有人支付。在这种情况下,她将公司资产交给债券持有人,股票变得一文不值。否则,股票在时间 t 的价值等于公司价值 t 减去债务水平 k 的差值。

我们讨论了默顿模型对预测公司违约的影响,并指出,在该模型中得到的关于违约概率的特定表达式可以视为一种结构。基于违约模型的模型对应于关于系统动态的非常特定的假设。

现在,默顿模型用于公司违约,给出了违约概率,并计算了公司债务和公司股票当前的估值。但是,如果股票持有人提议让你现在支付她,以便以后能够从她那里以约定时间的价格购买她的股票,该怎么办?她一拿到它,就会按照现在固定的价格 k 来操作。这样的金融合同被称为期权或金融衍生品。两个名称都说明了这一工具的性质。首先,它是一个期权,而不是一种义务,这意味着如果到时你发现股票表现不好,你不需要在 t 时支付价格 k 来获得股票。它也被称为衍生品,因为它的价值来源于股票的价值。

我刚才描述的是一种最简单的股票期权类型,称为欧洲看涨期权。再重复一遍,这种金融合同的运作方式如下:期权买方有权在未来的某个时刻 t 以一个指定的金额 k(也称为期权行使价)购买股票。行使价 k 在期权开始时合同约定。

现在,期权在到期时 t 的价值由这里显示的公式给出。它是最终股价 S 与行使价格 k 和零之间差值的最大值。其含义很简单。如果最终股价 St 时刻高于行使价格 k,那么对于期权的买方来说,购买该股票是非常有意义的。股票可以立即以市场价格出售。在这种情况下,期权买方的利润将是 St 时的差值减去 k。但如果终端股价低于 k,那么行使该期权对买方来说将没有意义。所以在这种情况下,期权的支付为零。

这个期权到期时 t 的支付如图所示。对于任何低于 k 的终端股价 ST,支付为零;而当 ST 高于 k 时,支付呈线性增长。

好的,这就是期权在最终时间 t 时的运作方式。但是当我们不知道最终股价时,它现在的价格如何呢?


了解了期权的基本概念后,我们自然会问:如何为这个未来的权利定价?著名的布莱克-肖尔斯-默顿模型,就是为了解答这个问题而开发的。

著名的布莱克-肖尔斯-默顿模型,也被称为布莱克-肖尔斯模型,是为了解答这个问题而开发的。它与默顿公司违约模型在1973年左右由费舍尔·布莱克、迈伦·肖尔斯和罗伯特·默顿共同开发,并在1997年获得了诺贝尔经济学奖,授予肖尔斯和默顿。三年后,费舍尔·布莱克因癌症去世,享年1994年。该模型通常被称为布莱克-肖尔斯模型,有时也称为布莱克-肖尔斯-默顿模型或BSM模型。我们将交替使用这两种名称。

那么,BSM模型是什么,它是做什么的?让我们在下一个视频中讨论这个模型。


本节课中我们一起学习了如何为强化学习构建金融测试环境,并引入了其核心基础——布莱克-舒尔茨-默顿(BSM)模型。我们从回顾默顿违约模型出发,解释了什么是期权(特别是欧式看涨期权),并引出了BSM模型的核心问题:如何为这种未来的权利定价。在接下来的课程中,我们将深入探讨BSM模型的具体内容。

posted @ 2026-02-04 18:19  绝不原创的飞龙  阅读(3)  评论(0)    收藏  举报