回声状态网络基础知识_肝血管瘤内回声成网络样

回声状态网络基础知识_肝血管瘤内回声成网络样http://jlearning.cn/2017/05/29/ESN-basic-tutorial/最近在看回声状态网络(EchoStateNetwork)的内容,注意到中文搜索引擎搜不到关于有关EchoStateNetwork通俗的讲解,打算写一下关于ESN的一个基本教程。本文先用一小段简单介绍ESN是什么,然后用公式来表示这种网络,并说明他的优缺点,最后用一个可执行的简单例子来演示…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

http://jlearning.cn/2017/05/29/ESN-basic-tutorial/

最近在看回声状态网络(Echo State Network)的内容,注意到中文搜索引擎搜不到关于有关Echo State Network通俗的讲解,打算写一下关于ESN的一个基本教程。本文先用一小段简单介绍ESN是什么,然后用公式来表示这种网络,并说明他的优缺点,最后用一个可执行的简单例子来演示一下ESN的效果。

由于本人能力有限,如在阅读过程中有任何疑问或者发现错误请在评论中指出。

ESN是RNN的一种,也是由输入层,隐藏层,输出层组成,并且在隐藏层到隐藏层之间有一个连接,用来保留前面时刻留下的信息。不同于RNN,ESN的输入层到隐藏层、隐藏层到隐藏层的连接权值是随机初始化,并且固定不变。在训练的过程中,我们只需要去训练隐藏层到输出层的连接权值。这就变成了一个线性回归问题,所以ESN训练起来非常快。

微信截图_20170529161715

ESN的神经网络如图所示,储备池就是常规神经网络中的隐藏层。输入层到储备池的连接为Win,储备池到下一个时刻储备池状态的连接为W,储备池到输出层的连接为Wout。另外还有一个前一时刻的输出层到下一个时刻的储备池的连接Wback,这个连接不是必须的(图中用虚线表示),由于这是一个入门级的基础教程,所以在后面的公式和例子代码中都不会涉及这一个连接。

图中所示,tt时刻的输入为u(t)u(t),一共K个节点,储备池状态为x(t)x(t),N个节点,输出为y(t)y(t),L个节点。

每一个时刻输入u(t)u(t),储备池都会更新状态,储备池的状态更新方式为:

 

x(t+1)=f(Winu(t+1)+Wx(t))x(t+1)=f(Winu(t+1)+Wx(t))

 

这个式子里,WinWin和WW都是在最初建立网络的时候随机初始化的,并且固定不变。u(t+1)u(t+1)是这个时刻的输入,x(t)x(t)是上一个时刻的储备池状态,在t=0时刻可以用0初始化。ff是一个激活函数,通常使用tanhtanh。

在建模的时候,和一般的神经网络一样,会在连接矩阵上加上一个偏置量,所以输入的uu是一个长度为1+K的向量,WinWin是一个[1+k,N]的矩阵,xx是一个长度为N的向量,WW是一个[N,N]的矩阵。

回声状态网络的输出方式为:

 

y(t)=Wout[1;u(t);x(t)]y(t)=Wout[1;u(t);x(t)]

 

有了储备池状态,再确定了ESN的输出方式之后,就可以根据目标输出ytargetytarget来确定WoutWout来让y(t)y(t)和ytarget(t)ytarget(t)的差距尽可能的小。这是一个简单的线性回归问题,计算的方法有很多种,不再赘述。

微信截图_20170529170125

到这里,我们就完成了ESN的训练工作。整个网络只需要训练WoutWout,所以它的训练过程非常快,这是ESN的优点之一。另外,对于一维时序数列的处理和预测,ESN有很好的优势。但对于高维的时序数列,比如说视频帧处理,ESN就不太能胜任了。

为了让这个网络能够正常的运转,还有一些地方是需要注意的:

  1. 之所以叫回声状态网络,是因为前面时刻输入的信息会通过WW回回荡在储备池中,就像回声一样。为了避免储备池状态爆炸,WW的特征值必须要小于等于1。这也就引入了ESN中谱半径的概念:WW的最大特征值。
  2. 由于网络中只有WoutWout是可变的,为了尽可能多的表示不同的数据规律,WW必须要设置的非常大,才能从中找出各种不同的特征进行输出。另一方面,WW的稀疏性也很重要,Hinton在多伦多大学的公开课里解释是:

建立一个松散的连接,这样某一信息可以在网络中的一小部分回荡,而不会迅速的传播到其他部分。

我不是特别的理解。希望有人解释一下。

最后引用一个例子来彻底理解最基本的ESN。

在页面中下载python源码和数据集,在python2.7环境中运行。

数据就是一维的,代码中每次输入长度为1,预测数据中后一位的值,当然长度也是1。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179507.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 神经网络loss函数意义_lossfunction

    神经网络loss函数意义_lossfunctionL1Loss平均绝对误差(MAE),用于回归模型对于包含NNN个样本的batch数据D(x,y)D(x,y)D(x,y),losslossloss计算如下:loss=1N∑n=1Nlnloss=\frac{1}{N}\sum_{n=1}^{N}l_{n}loss=N1​∑n=1N​ln​其中,ln=∣xn−yn∣l_{n}=\left|x_{n}-y_{n}\right|ln​=∣xn​−yn​∣classL1Loss(_Loss):__constants__=[‘redu

    2022年9月18日
    2
  • rabbitmq优先级队列_rabbitmq主从模式

    rabbitmq优先级队列_rabbitmq主从模式优先级队列:此队列中的消息可以拥有优先级属性,在发送有优先级属性的消息到此队列时,优先级属性能够生效。优先级高的消息得以提早消费,消息优先级的最大值由队列的属性决定。超出队列的最大值按最大值算。Map<String,Object>priority=newHashMap<String,Object>();priority.put(“x-max-priority…

    2022年9月23日
    5
  • 小程序生成普通二维码_注册一个小程序

    小程序生成普通二维码_注册一个小程序uniapp生成二维码`参考了https://blog.csdn.net/lemontealin/article/details/104437584这篇文章并做了修改,要想实现二维码的生成的话是需要引用相应插件的,这个插件的作者是echo,echo写了整个ThorUI组件,我个人很佩服他,喜欢他的可以去ThorUI网站看看,学习一下。1)首先下载你需要下载weapp-qrcode.js(百度网盘下载链接:链接:https://pan.baidu.com/s/1VXhq3ZjxmDcH1tFujK

    2025年6月18日
    2
  • MySQL呕血汇总–从基础到毕业【收藏篇】

    MYSQL目录前言一、MYSQL基础1.安装2.数据库介绍2.1.什么是数据库?2.2.实体(类)和表关系2.3.常见关系型数据库3.MYSQL基础操作❤重点❤3.1.启动关闭3.2.DDL(数据定义语言,这些语句定义不同的数据段、数据库、表、列、索引等数据库对象。常用语句关键字主要包括create,drop,alter等)3.2.1.操作数据库3.2.2.操作表3.3.DML(数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用语句关键字主要包括insert,delete,upda

    2022年4月9日
    28
  • 集中趋势中均值、中位数、众数以及偏态分布、偏度和峰度计算相关

    集中趋势中均值、中位数、众数以及偏态分布、偏度和峰度计算相关均值、中位数、中位数的概念以及优缺点对比。偏态分布难点分析,以及偏度、峰度计算公式。文末附相关学习链接。

    2022年9月16日
    3
  • ThinkPHP5+小程序商城 网盘视频

    ThinkPHP5+小程序商城 网盘视频

    2021年10月31日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号