对于一类具有随机变迭代长度的问题,如功能性电刺激,用户可以提前结束实验过程,论文也是将离散矩阵延迟指数函数引入到状态方程中。
论文中关于迭代长度有三个定义值:
Z
T
a
Z^Ta
ZTa 为最小的实验长度,
Z
T
d
Z^Td
ZTd 为期望实验长度,
Z
T
k
Z^Tk
ZTk 为k次迭代的实验长度。
柯西状态方程如下:
x
(
t
+
1
)
=
A
x
(
t
)
+
A
1
x
(
t
−
σ
)
+
f
(
t
)
,
t
∈
Z
0
∞
x
(
t
)
=
φ
(
t
)
,
t
∈
Z
−
σ
0
\begin{aligned} x(t+1) &=A x(t)+A_{1} x(t-\sigma)+f(t), \quad t \in \mathbb{Z}_{0}^{\infty} \\ x(t) &=\varphi(t), \quad t \in \mathbb{Z}_{-\sigma}^{0} \end{aligned}
x(t+1)x(t)=Ax(t)+A1x(t−σ)+f(t),t∈Z0∞=φ(t),t∈Z−σ0
引入离散矩阵延迟指数函数,状态x(k)的解为:
x
(
t
)
=
A
t
e
σ
B
1
t
A
−
σ
φ
(
−
σ
)
+
∑
j
=
−
σ
+
1
0
A
(
t
−
j
)
e
σ
B
1
(
t
−
σ
−
j
)
[
φ
(
j
)
−
A
φ
(
j
−
1
)
]
+
∑
j
=
1
t
A
(
t
−
j
)
e
σ
B
1
(
t
−
σ
−
j
)
f
(
j
−
1
)
\begin{aligned} x(t)=& A^{t} e_{\sigma}^{B_{1} t} A^{-\sigma} \varphi(-\sigma)+\sum_{j=-\sigma+1}^{0} A^{(t-j)} e_{\sigma}^{B_{1}(t-\sigma-j)}[\varphi(j)-A \varphi(j-1)] \\ &+\sum_{j=1}^{t} A^{(t-j)} e_{\sigma}^{B_{1}(t-\sigma-j)} f(j-1) \end{aligned}
x(t)=AteσB1tA−σφ(−σ)+j=−σ+1∑0A(t−j)eσB1(t−σ−j)[φ(j)−Aφ(j−1)]+j=1∑tA(t−j)eσB1(t−σ−j)f(j−1)
随机变迭代实验长度内容部分:
存在两种情况:1.
T
k
>
T
d
T_k>T_d
Tk>Td,2.
T
a
<
T
k
<
T
d
T_a<T_k<T_d
Ta<Tk<Td 。对于第一种情况,只用Td以内的数据用来更新输入信号,对于第二情况只用
T
k
Tk
Tk之内的数据进行更新。
η_k (t)为伯努利分布,其中值1表示以p(t)的概率运行到t时刻,值0表示以1-p(t)的概率不能运行到时刻t。对于Ta到Td这段时间的概率计算公式如下:
p
(
t
)
=
{
1
,
t
∈
Z
0
T
a
∑
i
=
t
T
d
p
i
,
t
∈
Z
T
a
+
1
T
d
.
p(t)=\left\{\begin{array}{ll} 1, & t \in \mathbb{Z}_{0}^{T_{a}} \\ \sum_{i=t}^{T_{d}} p_{i}, & t \in \mathbb{Z}_{T_{a+1}}^{T_{d}} . \end{array}\right.
p(t)={1,∑i=tTdpi,t∈Z0Tat∈ZTa+1Td.
举一个例子通俗地讲一下,上面地内容主要是用在算法收敛性证明的。前6次迭代实验的长度如下图所示,1为上面伯努利分布的1事件,0同理。
把Ta=6作为最小的运行时刻,期望运行时刻为Td=10,第一次迭代的终止时刻为6,把这个事件称之为M6,第六次迭代时,到T=11结束,即运行时刻大于Td,把这种情况同样视为M10。在上面的这张表中,运行到[7,10]的概率如下所示:其中pi为事件Mi发生的概率。那么系统能运行到时刻8的概率p(8)等于大于时刻8事件的概率3/5。
p(t)的概率表达式为:
p
(
t
)
=
P
[
⋃
i
=
t
10
M
i
]
=
∑
i
=
t
10
P
[
M
i
]
=
∑
i
=
t
10
p
i
p(t)=\mathbf{P}\left[\bigcup_{i=t}^{10} \mathbf{M}_{i}\right]=\sum_{i=t}^{10} \mathbf{P}\left[\mathbf{M}_{i}\right]=\sum_{i=t}^{10} p_{i}
p(t)=P[i=t⋃10Mi]=i=t∑10P[Mi]=i=t∑10pi
关于误差的定义
由于存在实际实验长度小于期望长度,所以这部分的误差当作0来计算:
e
~
k
(
t
)
:
=
η
k
(
t
)
e
k
(
t
)
=
{
e
k
(
t
)
,
t
∈
Z
0
T
k
0
,
t
∈
Z
T
k
+
1
T
d
\tilde{e}_{k}(t):=\eta_{k}(t) e_{k}(t)=\left\{\begin{array}{ll} e_{k}(t), & t \in \mathbb{Z}_{0}^{T_{k}} \\ 0, & t \in \mathbb{Z}_{T_{k+1}}^{T_{d}} \end{array}\right.
e~k(t):=ηk(t)ek(t)={ek(t),0,t∈Z0Tkt∈ZTk+1Td
两种学习控制律
u
k
+
1
(
t
)
=
u
k
(
t
)
+
L
1
e
~
k
(
t
)
,
t
∈
Z
0
T
d
u_{k+1}(t)=u_{k}(t)+L_{1} \tilde{e}_{k}(t), \quad t \in \mathbb{Z}_{0}^{T_{d}}
uk+1(t)=uk(t)+L1e~k(t),t∈Z0Td
u
k
+
1
(
t
)
=
u
k
(
t
)
+
L
2
e
~
k
(
t
+
1
)
,
t
∈
Z
0
T
d
u_{k+1}(t)=u_{k}(t)+L_{2} \tilde{e}_{k}(t+1), \quad t \in \mathbb{Z}_{0}^{T_{d}}
uk+1(t)=uk(t)+L2e~k(t+1),t∈Z0Td
对于(9)式要把期望时间间隔设置为0到Td+1。算法的收敛性略(其实是我不会)。
代码见GITHUB