Advances in Applied Mathematics
Vol. 11  No. 03 ( 2022 ), Article ID: 49619 , 20 pages
10.12677/AAM.2022.113133

深度学习与进化算法耦合下的最优多维 随机控制问题

张智豪1,徐勉2*

1上海理工大学,理学院,上海

2河南中烟工业有限责任公司洛阳卷烟厂,河南 洛阳

收稿日期:2022年2月21日;录用日期:2022年3月16日;发布日期:2022年3月23日

摘要

受困于维数诅咒,能够求解高维偏微分方程(PDEs)的算法一直以来都极其有限。鄂维南和韩劼群在2017年提出的算法通过将未知解的梯度看作策略函数,利用深度学习可以较为有效的解决高维偏微分方程,但却无法解决带有真正策略函数的问题。本文提出了一种新算法,通过多层神经网络表示策略函数映射,将方程的解映射为适应度函数,把网络中的参数看作自变量,通过进化算法优化整个策略函数;同时配合鄂维南和韩劼群的算法求解问题。通过在Riccati方程和投资消费问题等的实际算例模拟下,表明了算法的准确性和实际意义。

关键词

偏微分方程,倒向随机微分方程,高维,深度学习,随机控制,进化算法

Solving Multi-Dimensional Optimal Stochastic Control Problems with Deep Learning and Evolution Algorithm

Zhihao Zhang1, Mian Xu2*

1College of Science, University of Shanghai for Science and Technology, Shanghai

2Luoyang Cigarettes Factory of China Tobacco Henan Industrial Co., LTD., Luoyang Henan

Received: Feb. 21st, 2022; accepted: Mar. 16th, 2022; published: Mar. 23rd, 2022

ABSTRACT

Because of the curse of dimensionality, developing efficient algorithms for solving high-dimensional partial differential equations (PDEs) has been an extremely difficult task. The algorithm which Weinan E and Jiequn Han proposed in 2017 views the gradient of the unknown solution as policy function, and through deep learning can effectively solve high-dimensional partial differential equations, but this method cannot deal with stochastic control problems with real policy function. We propose a new algorithm for solving this problem, which use multilayer neural network to represent the map of policy function and view the parameters in the neural network as independent variables. Then, we use the evolution algorithm to optimal the policy function. At the same time, we cooperate with Weinan E and Jiequn Han’s algorithm to solve this problem. Numerical results on 5-dimensional Riccati equation and 12-dimensional Investment and Consumption Problem suggest the accuracy and practical significance of the algorithm.

Keywords:Partial Differential Equation, Backward Stochastic Differential Equation, High-Dimensional, Deep Learning, Stochastic Control, Evolution Algorithm

Copyright © 2022 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

由于维数诅咒的存在 [1],建立行之有效的高维偏微分方程(Partial differential equation, PDE)的算法一直以来都是一个非常有挑战性的工作。比较传统的求解方法是使用近似动态规划 [2],但这种方法需要我们用一个近似函数替代掉真值函数,然后通过更新值函数的方式来求解出问题。在过去的二十多年中,由于倒向随机微分方程(Backward stochastic differential equation, BSDE)的出现及对其相关理论的充分研究,我们可以将随机偏微分方程(PDEs)的解通过Feynman-Kac公式(Feynman-Kacformula)表达为一个与其耦合的倒向随机微分方程的解 [3] [4] [5],在这样的理论基础之上,通过蒙特卡罗方法可以建立求解随机偏微分方程(PDEs)在任意时空间位置解的算法 [6]。在信息时代的当下,鄂维南和韩劼群所开发的算法 [7] [8] [9],是将偏微分方程和倒向随机微分方程相结合,令所求方程解的梯度充当策略函数,然后把所给定的终端条件和倒向随机微分方程的解之间的误差视为损失函数,进而通过神经网络逼近策略函数来求解出问题,这种算法在100维的非线性偏微分方程中也表现出了良好的效果。在此之后,这种通过深度学习算法来求解高维随机偏微分方程的思路应用的越来越广泛 [10] [11] [12] [13],在误差减小、效率提升等方面的研究也获得了长足的进步 [14] [15]。

但是,鄂维南和韩劼群的算法也有一些不完备的地方,在面对带有策略函数的随机控制问题 [16] 时,这种算法就会面临整个问题出有两种策略函数需要解决的局面。考虑到鄂维南和韩劼群的算法不需要设计近似函数和处理值函数,且能够同时处理线性非线性的高维偏微分方程问题,具有较强的普适性。因此,我们仍期望从他们的算法出发,开发出能够解决含有策略函数的随机控制问题算法。

近年来,深度学习作为机器学习领域中的新技术越来越为人所知,其在机器视觉、自然语言处理和自动驾驶中的广泛应用,以及处理高维复杂问题时的优异表现让人看到了它的巨大潜能。而深度学习所具有的万能近似定理 [17] 也表明,无论是什么样的函数,我们总能够通过一个足够庞大的前馈网络来将它表示出来。这个定理的存在启发我们或许可以用深度学习的相关技术来解决我们面临的问题。

利用深度学习的知识,对于随机控制问题中的策略函数映射,我们采用多层神经网络的结构将它形式化的表达出来,而对于神经网络中本来应该通过反向传播算法进行优化的诸多参数 [18],我们利用进化算法来进行求解。也就是说我们人为设计了一个神经网络结构表示随机控制问题的策略函数,并且通过进化算法对网络进行优化。这样的做法优点在于我们只需通过评估网络输出的结果就可以更新网络参数,而不需要像传统的神经网络算法一样,设计损失函数的形式,利用随机梯度下降算法(Stochastic gradient descent, SGD)最优化损失函数来更新参数 [17]。对于问题的余下部分,我们仍然沿用鄂维南和韩劼群的方法。

通过对有限时间指标的离散化,我们在每个时间步设置两个子网络,分别对随机控制问题的策略函数和解的梯度进行逼近。然后依据时间步的推进,将这两种类型的子网络有机的叠加在一起,形成一个非常深的网络,以此来求解我们的问题。

在本文中,我们首先对提出的算法进行了推导和架构,接着给出了整个算法的结构形式和主要部分的算法过程,并且将算法在5-Riccati方程 [19] [20] 和12-维投资消费问题 [21] 中进行了测试,结果表明算法的提出具有一定的实际意义。

2. 数值方法

我们考虑一类经典的偏微分方程(PDEs),它具有如下的表达形式:

u t ( t , x ) + o p t i m a l v U { 1 2 T r ( σ ( t , x ; v ) σ ( t , x ; v ) ( H e s s x u ) ( t , x ) ) + ( x u ) ( t , x ) , b ( t , x ; v ) + f ( t , x , u ( t , x ) , σ ( t , x ; v ) ( x u ) ( t , x ) ; v ) } = 0 (2.1)

其终端时刻条件为 u ( T , x ) = h ( x )

在这里,t和x表示时间和d-维的空间向量,v表示在容许控制集 U 上取值的m-维反馈控制过程,即问题的策略函数。此外,b为d-维向量值函数, σ 表示 d × d 维的矩阵值函数, σ σ 的转置, u H e s s x u 表示函数u关于x的梯度和海森(Hessian)矩阵。

我们关心的是这个方程在 t = 0 时刻, x = ξ 时,在最优控制 v ¯ U 条件下的解。这里显然 ξ d

想要求解这个问题,最关键的一点是将上述的求解一个偏微分方程的问题重新表述,转化为求解一个随机控制问题。

2.1. 化偏微分方程问题(PDEs)为随机控制问题

假设 ( Ω , F , ) 是一个概率空间, { W t } 0 t T 是定义在这个概率空间上的d-维标准布朗运动。 { F t } 0 t T 是定义在 ( Ω , F , ) 上,由布朗运动 { W t } 0 t T 生成的自然域流; A 是所有具有连续轨道的 d -维 F -适应随机过程的集合。我们可以知道,反馈控制v属于集合 U ,其中 U { v | v L F 2 ( 0 , T ; m ) } 在紧集 U m 上取值。

{ X t } 0 t T 为d-维随机过程,我们关心的随机控制问题的状态方程可以表达为:

{ d X t t , ξ ; v = b ( t , X t t , ξ ; v ; v t ) d t + σ ( t , X t t , ξ ; v ; v t ) d W t X 0 = ξ d (2.2)

这个随机控制问题的成本函数与一个和(2.2)式耦合的倒向随机微分方程(BSDE)的解相关:

{ d Y t t , ξ ; v = f ( t , X t , ξ ; v , Y t , x ; v , Z t , ξ ; v ; v ) + Z t t , ξ ; v d W t Y T t , ξ ; v = h ( X T t , ξ ; v ) (2.3)

成本函数(Cost function)定义为:

J ( t , x ; v ) Y t t , ξ ; v (2.4)

通过这个随机控制问题,我们可以找到在给定的 ( t , x ) 和最优的反馈控制 v ¯ U 等条件下,成本函数(2.4)的最大值或最小值。

在对f的合理假设下,我们可以发现对于所有的 t ( 0 , T ) ,偏微分方程(PDEs) (2.1)和倒向随机微分方程(BSDEs) (2.3)存在如下的关系 [3] [4] [5]:

Y t t , ξ ; v = u ( t , X t t , ξ ; v ) , Z t t , ξ ; v = σ ( t , X t t , ξ ; v ; v ) ( x u ) ( t , X t t , ξ ; v ) d (2.5)

(2.5)中的左式通常被称作为非线性的Feynman-Kac公式。

通过上述变换,我们将求解偏微分方程(PDEs) (2.1)的问题转化为求解一个与之相匹配的随机控制问题(2.2)~(2.4)。从而,通过求解随机控制问题(2.2)~(2.4),我们可以利用 J ( 0 , ξ ) 来计算出(2.1)式在最优反馈控制 v ¯ 下的值 u ( 0 , ξ )

我们通过两个简短的步骤来说明求解 u ( 0 , ξ ) 的数值算法:

1) 在反馈控制 v U 中,选定一条样本轨道 v ^ ,我们可以得到与之相对应的随机控制问题的解 J ( 0 , ξ ; v ^ ) 。并且,对于不同的样本轨道 v ^ ,我们总能够得到与之相对应的 J ( 0 , ξ ; v ^ ) 。因此,通过对反馈控制v的充分采样,我们能够得到充分多的 v ^ J 对。

2) 对于1中的所有 v ^ J 对,我们能够找到一个反馈控制 v ¯ v ^ ,使得 J ( 0 , ξ ) 达到最大值或者最小值。

在下一章节中,我们首先讨论第1步的具体实施方法。

2.2. 偏微分方程(PDEs)的神经网络算法

为了推导出求解 J ( 0 , ξ ; ) 的数值算法,我们假设在(2.2)~(2.4)中选取了反馈控制v的一条轨道 v ^ ,并将(2.5)中的两个公式插入到(2.3)中,我们可以得到对于所有的 t [ 0 , T ]

随机控制问题的状态方程改写为:

X t = ξ + 0 t b ( s , X s ; v ^ s ) d s + 0 t σ ( s , X s ; v ^ s ) d W s (2.6)

与状态方程相耦合的倒向随机微分方程(BSDE)便为:

u ( t , X t ) = h ( X T ) + t T f ( s , X s , u ( s , X s ) , σ ( s , X s ; v ^ s ) ( x u ) ( s , X s ) ; v ^ s ) d s t T σ ( s , X s ; v ^ s ) ( x u ) ( s , X s ) , d W s (2.7)

成本函数为:

J ( t , x ; v ^ ) u ( t , X t t , ξ ; v ^ ) (2.8)

我们将 u ( 0 , ξ ) θ u 0 ( x u ) ( 0 , ξ ) θ u 0 视为模型的参数,然后对(2.6),(2.7)式采取时间离散化。

具体来说,令 t 0 , t 1 , , t N [ 0 , T ] , N ,其满足:

0 = t 0 < t 1 < < t N = T (2.9)

N 充分大时,对(2.6)、(2.7)式,我们考虑一种简单的欧拉格式(Euler scheme):

对于 n = 1 , , N 1 ,我们能够得到

X t n + 1 X t n b ( t n , X t n ; v ^ t n ) Δ t n + σ ( t n , X t n ; v ^ t n ) Δ W n (2.10)

u ( t n + 1 , X t n + 1 ) u ( t n , X n ) f ( t n , X t n , u ( t n , X t n ) , σ ( t n , X t n ) ( x u ) ( t n , X t n ) ; v ^ t n ) Δ t n + σ ( t n , X t n ; v ^ t n ) ( x u ) ( t n , X t n ) , Δ W n (2.11)

其中

Δ t n = t n + 1 t n , Δ W n = W t n + 1 W t n (2.12)

在这样的时间离散化下,可以轻易地通过式(2.10)来采样获得轨道 { X t n } 0 n N

我们通过在每个时间步 t = t n 使用多层反馈神经网络数值算法来逼近函数 x σ ( t , x ) ( x u ) ( t , x ) 的值 [9]:

σ ( t n , X t n ) ( x u ) ( t n , X t n ) ( σ x u ) ( t n , X t n | θ n ) (2.13)

其中 θ n 表示网络在 n = 1 , , N 1 时的参数。

如果已知 θ u 0 的值,那么我们就可以近似地求解出(2.13)的值,然后将其代入(2.11),再对(2.11)进行递归计算来求解出 u ( t n , X t n ) , n { 1 , , N } 的值。

具体来说,这个方法是将轨道 { X t n } 0 n N 和标准布朗运动 { W t n } 0 n N 作为模型的输入数据,而 u ^ ( X t n , W t n ) , n [ 0 , N ] 则视为模型输出,它是 u ( t , X t ) 的近似解。

我们使用均方误差损失函数(Mean squared error, MSE)来衡量给定的终端条件 h ( X t N ) 和计算出来的近似值 u ^ ( X t N , W t N ) 之间的差距 [18]:

L ( θ ) = E [ | h ( X t N ) u ^ ( X t N , W t N ) | 2 ] (2.14)

整个网络的参数为 θ = { θ u 0 , θ u 0 , θ 1 , , θ N 1 }

现在,我们可以使用随机梯度下降算法(SGD),通过优化参数集 θ 来最小化均方误差损失函数(MSE)。对于使得均方误差损失函数(MSE)达到最小的参数集 θ ,其中 θ u 0 θ 是对 u ( 0 , ξ ) 的近似,而 u ( 0 , ξ ) 就是我们想要的 J ( 0 , ξ ; v ^ ) 的值,这里的 v ^ 是我们对反馈控制v采样获得的一条轨道。因此我们就获得了一个 v ^ J 对。

我们使用伪代码的形式简略的呈现一下这个计算过程:

在下一章中,我们讨论第2步的做法。

2.3. 反馈控制函数的进化算法

在2.2节中,对于反馈控制v采样获得的轨道 v ^ ,我们可以获得与之对应的 J ( 0 , ξ ; v ^ ) ,即 v ^ J 对。在这个章节中,我们会推导出一个数值算法,通过优化 v ^ 来获得我们想要的最优解 J ( 0 , ξ )

我们可以将问题变形为:

V = o p t i m a l v ^ J ( 0 , ξ ; v ^ ) (2.15)

其中 V 就是我们的优化目标。我们将 v ^ m 视为方程的自变量,这个问题就可以看作是单目标优化问题(Single-Objective Optimization Problem)。

通常来说,在单目标优化问题中,可以利用进化算法(Evolution algorithm, EA)将自变量编码为种群,将目标函数映射为适应度函数,由此获得种群中每个个体相对应的适应度,接着以适应度为标准,通过若干代的变异、交叉和选择,算法可以得到最优的适应度,从而得到最优的目标函数值 [22] [23]。

然而,在我们的问题中,自变量 v ^ 并非数字而是一个随机过程。在这种情况下,我们不能简单的把 v ^ 像数值一样进行编码来进行优化求解。

我们沿用2.1节中的假设条件,令 t [ 0 , T ] X t d (见(2.6)式)。反馈控制v的表达式我们定义为:

v : = v ( t , X t ) (2.16)

其由 m 维均方可积 { F t } 0 t T -适应过程组成。

我们将时间离散化方法(2.9)应用于(2.16),则随机过程可被离散化为:

v t n : = v ( t n , X t n ) (2.17)

其中 n = 0 , , N 1 X t n 的值可以由(2.10)得到。

假设映射 x v ( t , x ) 已经给定,那么我们可以很轻松地通过 t n X t n 计算出的 v ( t n , X t n ) 值。

然而,大多数的情况下我们并不知道映射 x v ( t , x ) 的形式,所以,我们需要找到一个方法表达出这个映射。

作为一种新兴的技术,深度神经网络模型在人工智能领域具有广泛的应用,并且它可以通过将简单函数进行复合来表达非常复杂的函数方程,所以,我们可以利用神经网络模型的这种性质来表达出映射 x v ( t , x )

首先,对于任意的 n = 0 , , N 1 X t n ,我们有:

v ( X t n ) f n ( M ) ( f n ( M 1 ) ( ( f n ( 2 ) ( f n ( 1 ) ( X t n ) ) ) ) ) (2.18)

这里的M表示多层神经网络的层数, f n ( m ) 则表示从第 m 1 层到第m层的映射,其中 m = 1 , , M 。需要注意的是, m = 0 时表示输入层 [17] [18]。

m = 1 , , M 1 时,假设 h n m 1 ρ n m h n m k n m 分别是函数 f n ( m ) 的自变量和因变量,那么 f n ( m ) 的表达式可以定义为:

h n m = g ( K n m , h n m 1 + b n m ) (2.19)

这里的权重矩阵 K n m ρ n m × k n m 和偏置 b n m k n m 均为函数的参数。其中 g ( ) 为激活函数,它能够对输入的自变量中的每个元素按照给定的规则产生作用 [18]。并且,在(2.19)中得到的 h n m 会作为下一层函数 f n ( m + 1 ) 的自变量传递下去。

需要注意的是输出层函数 f n ( M ) 不需要使用激活函数。

为了方便记录,我们用 ϕ n m 表示函数 f n ( m ) 的参数 ( K n m , b n m ) ,因此,在 t = t n 时刻时(2.18)式的全部参数为 ϕ n = { ϕ n 1 , , ϕ n M }

因此,当 n = 0 , , N 1 X t n 时,我们可以将式改写为:

v ( X t n ) = K n M , g ( g ( g ( g ( X t n ; ϕ n ( 1 ) ) ; ϕ n ( 2 ) ) ; ϕ n ( M 2 ) ) ; ϕ n ( M 1 ) ) + b n M (2.20)

其参数为 ϕ n = { ϕ n 1 , , ϕ n M }

同样的,为了方便记录,我们把(2.20)式缩写为 v ( X t n ) = f n ( X t n ; ϕ n ) t = t n

显然,这个网络以 X t n 作为输入数据,并且以 v ( X t n ) 作为输出数据,而 v ( X t n ) 则是 v ( t n , X t n ) 的一个近似。在这里我们指出,我们得到的 v 就是2.2节中我们采样获得的轨道 v ^

由此可知,当 n { 0 , , N 1 } 时, v ( t n , X t n ; Φ ) m 的值可以由(2.20)式和(2.10)式联合起来递归地计算得出,其中 Φ = { ϕ 0 , , ϕ N 1 } 表示函数v的全体参数。因此,(2.15)式的自变量就可以看成是 Φ ,我们的优化问题就变形为: V = o p t i m a l Φ J ( 0 , ξ ; v ^ ( X ; Φ ) )

现在我们就可以使用进化算法 [23] [24] (EA)通过 Φ 来优化V的值,就像使用进化算法来解决一个经典的单目标优化问题一样。

我们同样的使用伪代码的形式简略的呈现一下这个计算过程

3. 偏微分方程和随机控制的数值算例

在本节当中,我们通过几个具有实际意义的偏微分方程(PDEs)算例来说明第二章2.2节和2.3节推导出的算法。在接下来的例子之中,我们会对2.2节中的近似计算使用小批量(mini-batches)样本的Adam优化器 [17] [18],对2.3节中V的优化我们采用一种改进的进化算法来进行计算 [24]。

图1,在我们的实践过程中,对于2.3节,我们采用N个全连接反馈神经网络的结构形式来表示 v ^ n Φ ,其中 Φ = { ϕ 0 , , ϕ N 1 } , n { 0 , 1 , , N 1 } 。每一个网络都表示在 t = t n 时刻 X t n v ^ n 的映射,它包括一个输入层(d-维),H个隐藏层(具有相同的维数)以及一个输出层(m维)。这些网络的所有权重都服从均匀分布。此外,我们利用 N 1 个多层神经网络来计算 ( σ x u ) ( t n , X t n | θ n ) , n { 1 , 2 , , N 1 } ,其中 θ n 表示神经网络在 t = t n 时刻的参数 [8],在这里,神经网络的参数通过正态分布或者均匀分布完成初始化。整个网络结构有 ( D + 1 ) ( N 1 ) + ( H + 1 ) N 层的若干参数需要优化。

Figure 1. Numerical algorithm structure of stochastic control problems

图1. 随机控制问题的数值算法结构图

3.1. 倒向随机Riccati方程

在本节当中,我们将推导出来的算法应用在倒向随机Riccati方程 [19] [20] 中来测试它的数值效果。

t [ 0 , T ] x , W d v m u z 1 × d 。当 d = 2 m = 1 ,, ξ = ( 1 , , 1 ) 时,有(2.2)式中

b ( t , x t ; v t ) = ( A x t + B v t ) = ( 0.1 0 0 0.1 ) x t + ( 0.1 0.1 ) v t (3.1)

σ ( t , x t ; v t ) d W t = i = 1 d ( C i x t + D i v t ) d W t i = [ ( 0.1 0 0 0.1 ) x t + ( 0 0.1 ) v t ] d W t 1 + [ ( 0.1 0 0 0 ) x t + ( 0.1 0 ) v t ] d W t 2 (3.2)

同样地,在(2.3)式中

f ( t , x , u , z ; v ) = ( Q x t , x t + N x t , x t ) = x t ( 0.5 0 0 0.3 ) x t + 0.1 v t v t (3.3)

并且它的终端时刻条件我们定义为 h ( x ) = M x , x = x ( 0.2 0 0 0.2 ) x

此时,当 t [ 0 , T ] x d ,使得 u ( T , x ) = h ( x ) 时,偏微分方程(PDEs) (2.1)的解u满足:

u t ( t , x ) + inf v { 1 2 α , β i = 1 d ( C α i x + D α i v t ) ( C β i x + D β i v t ) ( D α , β u ) ( t , x ) + γ ( A γ x + B γ v t ) ( D γ u ) ( t , x ) + x Q x + v t N v t } = 0 (3.4)

Table 1. Numerical simulation of 2-dimensional Riccati equation

表1. Riccati方程在2-维形势下的数值模拟

Figure 2. Solution of 2-dimensional Riccati equation against generations steps g

图2. 2-维Riccati方程的解随进化代数g的变化

Figure 3. Value of function f n ( x ; ϕ n ) against x, where n { 0 , 1 , , N 1 }

图3. 函数 f n ( x ; ϕ n ) 随x的变化,其中 n { 0 , 1 , , N 1 }

表1中,我们令进化算法的进化代数为100代,每一代的种群规模 N P = 20 。在进化过程中,我们计算了每一代的最优 u ( 0 , ξ ) 值,相应规模下 u ( 0 , ξ ) 的均值及标准差。图2为2-维Riccati方程的解 u ( t = 0 , ξ = ( 1 , 1 ) ) 在20个等距时间步的离散下随进化代数g的变化情况。图中的阴影部分表示每一代种群中 max u ( 0 , ξ ) min u ( 0 , ξ ) 之间的差值。红色的线表示 u ( 0 , ξ ) 的均值。在100代9541.29秒的进化后,该数值方法获得的解的标准差为2.87E−04。图3为函数 f n ( x ; ϕ n ) n { 0 , 1 , , N 1 } ,其中 ϕ n 为参数,由我们在2.2节、2.3节推导出的算法求解得出,此时, x 2 x 1 { 20 , , 20 } , x 2 { 40 , , 40 }

图2关于 u ( 0 , ξ ) 的计算中,由我们推导出的算法可知,此时偏微分方程(3.4)的真实解可由1.29581代替。

此外,u还可以通过 u t = x t K t x t 来计算获得 [20],其中 K t 的值可以通过下列方程组配合倒向欧拉算法 [27] (Backward Euler method)解出来

{ d K t = A K t + K t A + Q + i = 1 d ( C i ) K t D i [ K t B + i = 1 d ( C i ) K t D i ] [ N + i = 1 d ( D i ) K t D i ] 1 [ K t B + i = 1 d ( C i ) K t D i ] K T = M (3.5)

在这种方法下,我们有 u ( 0 , ξ ) = 1.29538 ,这与我们所推导出来的算法之间的误差大小为0.00043。

更进一步,我们考虑当 d = 5 m = 5 ξ = ( 1 , , 1 ) 时的情况,令(2.2)式中 b t 为:

b ( t , x t ; v t ) = ( A x t + B v t ) = ( 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.3 0 0 0 0 0 0.1 0 0 0 0 0 0.1 ) x t + ( 0.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) v t (3.6)

σ t 见后文附录。

此时,有(2.3)中函数f为:

f ( t , x , u , z , v ) = ( Q x t , x t + N x t , x t ) = x t ( 0.01 0 0 0 0 0 0.1 0 0 0 0 0 0.02 0 0 0 0 0 0.1 0 0 0 0 0 0.02 ) x t + v t ( 0.01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01 0 0 0 0 0 0 ) v t (3.7)

相应地,终端时刻条件为 h ( x ) = M x , x = x ( 0.02 0 0 0 0 0 0.12 0 0 0 0 0 0.12 0 0 0 0 0 0.2 0 0 0 0 0 0.2 ) x

表2中,我们令进化算法的进化代数为150代,每一代的种群规模 N P = 30 。在进化过程中,我们计算了每一代的最优 u ( 0 , ξ ) 值,相应规模下 u ( 0 , ξ ) 的均值及标准差。图4为5-维Riccati方程的解 u ( t = 0 , ξ = ( 1 , , 1 ) ) 在20个等距时间步的离散下随进化代数g的变化情况。图中的阴影部分表示每一代种群中 max u ( 0 , ξ ) min u ( 0 , ξ ) 之间的差值。红色的线表示 u ( 0 , ξ ) 的均值。在150代24699.45秒的进化后,该数值方法获得的解的标准差为1.01E−03。图5为函数 f n ( x ; ϕ n ) n { 0 , 1 , , N 1 } ,其中 ϕ n 为参数,由我们在2.2节、2.3节推导出的算法求解得出,此时, x 5 x 1 { 20 , , 20 } , x 2 { 40 , , 40 } x 3 , x 4 , x 5 { 1 , , 1 }

Table 2. Numerical simulation of 5-dimensional Riccati equation

表2. Riccati方程在5-维形势下的数值模拟

Figure 4. Solution of 5-dimensional Riccati equation against generations steps g

图4. 5-维Riccati方程的解随进化代数g的变化

Figure 5. Value of function f n ( x ; ϕ n ) against x, where n { 0 , 1 , , N 1 }

图5. 函数 f n ( x ; ϕ n ) 随x的变化,其中 n { 0 , 1 , , N 1 }

图4关于5-维Riccati方程的解 u ( 0 , ξ ) 的计算中,我们用1.20332来代替它真实值。此时,利用 u t = x t K t x t 和 式可以得出 u ( 0 , ξ ) 值为1.19665,两种算法之间的误差为0.00667。

3.2. 基于CIR模型和随机波动率的最优投资消费问题

在这一节当中,我们将算法应用在投资消费问题中。此时,将问题放在一个没有税收和交易成本,但具有CIR利率 [28] 和随机波动率的金融市场中 [21]。

需要注意的是的在这个问题当中,偏微分方程(2.1)的反馈控制过程v将不再只是一个,而是由一对随机过程来担任,我们用 ( π , C ) 来表示 [21],其中 π 表示股票投资额,C表示消费利率。

一般的,有 t [ 0 , T ] x d W 2 d π , C m r , η d u z 1 × d ,此时,我们令 T = 1 d = 1 m = 1 ξ = 30 ,则在中(2.2)有

b ( t , r t , η t , x t ; π t , c t ) = r t x t + π t k η t c t = r t x t + 0.6 π t η t c t (3.8)

σ ( t , η t , x t ; π t ) d W t 2 = π t σ 1 η t d W t 2 = 1.2 π t η t d W t 2 (3.9)

同时,r, η 都是随机过程,且它们的形式由CIR模型给出

{ d r t = ( 0.25 0.15 r t ) d t + 0.2 r t d W t 1 r ( 0 ) = 0.05 d (3.10)

{ d η t = ( 0.85 0.6 η t ) d t + 0.25 η t d W t 2 η ( 0 ) = 0.36 d (3.11)

在(2.3)式中,我们有 f ( t , x , u , z ; c ) = α c t δ δ e β t = 0.4 c t 0.1 0.1 e 0.1 t ,并且此时的终端时刻条件为 h ( x ) = ( 1 α ) x T δ δ e β T = 0.6 x T 0.1 0.1 e 0.1 T

在这种规定之下,我们可知偏微分方程(2.1)在 t [ 0 , T ] x d 时的解u满足:

u t + max π , C { ( r t x + π t k η t C t ) ( D x u ) + 1 2 π t 2 σ 1 2 η t ( D x 2 u ) + ( θ C t r t ) ( D r u ) + 1 2 σ 0 2 r t ( D r 2 u ) + ( b a η t ) ( D η u ) + 1 2 σ 2 2 η t ( D η 2 u ) + π t σ 1 σ 2 ( D x η u ) + α e β t C t δ δ } = 0 (3.12)

Table 3. Numerical simulation of 3-dimensional Investment and Consumption problem

表3. 投资消费问题在3-维形式下的数值模拟

Figure 6. Solution of 3-dimensional Investment and Consumption problem against generations steps g

图6. 3-维投资消费问题的解随进化代数g的变化

Figure 7. Value of function f n , π ( x ; ϕ n , π ) against x, where n { 0 , 1 , , N 1 }

图7. 函数 f n , π ( x ; ϕ n , π ) 随x的变化,其中 n { 0 , 1 , , N 1 }

Figure 8. Value of function f n , C ( x ; ϕ n , C ) against x, where n { 0 , 1 , , N 1 }

图8. 函数 f n , C ( x ; ϕ n , C ) 随x的变化,其中 n { 0 , 1 , , N 1 }

表3中,我们令进化算法的进化代数为400代,每一代的种群规模 N P = 30 。在进化过程中,我们计算了每一代的最优 u ( 0 , ξ ) 值,相应规模下 u ( 0 , ξ ) 的均值及标准差。图6为3-维投资消费问题(3.12)的解 u ( t = 0 , ξ = 30 ) 在20个等距时间步的离散下随进化代数g的变化情况。图中的阴影部分表示每一代种群中 max u ( 0 , ξ ) min u ( 0 , ξ ) 之间的差值。红色的线表示 u ( 0 , ξ ) 的均值。在400代40660.70秒的进化后,该数值方法获得的解的标准差为3.17596E−04。图7为函数 f n , π ( x ; ϕ n , π ) n { 0 , 1 , , N 1 } ,其中 ϕ n , π 为映射 x t n π ( t n , x t n ) 中的参数,由我们在2.2节、2.3节推导出的算法求解得出,自变量 x { 5 , , 5 } ;同样的,图8为函数 f n , C ( x ; ϕ n , C )

图6关于 u ( 0 , ξ ) 的计算中,我们有偏微分方程(3.12)在 t = 0 r ( 0 ) = 0.05 η ( 0 ) = 0.36 ξ = 30 真实解可由12.1718代替。

更进一步,我们考虑当 η 10 W 11 时的情况。此时令 ξ = 25 ,则有(2.2)中

b ( t , r t , η t , x t ; π t , c t ) = r t x t + π t k , η t c t (3.13)

σ ( t , η t , x t ; π t ) d W t = π t i = 1 10 σ 1 η t i d W t i (3.14)

这里我们令 k = ( 0.6 0.55 0.5 0.48 0.58 0.62 0.4 0.62 0.52 0.75 ) σ 1 = ( 0.45 0.62 0.75 0.5 0.82 0.64 1.0 0.82 0.64 0.8 )

此时,由于随机过程 { η t } 0 t T 为10-维,所以它的形式变为

{ d η t 1 = ( b 1 a 1 η t 1 ) d t + σ 2 1 η t 1 d W t 1 d η t 10 = ( b 10 a 10 η t 10 ) d t + σ 2 10 η t 10 d W t 10 η ( 0 ) = η 0 10 (3.15)

这个时候方程的初始时刻条件 η 0 我们定义为 η 0 = ( 0.13 0.25 0.32 0.37 0.18 0.42 0.2 0.15 0.1 0.12 ) 。需要指出的是,此时方程中的参数均为向量形式,其具体形式为 b = ( 0.72 0.78 0.58 0.75 0.8 0.58 0.55 0.65 0.62 0.58 ) a = ( 0.18 0.22 0.32 0.18 0.28 0.3 0.2 0.17 0.18 0.24 ) σ 2 = ( 0.13 0.25 0.12 0.14 0.22 0.16 0.14 0.32 0.15 0.12 ) 。而 b 1 b 10 a 1 a 10 σ 2 1 σ 2 10 则为对应向量的相应分量。

需要指出的是,这时(3.13),(3.14),(3.15)式中的参数k, σ 1 ,b,a, σ 2 { η t } 0 t T 的初始时刻条件 η 0 均为向量,我们在附录中给出它们的具体值。在这样的设定下,我们令(2.3)式函数f的参数 α = 0.3 δ = 0.08 ,并且保持其它的所有参数按照3-维情况下给出的各个值保持不变。

Figure 9. Solution of 12-dimensional Investment and Consumption problem against generations steps g

图9. 12-维投资消费问题的解随进化代数g的变化

Table 4. Numerical simulation of 12-dimensional Investment and Consumption problem

表4. 投资消费问题在12-维形式下的数值模拟

Figure 10. Value of function f n , π ( x ; ϕ n , π ) against x, where n { 0 , 1 , , N 1 }

图10. 函数 f n , π ( x ; ϕ n , π ) 随x的变化,其中 n { 0 , 1 , , N 1 }

Figure 11. Value of function f n , C ( x ; ϕ n , C ) against x, where n { 0 , 1 , , N 1 }

图11. 函数 f n , C ( x ; ϕ n , C ) 随x的变化,其中 n { 0 , 1 , , N 1 }

表4中,我们令进化算法的进化代数为400代,每一代的种群规模 N P = 30 。在进化过程中,我们计算了每一代的最优 u ( 0 , ξ ) 值,相应规模下 u ( 0 , ξ ) 的均值及标准差。图9为12-维投资消费问题(3.12)的解 u ( t = 0 , ξ = 25 ) 在20个等距时间步的离散下随进化代数g的变化情况。图中的阴影部分表示每一代种群中 max u ( 0 , ξ ) min u ( 0 , ξ ) 之间的差值。红色的线表示 u ( 0 , ξ ) 的均值。在400代44232.06秒的进化后,该数值方法获得的解的标准差为5.77984E−04。图10为函数 f n , π ( x ; ϕ n , π ) ,其中 ϕ n , π 为映射 x t n π ( t n , x t n ) 中的参数,由我们在2.2节、2.3节推导出的算法求解得出,自变量 x { 5 , , 5 } ;同样的,图11为函数 f n , C ( x ; ϕ n , C )

图9关于 u ( 0 , r ( 0 ) , η 0 , ξ ) 的计算中,我们将它的真实解由14.4029代替。

4. 结论

本文通过提出一种新型的算法,避开求解值函数,能够普适性的解决带有策略函数的线性、非线性随机控制问题,获得足够精确的数值解。在实际算例的背景下,显示出算法能够求解工程、金融等领域的相关问题,具有一定的实际意义。由于使用深度学习算法和进化算法两种智能算法进行架构,不可避免地造成了整个算法时间相对较长,在迁移应用中需要针对问题做好理论支撑,避免冗余设置造成的计算时间增加。

文章引用

张智豪,徐 勉. 深度学习与进化算法耦合下的最优多维随机控制问题
Solving Multi-Dimensional Optimal Stochastic Control Problems with Deep Learning and Evolution Algorithm[J]. 应用数学进展, 2022, 11(03): 1222-1241. https://doi.org/10.12677/AAM.2022.113133

参考文献

  1. 1. Bellman, R. (1984) Dynamic Programming. Princeton University Press, Princeton.

  2. 2. Powell, W.B. (2011) Approximate Dynamic Programming Solving the Curses of Dimensionality. Wiley, Princeton.

  3. 3. Pardoux, E. and Peng, S. (1992) Backward Stochastic Differential Equations and Quasilinear Parabolic Partial Differential Equations. In: Rozovskii, B.L. Sowers, R.B. and Eds., Stochastic Partial Differential Equations and Their Applications, Springer-Verlag, Berlin/Heidelberg, Vol. 176, 200-217. https://doi.org/10.1007/BFb0007334

  4. 4. Pardoux, E. and Tang, S. (1999) Forward-Backward Stochastic Differential Equations and Quasilinear Parabolic PDEs. Probability Theory and Related Fields, 114, 123-150. https://doi.org/10.1007/s004409970001

  5. 5. Yong, J. and Zhou, X.Y. (1999) Stochastic Controls: Hamiltonian Systems and HJB Equations. Springer, New York.

  6. 6. Zhang, J. (2017) Backward Stochastic Differential Equations. Springer, New York, 86.

  7. 7. Han, J.Q. and E, W.N. (2016) Deep Learning Approximation for Stochastic Control Problems.

  8. 8. E, W.N., Han, J.Q. and Jentzen, A. (2017) Deep Learning-Based Numerical Methods for High-Dimensional Parabolic Partial Differential Equations and Backward Stochastic Differential Equations. Communications in Mathematics and Statistics, 5, 349-380. https://doi.org/10.1007/s40304-017-0117-6

  9. 9. Han, J., Jentzen, A. and E, W.N. (2018) Solving High-Dimensional Partial Differential Equations Using Deep Learning. Proceedings of the National Academy of Sciences, 115, 8505-8510. https://doi.org/10.1073/pnas.1718942115

  10. 10. Berner, J., Grohs, P. and Jentzen, A. (2020) Analysis of the Generalization Error: Empirical Risk Minimization over Deep Artificial Neural Networks Overcomes the Curse of Dimensionality in the Numerical Approximation of Black—Scholes Partial Differential Equations. SIAM Journal on Mathematics of Data Science, 2, 631-657. https://doi.org/10.1137/19M125649X

  11. 11. Grohs, P., Jentzen, A. and Salimova, D. (2019) Deep Neural Network Approximations for Monte Carlo Algorithms.

  12. 12. Beck, C., Hornung, F., Hutzenthaler, M., et al. (2020) Overcoming the Curse of Dimensionality in the Numerical Approximation of Allen-Cahn Partial Differential Equations via Truncated Full-History Recursive Multilevel Picard Approximations. Journal of Numerical Mathematics, 28, 197-222. https://doi.org/10.1515/jnma-2019-0074

  13. 13. Zang, Y., Bao, G., Ye, X., et al. (2020) Weak Adversarial Networks for High-Dimensional Partial Differential Equations. Journal of Computational Physics, 411, Article ID: 109409. https://doi.org/10.1016/j.jcp.2020.109409

  14. 14. Fujii, M., Takahashi, A. and Takahashi, M. (2019) Asymptotic Expansion as Prior Knowledge in Deep Learning Method for High Dimensional BSDEs. Asia-Pacific Financial Markets, 26, 391-408. https://doi.org/10.1007/s10690-019-09271-7

  15. 15. Naito, R. and Yamada, T. (2020) An Acceleration Scheme for Deep Learning-Based BSDE Solver Using Weak Expansions. International Journal of Financial Engineering, 7, Article ID: 2050012. https://doi.org/10.1142/S2424786320500127

  16. 16. Øksendal, B. (2003) Stochastic Differential Equations. Springer, Berlin, 21-74.

  17. 17. Goodfellow, I., Bengio, Y. and Courville, A. (2016) Deep Learning. The MIT Press, Cambridge, 151-153, 197-203, 306-310.

  18. 18. Saito, K. 深度学习入门: 基于Python的理论与实现[M]. 陆宇杰, 译. 北京: 人民邮电出版社, 2018: 121-162.

  19. 19. Tang, S. (2015) Dynamic Programming for General Linear Quadratic Optimal Stochastic Control with Random Coefficients. SIAM Journal on Control and Optimization, 53, 1082-1106. https://doi.org/10.1137/140979940

  20. 20. Tang, S. (2003) General Linear Quadratic Optimal Stochastic Control Problems with Random Coefficients: Linear Stochastic Hamilton Systems and Backward Stochastic Riccati Equations. SIAM Journal on Control and Optimization, 42, 53-75. https://doi.org/10.1137/S0363012901387550

  21. 21. Chang, H. and Rong, X. (2013) An Investment and Consumption Problem with CIR Interest Rate and Stochastic Volatility. Abstract and Applied Analysis, 2013, Article ID: 219397. https://doi.org/10.1155/2013/219397

  22. 22. 雷英杰. MATLAB遗传算法工具箱及应用[M]. 西安: 西安电子科技大学出版社, 2005.

  23. 23. Price, K.V., Storn, R., Lampinen, J.A., et al. (2011) Differential Evolution: A Practical Approach to Global Optimization with 48 Tabeles. Springer, Berlin.

  24. 24. Das, S. and Suganthan, P.N. (2011) Differential Evolution: A Survey of the State-of-the-Art. IEEE Transactions on Evolutionary Computation, 15, 4-31. https://doi.org/10.1109/TEVC.2010.2059031

  25. 25. Mckinney, W. 利用Python进行数据分析[M/OL]. 徐敬一, 译. 北京: 机械工业出版社, 2018. https://zh.1lib.tw/book/5422102/5e0803?signAll=1&ts=1826, 2022-01-19.

  26. 26. Idris, I., 张驭宇. Python数据分析基础教程: NumPy学习指南[M]. 第2版. 北京: 人民邮电出版社, 2014.

  27. 27. 李荣华, 刘播. 微分方程数值解法[M]. 北京: 高等教育出版社, 2009: 107-149.

  28. 28. Brigo, D. and Mercurio, F. (2006) Interest Rate Models—Theory and Practice: With Smile, Inflation and Credit. Springer-Verlag, Berlin.

附录

3.1节中5-维Riccati方程的参数设计

d = 5 m = 5 时,我们有 式中 σ ( t , x t ; v t ) d W t = i = 1 5 ( C i x t + D i v t ) d W t i

其中

C 1 = ( 0.1 0 0 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.02 ) , C 2 = ( 0.02 0 0 0 0 0 0.3 0 0 0 0 0 0.01 0 0 0 0 0 0.1 0 0 0 0 0 0 ) , C 3 = ( 0.1 0 0 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.03 ) ,

C 4 = ( 0.02 0 0 0 0 0 0.03 0 0 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0 ) , C 5 = ( 0.02 0 0 0 0 0 0.1 0 0 0 0 0 0.02 0 0 0 0 0 0.11 0 0 0 0 0 0.02 ) .

D 1 = ( 0 0 0 0 0 0 0.01 0 0 0 0 0 0.02 0 0 0 0 0 0 0 0 0 0 0 0.01 ) , D 2 = ( 0.03 0 0 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0 0 0 0 0 0 0 ) , D 3 = ( 0.01 0 0 0 0 0 0.01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) ,

D 4 = ( 0 0 0 0 0 0 0.02 0 0 0 0 0 0 0 0 0 0 0 0.02 0 0 0 0 0 0 ) , D 5 = ( 0.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02 0 0 0 0 0 0 ) .

NOTES

*通讯作者。

期刊菜单