论文解读:Seven-League Scheme

论文解读

【The Seven-League Scheme Deep Learning for Large Time Step Monte Carlo Simulations of Stochastic Differential Equations】


针对 SDE
d Y ( t ) = a ( t , Y ( t ) , θ ) d t + b ( t , Y ( t ) , θ ) d W ( t ) , 0 ≤ t ≤ T dY(t)=a(t,Y(t),\theta)dt+b(t,Y(t),\theta)dW(t),\quad 0\leq t\leq T dY(t)=a(t,Y(t),θ)dt+b(t,Y(t),θ)dW(t),0tT

注意 θ \theta θ 表示 SDE 本身的参数。


7L-Scheme

Y ( t i + Δ t ) ∣ Y ( t i ) ≈ g m ( X ) = ∑ j = 0 m − 1 α ^ j ( Y ^ i , t i , t i + 1 , θ ) X j Y(t_i+\Delta t)|Y(t_i)\approx g_m(X)=\sum_{j=0}^{m-1}\hat{\alpha}_j(\hat{Y}_i,t_i,t_{i+1},\theta)X^j Y(ti+Δt)Y(ti)gm(X)=j=0m1α^j(Y^i,ti,ti+1,θ)Xj,其中 Δ t = t i + 1 − t i \Delta t=t_{i+1}-t_i Δt=ti+1ti,此时如果使用想得到映射关系,有两种神经网络训练方式:(1)训练多项式系数 α ^ j \hat{\alpha}_j α^j;(2)直接训练配置点 y j y_j yj,再利用多项式插值公式推知多项式系数。

下面介绍如何训练配置点 y j y_j yj:我们假定配置点对 ( x j , y j ) (x_j,y_j) (xj,yj) x j x_j xj 已经选取好,具体的选取规则在后文中讨论,而目标分布 Y i + 1 ∣ Y ^ i Y_{i+1}|\hat{Y}_i Yi+1Y^i 的对应配置点 y j ( t i + 1 ) y_j(t_{i+1}) yj(ti+1) 是我们需要获得的,在获得配置点对(使用SCMC 方法)后,我们可以将不同时刻、不同条件下配置点的关系的映射关系写作

y j ( t i + 1 ) ∣ Y ^ i = H j ( Y ^ i , t i , t i + 1 − t i , θ ) y_j(t_{i+1})|\hat{Y}_i=H_j(\hat{Y}_i,t_i,t_{i+1}-t_i,\theta) yj(ti+1)Y^i=Hj(Y^i,ti,ti+1ti,θ)

注意到,我们这里并不将配置点 x j x_j xj 作为自变量放入映射关系,而是将不同配置点 x j x_j xj 处的映射关系 H j H_j Hj 分开训练,这意味着,所有用于训练 H j H_j Hj 的配置点对应当形如 ( x j , y j ( t ) ∣ Y ^ t ′ ) (x_j,y_j(t)|\hat{Y}_{t'}) (xj,yj(t)Y^t)​.

具体流程如下:

Step 1【利用高精度的离散网络生成高精度样本】

对于随机过程 Y ( τ ) , τ ∈ [ 0 , τ m a x ] Y(\tau),\tau\in[0,\tau_{max}] Y(τ),τ[0,τmax],设置高精度的离散时间网格 0 < τ 1 < ⋯ < τ N ≤ τ m a x 0<\tau_1<\cdots<\tau_N\leq\tau_{max} 0<τ1<<τNτmax,假设我们生成了 M S M_S MS 条离散路径,那么意味着我们对于各种不同的时间间隔(例如 2 Δ τ , 3 Δ τ 2\Delta\tau,3\Delta\tau τ,τ)都有了 M S M_S MS 对配置点(这里要求在第 j j j 条离散路径上生成随机变量时都使用该条路径对应的配置点 x j x_j xj),即我们得到的各时间点处的配置点 y j y_j yj 应当形如
y ^ j ( τ i ) = F Y ^ i − 1 ( F X ( x j ) ) \hat{y}_j(\tau_i)=F_{\hat{Y}_i}^{-1}(F_X(x_j)) y^j(τi)=FY^i1(FX(xj))

使用 F Y i ^ F_{\hat{Y_i}} FYi^ 而非 F Y i F_{Y_i} FYi 的原因是我们无法获得分布函数的解析形式,只能通过经验分布函数近似。

在已经生成 N S N_S NS 条路径的基础上,可以用内层嵌套 MC 模拟生成条件样本点,我们将第 j j j 条路径上内层嵌套所使用的第 k k k 个配置点记作 x k ∣ j x_{k|j} xkj​(事实上,我们最后使用的是和上面过程相同的配置点),于是得到的配置点形如
y ^ k ∣ j ( τ i + 1 ) : = y ^ k ( τ i + 1 ) ∣ y ^ j ( τ i ) = F Y ^ i + 1 ∣ Y ^ i = y ^ j ( τ i ) − 1 ( F X ( x k ∣ j ) ) \hat{y}_{k|j}(\tau_{i+1}):=\hat{y}_k(\tau_{i+1})|\hat{y}_j(\tau_i)=F^{-1}_{\hat{Y}_{i+1}|\hat{Y}_i=\hat{y}_j(\tau_i)}(F_X(x_{k|j})) y^kj(τi+1):=y^k(τi+1)y^j(τi)=FY^i+1Y^i=y^j(τi)1(FX(xkj))

上述过程中尚未完成的部分:分布函数的近似如何解决?

Step 2【将高精度样本用于神经网络训练】

为了方便说明,按照论文中所说,我们标明前面提到的四种配置点:

  • x j x_j xj: the original collocation points
  • x ^ j \hat{x}_j x^j: original conditional collocation points
  • y ^ j \hat{y}_j y^j: the marginal SC points
  • y ^ k ∣ ⋅ \hat{y}_k|\cdot y^k: the conditional SC points

注意到两点:(1) x ^ j \hat{x}_j x^j 即为前面提到的 x k ∣ j x_{k|j} xkj,这里事实上将 x k ∣ j x_{k|j} xkj 中的 j j j 省略掉,原因正是因为我们将把 x k ∣ j x_{k|j} xkj 对应的配置点对 ( x k ∣ j , y ^ k ∣ j ( τ i + 1 ) ) (x_{k|j},\hat{y}_{k|j}(\tau_{i+1})) (xkj,y^kj(τi+1)) 都作为 H k H_k Hk 的输入,而前面我们已经提到过, H k H_k Hk 描述的是不同时间间隔、条件、参数下与 x k x_k xk 对应的配置点 y y y 之间的映射关系,因此用于 H k H_k Hk 输入的配置点对都应是 x k x_k xk 生成的;(2)事实上,the marginal SC points 可以视作以 Y 0 Y_0 Y0 为条件的 conditional SC points.

综合上述两点,四种配置点其实本质上只是两种(作为四种也一样,只是在训练时多训练一组 H j ( Y 0 , ⋯   ) H_j(Y_0,\cdots) Hj(Y0,)), x j x_j xj y j ∣ ⋅ , j = 1 , 2 , ⋯   , m y_j|\cdot,j=1,2,\cdots,m yj,j=1,2,,m, 在此基础上,我们将所有 ( x j , y j ∣ ⋅ ) (x_j,y_j|\cdot) (xj,yj) 的点对作为输入训练 H j H_j Hj,得到近似 H ^ j , j = 1 , 2 , ⋯   , m \hat{H}_j,j=1,2,\cdots,m H^j,j=1,2,,m.

注意 H ^ j ( Y ^ i , t i , t i + 1 − t i , θ ) \hat{H}_j(\hat{Y}_i,t_i,t_{i+1}-t_i,\theta) H^j(Y^i,ti,ti+1ti,θ) 的自变量,得到了 H ^ j \hat{H}_j H^j 意味着,我们可以在任意条件、任意时间间隔、任意参数下(当然是在良定范围内),生成配置点 x j x_j xj 对应的 y y y,这是神经网络训练的意义,但是注意到,我们此时仍然只能生成所需分布的配置点 x j x_j xj 对应的样本,距离目标“生成所需分布的样本”还差一步。

Step 3【多项式插值得到 x x x y y y 的映射关系】

使用 SCMC 的过程主要分为两步:(1)生成所需分布的配置点对;(2)利用多项式插值等方法找到映射关系。Step 1.2 的作用是,使我们能够在任意条件分布下生成配置点对(解放了对条件 Y ^ i \hat{Y}_i Y^i 和时间 t i , Δ t t_i,\Delta t ti,Δt​ 的限制),那么在这一步我们将完成多项式插值。

我们希望在一些其他的时间间隔上得到样本,比如在更大步长的等间距时间 t i = i ⋅ T / N t_i=i\cdot T/N ti=iT/N 上生成样本路径。

Step 3.1【解放条件、时间】

假定已经得到了 t i t_i ti 时刻的某个样本 Y ^ i \hat{Y}_i Y^i,我们可以通过 H ^ j , j = 1 , 2 , ⋯   , m \hat{H}_j, j=1,2,\cdots,m H^j,j=1,2,,m 生成 x j , j = 1 , ⋯   , m x_j,j=1,\cdots,m xj,j=1,,m 分别对应的 y j ∣ ⋅ y_j|\cdot yj, 即
y ^ j ( t i + 1 ) ∣ Y ^ i = H ^ j ( Y ^ i , t i , t i + 1 − t i , θ ) , j = 1 , 2 , ⋯   , m \hat{y}_j(t_{i+1})|\hat{Y}_i=\hat{H}_j(\hat{Y}_i,t_i,t_{i+1}-t_i,\theta),j=1,2,\cdots,m y^j(ti+1)Y^i=H^j(Y^i,ti,ti+1ti,θ),j=1,2,,m

Step 3.2【解放配置点】

此时我们有条件分布 Y ( t i + 1 ∣ Y ^ i ) Y(t_{i+1}|\hat{Y}_i) Y(ti+1Y^i) m m m 个配置点对 ( x j , y ^ j ( t i + 1 ) ∣ Y ^ i ) (x_j,\hat{y}_j(t_{i+1})|\hat{Y}_i) (xj,y^j(ti+1)Y^i),基于此使用多项式插值找到 x x x y y y 之间的映射关系。可以使用如 Lagrange 插值公式等多项式插值技术,或直接用待定系数法转化为线性方程组求解。最终我们会得到映射关系 g m g_m gm m m m 表示我们用 m m m 个点对生成的多项式插值函数),此时我们可以解放 x j x_j xj,即我们可以生成该条件分布的任意样本:
Y ^ i + 1 ∣ Y ^ i = g m ( X ^ i + 1 ) \hat{Y}_{i+1}|\hat{Y}_i=g_m(\hat{X}_{i+1}) Y^i+1Y^i=gm(X^i+1)

x j x_j xj 解放为 X X X 的任意样本 X ^ i + 1 \hat{X}_{i+1} X^i+1.

至此,我们完成了在 t i + 1 t_{i+1} ti+1 时刻生成样本的工作,接下来不断往后推移可以得到所需的样本路径。


7L-CDC: An efficient large time step scheme, Compression-Decompression Variant

在 Step 3 中,我们在每个时刻的每个条件样本 Y ^ i \hat{Y}_i Y^i 上应用训练出的 H ^ j \hat{H}_j H^j 去生成 m m m 个配置点对,这样的计算成本可能较大,特别是在生成路径数量较多的时候,比如生成 10000 条路径时使用 H ^ j \hat{H}_j H^j 的次数是生成 100 条路径时的 100 次。我们希望尽可能少的使用 H ^ j \hat{H}_j H^j 去计算,特别地,与生成路径条数无关,而更多地用多项式函数替代它。这给出了 compression-decompression (CDC) variant,简记为 7L-CDC scheme.

注意我们只针对 online prediction phase,即神经网络已经训练完成后,简化用训练好的映射函数去计算的过程,offline training phase 没有任何变化。

在本节中,我们将 original collocation points 和 original conditional collocation points 作区分,因为这涉及到计算量大小。

M S M_S MS 表示生成外层路径的数量, M C M_C MC 表示嵌套 MC 时内层模拟的次数,于是,在每个时刻 t i t_i ti,我们会根据 M S M_S MS 个original SC points x 1 , ⋯   , x M S x_1,\cdots,x_{M_S} x1,,xMS生成 M S M_S MS 个 marginal SC points y ^ 1 ( t i ) ∣ Y 0 , ⋯   , y ^ M S ( t i ) ∣ Y 0 \hat{y}_1(t_i)|Y_0,\cdots,\hat{y}_{M_S}(t_i)|Y_0 y^1(ti)Y0,,y^MS(ti)Y0,在每个 marginal SC point 上,根据 M C M_C MC 个 original conditional collocation points x ^ 1 , ⋯   , x ^ M C \hat{x}_1,\cdots,\hat{x}_{M_C} x^1,,x^MC 生成 M C M_C MC 个 conditional SC points y ^ 1 ( t i + 1 ) ∣ y ^ j ( t i ) , ⋯   , y ^ M C ( t i + 1 ) ∣ y ^ j ( t i ) \hat{y}_1(t_{i+1})|\hat{y}_j(t_i),\cdots,\hat{y}_{M_C}(t_{i+1})|\hat{y}_j(t_i) y^1(ti+1)y^j(ti),,y^MC(ti+1)y^j(ti). 为了方便表示,将 t i t_i ti 时刻需要生成的样本点写成矩阵 C ^ i \hat{C}_i C^i
C ^ i = ( − − x ^ 1 x ^ 2 ⋯ x ^ M C x 1 y ^ 1 ( t i ) ∣ Y 0 y ^ 1 ( t i + 1 ) ∣ y ^ 1 ( t i ) y ^ 2 ( t i + 1 ) ∣ y ^ 1 ( t i ) ⋯ y ^ M C ( t i + 1 ) ∣ y ^ 1 ( t i ) x 2 y ^ 2 ( t i ) ∣ Y 0 y ^ 1 ( t i + 1 ) ∣ y ^ 2 ( t i ) y ^ 2 ( t i + 1 ) ∣ y ^ 2 ( t i ) ⋯ y ^ M C ( t i + 1 ) ∣ y ^ 2 ( t i ) ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ x M S y ^ M S ( t i ) ∣ Y 0 y ^ 1 ( t i + 1 ) ∣ y ^ M S ( t i ) y ^ 2 ( t i + 1 ) ∣ y ^ M S ( t i ) ⋯ y ^ M C ( t i + 1 ) ∣ y ^ M S ( t i ) ) ( M S + 1 ) × ( M C + 2 ) \hat{C}_i=\begin{pmatrix} -&-&\hat{x}_1&\hat{x}_2&\cdots&\hat{x}_{M_C}\\ x_1&\hat{y}_1(t_i)|Y_0&\hat{y}_1(t_{i+1})|\hat{y}_1(t_i)&\hat{y}_2(t_{i+1})|\hat{y}_1(t_i)&\cdots&\hat{y}_{M_C}(t_{i+1})|\hat{y}_1(t_i)\\ x_2&\hat{y}_2(t_i)|Y_0&\hat{y}_1(t_{i+1})|\hat{y}_2(t_i)&\hat{y}_2(t_{i+1})|\hat{y}_2(t_i)&\cdots&\hat{y}_{M_C}(t_{i+1})|\hat{y}_2(t_i)\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ x_{M_S}&\hat{y}_{M_S}(t_i)|Y_0&\hat{y}_1(t_{i+1})|\hat{y}_{M_S}(t_i)&\hat{y}_2(t_{i+1})|\hat{y}_{M_S}(t_i)&\cdots&\hat{y}_{M_C}(t_{i+1})|\hat{y}_{M_S}(t_i) \end{pmatrix}_{(M_S+1)\times(M_C+2)} C^i= x1x2xMSy^1(ti)Y0y^2(ti)Y0y^MS(ti)Y0x^1y^1(ti+1)y^1(ti)y^1(ti+1)y^2(ti)y^1(ti+1)y^MS(ti)x^2y^2(ti+1)y^1(ti)y^2(ti+1)y^2(ti)y^2(ti+1)y^MS(ti)x^MCy^MC(ti+1)y^1(ti)y^MC(ti+1)y^2(ti)y^MC(ti+1)y^MS(ti) (MS+1)×(MC+2)

我们已经说过,要将两种配置点对(条件与非条件)分开处理,相应的,我们在训练时也将训练两组神经网络,分别记为 H ^ j ( M C ) , j = 1 , ⋯   , M C \hat{H}_j^{(M_C)},j=1,\cdots,M_C H^j(MC),j=1,,MC H ^ j M S , j = 1 , ⋯   , M S \hat{H}_j^{M_S},j=1,\cdots,M_S H^jMS,j=1,,MS,具体地, C ^ i \hat{C}_i C^i 中的点将如下生成:

c i , j , k : = y ^ k ( t i + 1 ) ∣ y ^ j ( t i ) = H ^ k ( M C ) ( y ^ j ( t i ) , t i , t i + 1 − t i , θ ) y ^ j ( t i ) ∣ Y 0 = H ^ j ( M s ) ( Y 0 , t 0 , t i − t 0 , θ ) c_{i,j,k}:=\hat{y}_k(t_{i+1})|\hat{y}_j(t_i)=\hat{H}_k^{(M_C)}(\hat{y}_j(t_i),t_i,t_{i+1}-t_i,\theta)\\ \hat{y}_j(t_i)|Y_0=\hat{H}_j^{(M_s)}(Y_0,t_0,t_i-t_0,\theta) ci,j,k:=y^k(ti+1)y^j(ti)=H^k(MC)(y^j(ti),ti,ti+1ti,θ)y^j(ti)Y0=H^j(Ms)(Y0,t0,tit0,θ)

在 CDC 算法中,我们主要替换掉了原算法的 Step 3.1,将利用 H ^ j \hat{H}_j H^j 生成所有需要的conditional SC points 的过程,替换为,利用 H ^ j \hat{H}_j H^j 生成 marginal SC point 条件下的 conditional SC points,再使用多项式插值解放条件。

即利用相同 original conditional collocation point( x j ^ \hat{x_j} xj^)对应的 M S M_S MS 个点对 { ( y ^ 1 ( t i ) ∣ Y 0 , y ^ k ( t i + 1 ) ∣ y ^ 1 ( t i ) ) , ( y ^ 2 ( t i ) ∣ Y 0 , y ^ k ( t i + 1 ) ∣ y ^ 2 ( t i ) ) , ⋯   , ( y ^ M S ( t i ) ∣ Y 0 , y k ^ ( t i + 1 ) ∣ y ^ M S ( t i ) ) } \{(\hat{y}_1(t_i)|Y_0,\hat{y}_k(t_{i+1})|\hat{y}_1(t_i)),(\hat{y}_2(t_i)|Y_0,\hat{y}_k(t_{i+1})|\hat{y}_2(t_i)),\cdots,(\hat{y}_{M_S}(t_i)|Y_0,\hat{y_k}(t_{i+1})|\hat{y}_{M_S}(t_i))\} {(y^1(ti)Y0,y^k(ti+1)y^1(ti)),(y^2(ti)Y0,y^k(ti+1)y^2(ti)),,(y^MS(ti)Y0,yk^(ti+1)y^MS(ti))} 生成多项式插值函数 g k , M S g_{k,M_S} gk,MS,其中 k k k 表示第 k k k 个 original conditional collocation point( x ^ k \hat{x}_k x^k), M S M_S MS 仍然表示插值点个数。得到 g k , M S g_{k,M_S} gk,MS 后,我们就可以解放条件,生成任意条件下的样本,
y ^ k ∗ ( t i + 1 ) ∣ Y ^ i ∗ = g ^ k , M S ( Y ^ i ∗ ) , k = 1 , 2 , ⋯   , M C \hat{y}_k^*(t_{i+1})|\hat{Y}_i^*=\hat{g}_{k,M_S}(\hat{Y}_i^*),\quad k=1,2,\cdots,M_C y^k(ti+1)Y^i=g^k,MS(Y^i),k=1,2,,MC

在上面过程中已经完成了对条件的解放,类似 Step 3.3,我们继续用多项式插值完成对配置点的解放,利用点对 { ( x ^ 1 , y ^ 1 ( t i + 1 ) ∣ Y ^ i ∗ ) , ( x ^ 2 , y ^ 2 ∗ ( t i + 1 ) ∣ Y ^ i ∗ ) , ⋯   , ( x ^ M C , y ^ M C ) ( t i + 1 ∣ Y ^ i ∗ ) } \{(\hat{x}_1,\hat{y}_1(t_{i+1})|\hat{Y}_i^*),(\hat{x}_2,\hat{y}_2^*(t_{i+1})|\hat{Y}_i^*),\cdots,(\hat{x}_{M_C},\hat{y}_{M_C})(t_{i+1}|\hat{Y}_i^*)\} {(x^1,y^1(ti+1)Y^i),(x^2,y^2(ti+1)Y^i),,(x^MC,y^MC)(ti+1Y^i)},作多项式插值,得到 g M S , M C g_{MS,MC} gMS,MC,至此,可以用 g M S , M C g_{M_S,M_C} gMS,MC 生成下一时间的样本,
Y ^ i + 1 ∗ ∣ Y ^ i ∗ = g M S , M C ( X ^ i + 1 ) \hat{Y}_{i+1}^*|\hat{Y}_i^*=g_{M_S,M_C}(\hat{X}_{i+1}) Y^i+1Y^i=gMS,MC(X^i+1)


算法对比

下面我们计算在 online prediction phase,原算法和 7L-CDC 算法的计算复杂度:再次说明记号, N N N 表示时间间隔数, M M M 表示所需模拟路径数, M S M_S MS 表示 original collocation points 个数, M C M_C MC 表示 original conditional collocation points 个数。

则在 Step 3.1 阶段,在 t i t_i ti 时间处,原算法需要对每条路径上的样本生成 M C M_C MC 个 conditional SC points,在拟合出多项式函数后,再生成一个样本,因此,用 H ^ \hat{H} H^ 计算 M × M C M\times M_C M×MC 个样本,用多项式计算 M M M 个样本; 7L-CDC 算法则需要用 H ^ \hat{H} H^ 计算 M C × M S M_C\times M_S MC×MS 个 conditional SC points 和 M S M_S MS 个 marginal SC points,然后用拟合出的多项式函数为每条路径计算 M C M_C MC 个配置点,再次拟合后再计算一个样本,因此,共用 H ^ \hat{H} H^ 计算 M C × M S + M S M_C\times M_S+M_S MC×MS+MS 个样本,用多项式计算 M × M C + M M\times M_C+M M×MC+M 个样本。
分别将 和多项式插值函数计算的时间记为 t A t_A tA t I t_I tI,则原算法每时间步耗时 t A M M C + t I M t_AMM_C+t_IM tAMMC+tIM,7L-CDC 算法每步耗时 t A ( M C M S + M S ) + t I ( M M C + M ) t_A(M_CM_S+M_S)+t_I(MM_C+M) tA(MCMS+MS)+tI(MMC+M),则耗时比例为
γ = t 7 L − C D C t 7 L ≈ t A M S + t I M t A M = t I t A + M S M \gamma=\dfrac{t_{7L-CDC}}{t_{7L}}\approx\dfrac{t_AM_S+t_IM}{t_AM}=\dfrac{t_I}{t_A}+\dfrac{M_S}{M} γ=t7Lt7LCDCtAMtAMS+tIM=tAtI+MMS

在一般情形下, M > > M S M>>M_S M>>MS,因此我们可以近似的将两者的时间效率比例确定为 t I t A \dfrac{t_I}{t_A} tAtI,即使用多项式插值函数和神经网络函数计算样本的耗时比例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值