高阶完全非线性偏微分方程组的机器学习近似算法(笔记)

本文是对论文Machine learning approximation algorithms for high-dimensional fully nonlinear partial differential equations and second-order backward stochastic dierential equations的初步理解,仅作为笔记。读者切勿被误导。
该文提供的代码将在https://github.com/FanSmale/MFPDE中给出。

1. 引言

偏微分方程(partial differential equation, PDE)是金融、物理领域建模的基础。
有许多解非线性二维偏微分方程组(nonlinear parabalic PDEs) 的近似解法,其中有些依赖于PDE解的适当表示,如基于二阶后向随机微分方程组(second-order backward stochastic differential equations, 2BSDE)的概率表示。

2. 深度2BSDE方法

可参考文献[22-23].

2.1 完全非线性二阶偏微分方程组

  • d ∈ N = { 1 , 2 , 3 , …   } d \in \mathbb{N} = \{1, 2, 3, \dots\} dN={1,2,3,} 表示维度;
  • T ∈ ( 0 , ∞ ) T \in (0, \infty) T(0,)表示终止时间点;
  • u = ( u ( t , x ) ) ∈ C 1 , 2 ( [ 0 , T ] × R d , R ) u = (u(t, x)) \in C^{1, 2}([0, T] \times \mathbb{R}^d, \mathbb{R}) u=(u(t,x))C1,2([0,T]×Rd,R);
    • 其中 t ∈ [ 0 , T ] t \in [0, T] t[0,T] 表示时间点;
    • x ∈ R d x \in \mathbb{R}^d xRd表示 d d d 维实数向量, 它与时间 t t t相关, 可以写成 x ( t ) x(t) x(t);
    • u ∈ R u \in \mathbb{R} uR.
    • 注意: C C C表示可导; C 1 , 2 C^{1, 2} C1,2 表示对时间 t t t 一阶可导, 对空间 x x x 二阶可导.
  • f ∈ C ( [ 0 , T ] × R d × R × R d × R d × d , R ) f \in C([0, T] \times \mathbb{R}^{d} \times \mathbb{R} \times \mathbb{R}^d \times \mathbb{R}^{d \times d}, \mathbb{R}) fC([0,T]×Rd×R×Rd×Rd×d,R) 函数有5个参数, 值域为实数;
  • g ∈ C ( R d , R ) g \in C(\mathbb{R}^d, \mathbb{R}) gC(Rd,R)函数定义域为 d d d 维向量, 值域为实数;
  • 假设对任意 t ∈ [ 0 , T ) t \in [0, T) t[0,T), x ∈ R d x \in \mathbb{R}^d xRd 满足 u ( T , x ) = g ( x ) u(T, x) = g(x) u(T,x)=g(x) (注意: 从这里可以看出是终值问题, 即根据时间 T T T 的数据, 反推之前的数据);
  • u u u t t t的偏微分满足
    ∂ u ∂ t ( t , x ) = f ( t , x , u ( t , x ) , ( ∇ x u ) ( t , x ) , ( H e s s x u ) ( t , x ) ) (1) \frac{\partial u}{\partial t}(t, x) = f(t, x, u(t, x), (\nabla_x u)(t, x), (\mathrm{Hess}_x u)(t, x)) \tag{1} tu(t,x)=f(t,x,u(t,x),(xu)(t,x),(Hessxu)(t,x))(1)
  • 问题及回答:
    • 为什么把偏微分的函数做成5个参数?是为了线性吗?猜测:相当于程序设计中的函数封装。由于直接求偏微分,表达式太长了,就先把函数 ( ∇ x u ) ( t , x ) (\nabla_x u)(t, x) (xu)(t,x) ( H e s s x u ) ( t , x ) (\mathrm{Hess}_x u)(t, x) (Hessxu)(t,x)写出来。
    • ( ∇ x u ) ( t , x ) (\nabla_x u)(t, x) (xu)(t,x)是什么函数?回答:梯度,即 u ( t , x ) u(t, x) u(t,x)对于向量 x x x的偏导。
    • ( H e s s x u ) ( t , x ) (\mathrm{Hess}_x u)(t, x) (Hessxu)(t,x)是什么函数?海森矩阵相关?回答:先对 u ( t , x ) u(t, x) u(t,x)求向量 x x x的偏导,获得 d d d维向量;再对该向量求向量 x x x的偏导,获得 d × d d \times d d×d的矩阵。
    • u ( t , x ) u(t, x) u(t,x) 关于 t t t的偏微分,为什么要用它关于 x x x的一阶、二阶偏微分来表示?回答: 因为 x = x ( t ) x = x(t) x=x(t), 是关于 t t t 的函数。
    • 函数 g g g在下一节才用到,这里为什么出现?回答: 表示终值的函数。

2.2 完全非线性二阶偏微分方程组与2BSDE的联系

  • ( Ω , F , P ) (\Omega, \mathcal{F}, \mathbb{P}) (Ω,F,P) 为一个概率空间;
  • W : [ 0 , T ] × Ω → R d W: [0, T] \times \Omega \rightarrow \mathbb{R}^d W:[0,T]×ΩRd 标准的布朗运动;
  • F = ( F t ) t ∈ [ 0 , T ] \mathbb{F} = (\mathbb{F}_t)_{t \in [0, T]} F=(Ft)t[0,T] 是由 W W W 产生的正则滤波(normal filtration);
  • Y : [ 0 , T ] × Ω → R Y: [0, T] \times \Omega \rightarrow \mathbb{R} Y:[0,T]×ΩR;
  • Z : [ 0 , T ] × Ω → R d Z: [0, T] \times \Omega \rightarrow \mathbb{R}^d Z:[0,T]×ΩRd;
  • Γ : [ 0 , T ] × Ω → R d × d \Gamma: [0, T] \times \Omega \rightarrow \mathbb{R}^{d \times d} Γ:[0,T]×ΩRd×d;
  • A : [ 0 , T ] × Ω → R d A: [0, T] \times \Omega \rightarrow \mathbb{R}^d A:[0,T]×ΩRd;
  • Y t = g ( ξ + W T ) − ∫ t T ( f ( s , ξ + W s , Y s , Z s , Γ s ) + 1 2 T r a c e ( Γ s ) ) d s − ∫ t T ⟨ Z s , d W s ⟩ R d (2) \begin{array}{ll}Y_t = & g(\xi + W_T) - \int_{t}^T (f(s, \xi + W_s, Y_s, Z_s, \Gamma_s) + \frac{1}{2} \mathrm{Trace}(\Gamma_s)) \mathrm{d}s \\ & - \int_{t}^T \langle Z_s, \mathrm{d} W_s \rangle_{\mathbb{R}^d}\end{array} \tag{2} Yt=g(ξ+WT)tT(f(s,ξ+Ws,Ys,Zs,Γs)+21Trace(Γs))dstTZs,dWsRd(2)
  • Z t = Z 0 + ∫ 0 t A s d s + ∫ 0 t Γ s d W s (3) Z_t = Z_0 + \int_{0}^t A_s \mathrm{d}s + \int_{0}^t \Gamma_s \mathrm{d}W_s \tag{3} Zt=Z0+0tAsds+0tΓsdWs(3)
  • 注: Y t Y_t Yt的计算关注 [ t , T ] [t, T] [t,T], 而 Z t Z_t Zt的计算关注 [ 0 , t ] [0, t] [0,t].
    在合适的平滑与正则假设下,式(1)与式(2)(3)存在如下关联:
  • Y t = u ( t , ξ + W t ) ∈ R (4.1) Y_t = u(t, \xi + W_t) \in \mathbb{R} \tag{4.1} Yt=u(t,ξ+Wt)R(4.1)
  • 注: Y t Y_t Yt 与式(1)的第3个参数对应, 即原函数。不知道为什么把参数中的随机事件 ω ∈ Ω \omega \in \Omega ωΩ省略了;
  • Z t = ( ∇ x u ) ( t , ξ + W t ) ∈ R d (4.2) Z_t = (\nabla_x u)(t, \xi + W_t) \in \mathbb{R}^d \tag{4.2} Zt=(xu)(t,ξ+Wt)Rd(4.2)
  • 注: Z t Z_t Zt 与式(1)的第4个参数对应;
  • Γ t = ( H e s s x u ) ( t , ξ + W t ) ∈ R d × d (5) \Gamma_t = (\mathrm{Hess}_x u)(t, \xi + W_t) \in \mathbb{R}^{d \times d} \tag{5} Γt=(Hessxu)(t,ξ+Wt)Rd×d(5)
  • 注: Γ t \Gamma_t Γt 与式(1)的第5个参数对应;
  • A t = ( ∂ ∂ t ∇ x u ) ( t , ξ + W t ) + 1 2 ( ∇ x Δ x u ) ( t , ξ + W t ) ∈ R d (6) A_t = (\frac{\partial}{\partial t} \nabla_x u)(t, \xi + W_t) + \frac{1}{2} (\nabla_x \Delta_x u)(t, \xi + W_t) \in \mathbb{R}^d \tag{6} At=(txu)(t,ξ+Wt)+21(xΔxu)(t,ξ+Wt)Rd(6)

2.3 合并PDE与2BSDE

由式 (2)(3), 对于任意 0 ≤ τ 1 ≤ τ 2 ≤ T 0 \leq \tau_1 \leq \tau_2 \leq T 0τ1τ2T,
Y τ 2 = Y τ 1 + ∫ τ 1 τ 2 ( f ( s , ξ + W s , Y s , Z s , Γ s ) + 1 2 T r a c e ( Γ s ) ) d s + ∫ τ 1 τ 2 ⟨ Z s , d W s ⟩ R d (7) \begin{array}{ll}Y_{\tau_2} = & Y_{\tau_1} + \int_{\tau_1}^{\tau_2} \left(f(s, \xi + W_s, Y_s, Z_s, \Gamma_s) + \frac{1}{2} \rm{Trace}(\Gamma_s)\right)\rm{d} s\\ & + \int_{\tau_1}^{\tau_2} \langle Z_s, \rm{d} W_s \rangle_{\mathbb{R}^d} \end{array}\tag{7} Yτ2=Yτ1+τ1τ2(f(s,ξ+Ws,Ys,Zs,Γs)+21Trace(Γs))ds+τ1τ2Zs,dWsRd(7)

Z τ 2 = Z τ 1 + ∫ τ 1 τ 2 A s d s + ∫ τ 1 τ 2 Γ s d W s (8) Z_{\tau_2} = Z_{\tau_1} + \int_{\tau_1}^{\tau_2} A_s \mathrm{d}s + \int_{\tau_1}^{\tau_2} \Gamma_s \mathrm{d} W_s \tag{8} Zτ2=Zτ1+τ1τ2Asds+τ1τ2ΓsdWs(8)

  • 问题 :
    • 为什么(2)式用了两个减号,而(7)式是两个加号?回答:把 τ 1 \tau_1 τ1 τ 2 \tau_2 τ2 直接代入(2)式,再相减,可得(7)式。
      将(5)(6)代入(7)(8)可得
      Y τ 2 = Y τ 1 + ∫ τ 1 τ 2 ⟨ Z s , d W s ⟩ R d + ∫ τ 1 τ 2 ( f ( s , ξ + W s , Y s , Z s , ( H e s s x u ) ( s , ξ + W s ) ) + 1 2 T r a c e ( ( H e s s x u ) ( s , ξ + W s ) ) ) d s (9) \begin{array}{ll}Y_{\tau_2} = & Y_{\tau_1} + \int_{\tau_1}^{\tau_2} \langle Z_s, \mathrm{d} W_s \rangle_{\mathbb{R}^d}\\ & + \int_{\tau_1}^{\tau_2} \left(f(s, \xi + W_s, Y_s, Z_s, (\mathrm{Hess}_x u)(s, \xi + W_s)) + \frac{1}{2} \rm{Trace}\left((\mathrm{Hess}_x u)(s, \xi + W_s)\right)\right)\mathrm{d} s\end{array} \tag{9} Yτ2=Yτ1+τ1τ2Zs,dWsRd+τ1τ2(f(s,ξ+Ws,Ys,Zs,(Hessxu)(s,ξ+Ws))+21Trace((Hessxu)(s,ξ+Ws)))ds(9)

      Z τ 2 = Z τ 1 + ∫ τ 1 τ 2 ( ( ∂ ∂ t ∇ x u ) ( s , ξ + W s ) + 1 2 ( ∇ x Δ x u ) ( s , ξ + W s ) ) d s + ∫ τ 1 τ 2 ( H e s s x u ) ( s , ξ + W s ) d W s (10) \begin{array}{ll}Z_{\tau_2} = & Z_{\tau_1} + \int_{\tau_1}^{\tau_2} \left((\frac{\partial}{\partial t} \nabla_x u)(s, \xi + W_s) + \frac{1}{2} (\nabla_x \Delta_x u)(s, \xi + W_s) \right) \mathrm{d}s \\& + \int_{\tau_1}^{\tau_2} (\mathrm{Hess}_x u)(s, \xi + W_s) \mathrm{d} W_s\end{array} \tag{10} Zτ2=Zτ1+τ1τ2((txu)(s,ξ+Ws)+21(xΔxu)(s,ξ+Ws))ds+τ1τ2(Hessxu)(s,ξ+Ws)dWs(10)

附录A. 程序

  • 输入:
    • 函数 f f f: 34–35 行
    • 函数 g g g: 38–39 行
    • 居然没有 d d d (它是常量)
  • 输出:
    • 预测值?
  • 网络
    • 单层: 54–68 行;
    • 单时间片网络(2个隐藏层): 42–52行;
    • 计算 Gamma (113行) 和 A (117行)的网络是分离的。
  • 训练过程
    • 网络网络训练: 155–171 行
  • 关于总体结构
    • 不同时间片的网络并未串联。从113和117行可以看出,网络的输入均为 x x x (即 X)。但从 x x x 的更新(118行)仅与 d W \mathrm{d}W dW 有关,而 d W \mathrm{d}W dW 是一个随机数(119行)。从这个角度来看,该算法没未用到"深度”网络。
    • Y Y Y 的更新(108行)与 x x x 的更新(118行)是一个渐变(迭代)的过程,考虑了每次的布朗运动 ( d W \mathrm{d}W dW)。
    • 相比而言,函数 g g g 的计算(125行)仅考虑了终止时间 ( T T T 时刻) 的 x x x 值。

疑问

  • 105行至125行如果是网络搭建的话,获得的数据存在网络的什么地方?节点上吗?
  • 157行和158行,调整的是各网络权重吗?
  • 这种固定的网络结构合适吗?
  • 不给训练数据,而仅仅根据布朗运动进行数据调整合适吗?最后的结果如何印证?
  • 155 行之后, Y0 的值在158行和161行被改变,为什么? Y0只是一个标量。

To be continued …

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值