对于一类具有随机变迭代长度的问题,如功能性电刺激,用户可以提前结束实验过程,论文也是将离散矩阵延迟指数函数引入到状态方程中。

论文中关于迭代长度有三个定义值:\(Z^Ta\) 为最小的实验长度,\(Z^Td\) 为期望实验长度,\(Z^Tk\) 为k次迭代的实验长度。

柯西状态方程如下:

\[\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(k)的解为:

\[\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}
\]

随机变迭代实验长度内容部分:

存在两种情况:1. \(T_k>T_d\),2. \(T_a<T_k<T_d\) 。对于第一种情况,只用Td以内的数据用来更新输入信号,对于第二情况只用\(Tk\)之内的数据进行更新。

η_k (t)为伯努利分布,其中值1表示以p(t)的概率运行到t时刻,值0表示以1-p(t)的概率不能运行到时刻t。对于Ta到Td这段时间的概率计算公式如下:

\[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.
\]

举一个例子通俗地讲一下,上面地内容主要是用在算法收敛性证明的。前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)=\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}
\]

关于误差的定义

由于存在实际实验长度小于期望长度,所以这部分的误差当作0来计算:

\[\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.
\]

两种学习控制律

\[u_{k+1}(t)=u_{k}(t)+L_{1} \tilde{e}_{k}(t), \quad t \in \mathbb{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}}
\]

对于(9)式要把期望时间间隔设置为0到Td+1。算法的收敛性略(其实是我不会)。

代码见GITHUB

Iterative learning control for linear discrete delay systems via discrete matrix delayed exponential function approach的更多相关文章

  1. A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems

    A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems Recurrent neural netw ...

  2. 机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)

    在之前的文章<机器学习---线性回归(Machine Learning Linear Regression)>中说到,使用最小二乘回归模型需要满足一些假设条件.但是这些假设条件却往往是人们 ...

  3. CheeseZH: Stanford University: Machine Learning Ex5:Regularized Linear Regression and Bias v.s. Variance

    源码:https://github.com/cheesezhe/Coursera-Machine-Learning-Exercise/tree/master/ex5 Introduction: In ...

  4. Andrew Ng Machine Learning 专题【Linear Regression】

    此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记. 力求简洁,仅代表本人观点,不足之处希望大家探 ...

  5. 机器学习---用python实现最小二乘线性回归算法并用随机梯度下降法求解 (Machine Learning Least Squares Linear Regression Application SGD)

    在<机器学习---线性回归(Machine Learning Linear Regression)>一文中,我们主要介绍了最小二乘线性回归算法以及简单地介绍了梯度下降法.现在,让我们来实践 ...

  6. 转载 Deep learning:二(linear regression练习)

    前言 本文是多元线性回归的练习,这里练习的是最简单的二元线性回归,参考斯坦福大学的教学网http://openclassroom.stanford.edu/MainFolder/DocumentPag ...

  7. [笔记]机器学习(Machine Learning) - 01.线性回归(Linear Regression)

    线性回归属于回归问题.对于回归问题,解决流程为: 给定数据集中每个样本及其正确答案,选择一个模型函数h(hypothesis,假设),并为h找到适应数据的(未必是全局)最优解,即找出最优解下的h的参数 ...

  8. Machine Learning No.1: Linear regression with one variable

    1. hypothsis 2. cost function: 3. Goal: 4. Gradient descent algorithm repeat until convergence { (fo ...

  9. Machine Learning No.2: Linear Regression with Multiple Variables

    1. notation: n = number of features x(i) = input (features) of ith training example  = value of feat ...

随机推荐

  1. C++类基本--随笔二

    1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 5 class Internet 6 ...

  2. 高效团队的gitlab flow最佳实践

    当前git是大部分开发团队的首选版本管理工具,一个好的流程规范可以让大家有效地合作,像流水线一样有条不紊地进行团队协作. 业界包含三种flow: Git flow Github flow Gitlab ...

  3. [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1)

    [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1) 目录 [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1) 0x00 摘要 ...

  4. redis分布式锁的这些坑,我怀疑你是假的开发

    摘要:用锁遇到过哪些问题? 一.白话分布式 什么是分布式,用最简单的话来说,就是为了较低单个服务器的压力,将功能分布在不同的机器上面:就比如: 本来一个程序员可以完成一个项目:需求->设计-&g ...

  5. C++的智能指针你了解吗?

  6. 使用 noexcept 我们需要知道什么?

    noexcept 关键字 noexcept 是什么? noexcept 是自 C++11 引入的新特性,指定函数是否可能会引发异常,以下是 noexcept 的标准语法: noexcept-expre ...

  7. hdu4217 Data Structure?

    Problem Description Data structure is one of the basic skills for Computer Science students, which i ...

  8. AC自动机算法 && 例题

    参考链接: https://blog.csdn.net/bestsort/article/details/82947639#commentBox https://blog.csdn.net/niush ...

  9. redis如何实现高可用【主从复制、哨兵机制】

    实现redis高可用机制的一些方法: 保证redis高可用机制需要redis主从复制.redis持久化机制.哨兵机制.keepalived等的支持. 主从复制的作用:数据备份.读写分离.分布式集群.实 ...

  10. docker的企业级仓库-harbor

    Harbor 一.背景 Docker中要使用镜像,我们一般都会从本地.Docker Hub公共仓库或者其它第三方的公共仓库中下载镜像,但是出于安全和一些内外网的原因考虑,企业级上不会轻易使用.普通的D ...