logo资料库

中科大信号与信息处理期末大作业.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
信号与信息处理大作业 1 回声状态网络简介 回声状态网络 頨顅顣顨顯 顓顴顡顴顥 顎顥顴顷顯顲顫顳頩 的主要思想是利用合理的初始参 数设置非静态地产生非线性高维空间,使得非线性的高维空间能够组合出 系统所期望的输出。由于其优越的拟合预测能力,回声状态网络在时间序 列预测、非线性系统辨识等领域得到广泛应用。 顅顓顎 是由 顈顥顲顢顥顲顴 顊顡顥顧顥顲 提出的一种新型递归神经网络算法。他指出递 归神经网络在第 顮 时刻的内部状态 x頨n頩 是前 n 个时刻输入u頨n頩, u頨n − 頱頩, u頨n − 頲頩,··· , u頨頱頩 的函数,即可将第 n 时刻的内部状态理解为历史输入 的“回声”。其公式描述如下頺 x頨n頩 頽 E頨u頨n頩, u頨n − 頱頩,···頩 頨頱頩 基本回声状态网络结构如图頱 所示。基本的回声状态网络结构类似神经网 络,由输入层,储备池和输出层构成。其中, k 为输入节点数, N 为储备 池节点数、 L 为输出节点数。在 n 时刻输入节点的输入为 u頨n頩 頽 頨u頱頨n頩, u頲頨n頩, u頳頨n頩,··· , uK頨n頩頩 頨頲頩 储备池的状态为 x頨n頩 頽 頨x頱頨n頩, x頲頨n頩, x頳頨n頩,··· , xN 頨n頩頩 输出节点的输出为 y頨n頩 頽 頨y頱頨n頩, y頲頨n頩, y頳頨n頩,··· , yL頨n頩頩 頨頳頩 頨頴頩 从输入、储备池到输出三层之间都有连接。基本回声状态网络结构从输入 节点到输出节点和输出节点之间的连接在图頱 中用虚线表示。 頱
图 頱頺 N 頫 頱 时刻储备池的状态更新方程为頺 x頨n 頫 頱頩 頽 f 頨W inu頨n 頫 頱頩 頫 W x頨n頩 頫 W backy頨n頩頩 頨頵頩 N 頫 頱 时刻输出节点的更新方程为頺 y頨n 頫 頱頩 頽 f out頨W out頨u頨n 頫 頱頩, x頨n 頫 頱頩, y頨n頩頩頩 頨頶頩 其中, W in 是从输入节点到内部节点的输入权值矩阵,大小为 N × K, W 是储备池内部节点之间的权值矩阵,大小为 N × N 。 W 是一个稀疏矩 阵,稀疏度一般为 頱頥 ∼ 頱頰頥 。 W out 是从输入节点、内部节点和输出节 点到输出节点的输出权值矩阵,大小为 L × 頨K 頫 N 頫 L頩 , W back 是从输 出节点到内部节点的反馈权值矩阵,大小为 N × L 。 f 为储备池节点的激 活函数, f out 为输出节点的激活函数,二者一般均取 顴顡顮顨 。需要注意的 是,输出节点到输出节点之间的连接几乎不使用,因此输出权值矩阵 W out 变为从输入节点、内部节点到输出节点的权值矩阵,大小为 L× 頨K 頫 N 頩 。 对应的回声状态网络结构如图頲 所示。 頲
图 頲頺 相应的 N 頫 頱 时刻网络的更新方程为頺 x頨n 頫 頱頩 頽 f 頨W inu頨n 頫 頱頩 頫 W x頨n頩 頫 W backy頨n頩頩 y頨n 頫 頱頩 頽 f out頨W out頨u頨n 頫 頱頩, x頨n 頫 頱頩頩頩 頨頷頩 頨頸頩 顅顓顎 的核心是储备池。储备池是由输入信号所驱动的动态系统。储备池有 两个功能頺 頨顩頩 可以看做是输入信号 u頨n頩 的高维非线性扩展 x頨n頩 頻 頨 顩顩頩 具有 短暂的记忆输入信号 u頨n頩 的功能,也就是回声状态。一个好的储备池同时 具有这两个功能,使其能够提供足够丰富的内部状态 x頨n頩 ,因此期望输出 ytarget頨n頩 可由内部状态 x頨n頩 的线性组合得出。 使 顅顓顎 具有回声状态的重要条件是其内部权值矩阵 W 的谱半径小于 頱。 按照如下公式所得到内部权值矩阵,其网络结构则具有回声状态特性,不 论 W in 、 W back 如何选取。 Wnew 頽 頱 |λmax| W 頨頹頩 其中, |λmax| 是 W 的最大特征值的绝对值, Wnew 是新的内部权值矩阵。 顅顓顎 与传统神经网络的重要区别是頺 顅顓顎 的 W in 、 W 和 W back 是开始就 确定好且固定不变的,模型只需训练 W out ,因此其具有训练过程简单的特 点。 2 代码实现 2.1 实验条件 頱頮 操作系统:顗顩顮顤顯顷顳 頷 頳
頲頮 实现语言:顐项顴顨顯顮 頳頮 实验数据:額顡顣顫顥项顇顬顡顳顳 顴頵頰数据集 图 頳頺 2.2 ESN类的实现 类的初始化 初始化储备池内部节点之间的权值矩阵,大小为 resSize× resSize,为了实现权值矩阵的稀疏化,需要确定部分权值连接为頰的权重, 并进行重新赋值。随后确保谱半径小于頱。代码如图頴所示。 頴 020040060080010000.30.20.10.00.10.20.3
图 頴頺 更新过程 这一时刻的储备池的状态是上一时刻的储备池状态乘以权重 矩阵,加上这一时刻的输入权值矩阵。这里 learning rating 代表学习率。 考虑到程序刚开始运行的那段时间数据不够稳定,因此前 initLen 次的结 构不参与到训练过程中。代码如图頵所示。 图 頵頺 训练过程 由于状态矩阵 S 可能为奇异矩阵,所以 S 的逆矩阵采用伪 逆算法或者正则化技术。这里采用的是岭回归算法。首先随机初始化输入 权值矩阵,随后不断进行参数更新,并且将储备池的输出以状态矩阵的形 式存储下来,最后使用岭回归计算输入矩阵。代码如图頶所示。 頵
图 頶頺 预测过程 首先根据输入不断计算储备池的输出,得到状态矩阵。随后 使用岭回归模型计算状态矩阵对应的模型输出。代码如图頷所示。 图 頷頺 2.3 主程序的实现 第一步,使用 numpy 的 loadtxt 函数加载实验数据。第二步,进行数 据预处理,采用 M inM axScaler 将数据缩小到指定范围,并且添加随机 噪声。第三步,数据集分割,前頸頰頰頰条作为训练集数据,后頱頰頰頰条作为测 试集数据。第四步,定义超参数并且创建顅顓顎类。其中储备池矩阵大小为 頵頰頰 × 頵頰頰,岭回归 顬顡顭顢顤顡 参数为 頱顥頭頶。第五步,训练顅顓顎网络并且对测 试集进行预测。代码如图頸所示。 頶
图 頸頺 頷
3 实验结果 图 頹頺 预测数据的拟合结果和测试集真实数据的结果如图頹所示。可以看出采 用顅顓顎具有较强的时序拟合能力,预测得到的结果在总体趋势上与真实分 布相一致。但是从图中也可以看出拟合结果在波峰波谷附近仍有瑕疵,并 不能完全匹配。 图 頱頰頺 为了便于直观地展示储备池中结点值的状态,此处将储备池前頲頰頰时 刻状态頨顸頨顴頩頩的储存结点值,如图頱頰所示。由于结点数较多,因此只展示 前頲頰个储存结点值。 頸 020040060080010000.30.20.10.00.10.2real signalpred signal02550751001251501752000.750.500.250.000.250.500.751.00
分享到:
收藏