背景
分岔可以根据它们发生在连续还是离散时间动力系统中进行划分。 这种区别很重要,因为离散时间动力系统(微分方程)可以表现出与其连续时间对应系统(微分方程)截然不同的行为。 例如,人口增长的逻辑模型。 当设置为连续时间时(例如人类世代重叠的种群),随着繁殖率的增加,种群会平稳增长。 然而,当在离散时间中设置时(具有非重叠世代的种群,例如昆虫),种群显示出跨参数值的动态范围,包括稳定点、稳定循环和混沌。
…
上图显示了鸡心脏细胞聚集体的自发跳动。 节拍之间的时间(节拍间间隔,IBI)可以是规则的一分钟(蓝色)和交替的下一分钟(绿色)。 这种动态的突然变化是由于一种称为倍周期分岔的离散时间分岔造成的。 深度学习能帮助我们预测从生理学到经济学等领域中存在的这些类型的分岔
方法
生成深度学习分类器的训练数据
深度学习分类器的架构和训练
理论模型
测试倍周期分岔的检测:使用具有加性高斯白噪声的心脏交替模型
D
n
+
1
=
(
1
−
α
M
n
+
1
)
(
A
+
B
1
+
e
−
(
I
n
−
C
)
/
D
)
+
σ
ϵ
n
M
n
+
1
=
e
−
I
n
/
τ
[
1
+
(
M
n
−
1
)
e
−
D
n
/
τ
]
I
n
=
T
−
D
n
\begin{aligned} & D_{n+1}=\left(1-\alpha M_{n+1}\right)\left(A+\frac{B}{1+e^{-\left(I_n-C\right) / D}}\right)+\sigma \epsilon_n \\ & M_{n+1}=e^{-I_n / \tau}\left[1+\left(M_n-1\right) e^{-D_n / \tau}\right] \\ & I_n=T-D_n \end{aligned}
Dn+1=(1−αMn+1)(A+1+e−(In−C)/DB)+σϵnMn+1=e−In/τ[1+(Mn−1)e−Dn/τ]In=T−Dn
测试 Neimark-Sacker 分叉的检测:使用了一个基于消费者情绪的简单商业周期模型,并带有加性高斯噪声
Y
t
=
a
+
(
b
−
d
)
Y
t
−
1
+
d
Y
t
−
2
+
c
Y
t
−
1
1
+
Exp
[
−
(
Y
t
−
1
−
Y
t
−
2
)
]
+
σ
ϵ
t
Y_t=a+(b-d) Y_{t-1}+d Y_{t-2}+\frac{c Y_{t-1}}{1+\operatorname{Exp}\left[-\left(Y_{t-1}-Y_{t-2}\right)\right]}+\sigma \epsilon_t
Yt=a+(b−d)Yt−1+dYt−2+1+Exp[−(Yt−1−Yt−2)]cYt−1+σϵt
测试折叠分叉的检测:使用带有 S 形收获项和加性高斯噪声的 Ricker 模型
x
t
+
1
=
x
t
e
r
(
1
−
x
t
/
k
)
−
F
x
t
2
x
t
2
+
h
2
+
σ
ϵ
t
x_{t+1}=x_t e^{r\left(1-x_t / k\right)}-F \frac{x_t^2}{x_t^2+h^2}+\sigma \epsilon_t
xt+1=xter(1−xt/k)−Fxt2+h2xt2+σϵt
测试跨临界分岔的检测:使用 Lotka-Volterra 模型的离散时间模拟
x
t
+
1
=
(
r
+
1
)
x
t
−
r
x
t
2
−
c
x
t
y
t
+
σ
ϵ
t
(
1
)
y
t
+
1
=
c
x
t
y
t
+
σ
ϵ
t
(
2
)
\begin{aligned} &x_{t+1}=(r+1) x_t-r x_t^2-c x_t y_t+\sigma \epsilon_t^{(1)}\\ &y_{t+1}=c x_t y_t+\sigma \epsilon_t^{(2)} \end{aligned}
xt+1=(r+1)xt−rxt2−cxtyt+σϵt(1)yt+1=cxtyt+σϵt(2)
测试干草叉分叉的检测:使用简化的离散洛伦兹系统
x
t
+
1
=
(
1
+
a
h
)
x
t
−
h
x
t
y
t
+
σ
ϵ
t
(
1
)
y
t
+
1
=
(
1
−
h
)
y
t
+
h
x
t
2
+
σ
ϵ
t
(
2
)
\begin{aligned} &x_{t+1}=(1+a h) x_t-h x_t y_t+\sigma \epsilon_t^{(1)}\\ &y_{t+1}=(1-h) y_t+h x_t^2+\sigma \epsilon_t^{(2)} \end{aligned}
xt+1=(1+ah)xt−hxtyt+σϵt(1)yt+1=(1−h)yt+hxt2+σϵt(2)
鸡胚心脏细胞聚集体实验
Python 库需求
- numpy
- pandas
- scikit-learn
- tensorflow
- pyarrow
- plotly