自组织神经网络及其在时间序列预测中的应用

举报
aqhs 发表于 2023/12/24 16:12:15 2023/12/24
【摘要】 自组织特征映射人工神经元网络采用无监督学习算法,网络每个输出节点所对应的连接权重,可以认为是从样本集中学习得来的一个样本代表(或者叫聚类中心),并且输出节点按照连接权重相似相邻的规则在平面上排列。如果对每个输出节点赋以输出值,则可以用该网络来进行预测、估值或者分类。针对时间序列预测问题研制了SOM网络训练和决策算法及相应软件,为时间序列预测提供了一种新的方法与工具。

自组织神经网络及其在时间序列预测中的应用

Kohonen自组织特征映射(Self-Organizing Feature Mapping,SOM)人工神经网络是芬兰赫尔辛基大学教授Teuvo Kohonen于1981年提出的一种竞争学习型无监督神经网络。其思路源于:在生物神经系统中存在着一种侧抑制现象,即一个神经细胞兴奋以后,会对周围其他神经细胞产生抑制作用,这种抑制作用会使神经细胞之间出现竞争,其结果是某些细胞获胜,另外一些细胞失败,表现为获胜者兴奋,失败者抑制。

SOM网络由输入层和输出层(又称竞争层)构成,有时输出层中各神经元之间还存在横向连接,SOM网络采用无监督学习并具有自组织功能。网络通过自身的训练能自动对输入模式进行分类,具有与其他网络不同的特点。网络学习的结果会使得输出层的节点按照输入向量的相似性排列,使得相似的输入在输出层平面上相邻的节点发生响应。

1 网络结构

自组织特征映射人工神经元网络只有输入和输出两层,输出层网络节点可以分布在平面上。设在平面上分布着n行m列的输出节点,每个输出节点与p个输入节点相连接,从输入到输出包含p×n×m个连接,对应的连接权重为w[(i*m+j)*p+k],k=0,1, …, p-1,j=0,1, …, m-1,i=0,1, …, n-1,每个输出节点对应一个输出值,即v[i*m+j],j=0,1, …, m-1,i=0,1, …, n-1,这样就构成了自组织特征映射网络。

SOM网络示意图

2 响应节点

对于输入向量x[k],k=0,1, …, p-1,在n×m个输出节点中产生一个响应节点,这个响应节点的连接权重与输入向量之间的距离和其他输出节点相比是最小的,即响应节点(i0, j0)满足如下条件:

3 邻域节点

在响应节点周围的节点为邻域节点(或者邻居节点),邻域节点的多少取决于邻域半径大小。取邻域为方形,邻域半径为R,则包含(2R+1)×(2R+1)个邻域节点,这里R≤min(n,m)/2,这些邻域节点为:

{i, j}={ (i0+r+n) mod n,(j0+s+m) mod m,r,s = -R, -R+1, …, 0, …, R-1, R }

第(i,j)个节点到响应节点(i0,j0)之间的几何距离为:

这里mod是求余的意思。

4 邻域函数

在连接权重学习过程中,在平面上距离响应节点越近的节点赋予较大的学习率,距离响应节点较远的邻域节点赋予较小的学习率,这种随距离而变化的函数称为响应节点邻域函数。

例如下列响应节点邻域函数曲线,是由10个离散点[1.0, 0.95, 0.72, 0.4, 0.1353, 0.1, 0.0498, 0.0115, 0.02, 0.01]插值而成,其中X轴是邻域节点到响应节点的几何距离,其中1对应最大距离,Y轴是幅度,其取值范围在[0,1]之间。以响应节点为中心,周围邻域节点的学习率变化,类似草帽函数,如下图所示。

由21个离散点[1, 0.979, 0.9179, 0.8222, 0.7006, 0.5638, 0.4234, 0.2909, 0.1762, 0.1123, 0.12, 0.152, 0.1745, 0.13, 0.1, 0.1171, 0.1285, 0.1409, 0.1234, 0.1158, 0.1]插值而成的邻域函数,如下图所示。

5 连接权重学习

多次使用训练样本集对网络进行训练,邻域半径和学习率随着训练次数的增加而逐步减小,假设重复使用样本集训练的次数为T,则

学习率随着次数t增加逐步减小,u(t)=u0+(u1-u0)*t/(T-1),t=0,1, …, T-1;这里u0是初始学习率,u1是终止学习率,且u0>u1。

邻域半径随着次数t增加逐步减小,R(t)=R0-R0*t/(T-1),t=0,1, …, T-1,例如R0=min(n,m)/2。

在网络训练过程中不断调节网络连接权重,设:q=(i*m+j)*p,则权重调节算法为:

w(q+k) = w(q+k) + u(t)*f(d)*(x(k)-w(q+k))

输出节点(i,j)属于响应节点(i0,j0)的邻域,u(t)是循环次数的函数,f(d)是随输出节点(i,j)与响应节点(i0,j0)之间的距离而变化的邻域函数,x(k)是输入向量的第k个分量。

6 输出值

如果训练数据每个输入向量都有对应的因变量值,则输入向量的响应节点对应的输出值就是该输入向量的因变量值平均(可能有多个输入向量在这个输出节点上响应)。对于没有参与响应的输出节点,将该节点对应的权重与那些有响应的权重比较,取距离较小的三个输出值加权平均作为该节点的输出值,加权与距离成反比。

训练样本集的因变量值是已知的,新样本的因变量值是未知的。样本集对网络进行训练后就确定了网络的连接权重和网络的输出值,对于新的样本输入就可以估计或者预测对应的因变量值。

7 时间序列预测应用

可以将自组织特征映射人工神经元网络应用于时间序列的预测。其预测原理的基本假设是时间序列t时刻的值x(t)强烈地依赖于之前p个时刻的值{x(t-p), x(t-p+1), …, x(t-1)},但是这种依赖关系x(t)=F(x(t-p), x(t-p+1), …, x(t-1))又不能用简单的数学表达式表示,于是基于大量历史数据训练SOM网络来寻找这个近似关系。设长度为N(N足够大,p远远小于N)的时间序列样本为

x(t+i),i=0,1,…,p-1,t=0,1,…,N-p-1。

因此训练样本集包含有N-p个训练样本数据,每个样本对应的因变量值为x(t+p),通常N比较大,有足够多的训练样本。

通过时间序列数据训练网络之后,可对时间序列未来值进行预测。即如果已知x(0), x(1), …, x(p-1),那么可以预测p时刻的x(p)之值。

为了测试SOM网络做时间序列预测的可行性,我们可选择时间序列的前半段作为训练样本,后半段作为测试样本,来观察一步预测的效果。

8 时间序列预测评价指标

在预测方法使用之前,需要拿样本数据进行测试。设真实序列为y(i),预测序列为z(i),i=0, 1, …, n-1,那么定义一下参数作为评价预测准确度的指标。

(1)平均绝对误差(mean absolute error,MAE)

(2)均方误差(mean square error,MSE)

(3)均方根误差(root mean square error,RMSE)

(4)平均绝对百分比误差(mean absolute percentage error,MAPE)

(5)拟合优度,取值范围[0,1],越接近1模型性能越好

其中a时真实值平均

(6)相关系数,取值范围[-1,1]

其中b是预测值平均

9 将网络参数保存成文件

(0) BYTE ID[8]; //文件头,87,101,105,103,104,116,0,0

(8) int Preprocess; //预处理,这里为0;  =0 无,=1 归一化到[0,1]之间,=2 标准化为0均值1方差,=3 PCA,4 Sigmoid,=5 L1范数

(12) int nInput; //输入节点个数

(16) int nOutput; //输出节点个数,这里等于行数乘以列数

(20) int nOutValue; //每个输出节点对应的输出值个数,这里为1

(24) int NetworkID; //网络类型,这里如果行数和列数相等则为4,如果行数和列数不相等则为9

    //NetworkID =0 直接匹配, =1 最近邻法, =2 概率神经网络, =3 环形自组织特征映射网络(Ring SOM), =4 球形自组织特征映射网络(Sphere SOM)或者平面网络且行数和列数相等,

    =5 多元线性回归网络, =6: k-means cluster, =7 Three layers BP network, =8 逻辑回归,=9 行数和列数不相等时的平面型自组织网络

(28) double w[]; //w[]的大小为nInput*nOutput+nOutput*nOutValue,数据次序为

w[i*(nInput+nOutValue)+j],j = 0,1, …, nInput-1,是第i个输出节点对应的连接权重,j = nInput, …, nInput+nOutValue-1是第i个输出节点对应的输出值

(28+8*nOutput*(nInput+nOutValue)) int ncols; //当NetworkID=9时表示平面自组织网络的函数和列数不相等,附加一个列数,可以计算出行数为nrows=nOutput/ncols

文件后缀默认为*.somnet,在行数与列数相等时与多维特征参数机器学习软件的*.Weights文件兼容,对应球面型SOM网络。

10 应用例子

MUSIA软件操作:在波形窗口波形区外左右两边点击鼠标右键弹出菜单中选择《其他分析》→《SOM模型时间序列预测》,或者从标题栏左上角点击鼠标左键弹出菜单中选择。如下图所示。

出现如下对话框。当权重文件不存在时,需要设置好训练参数用当前可见数据训练SOM网络。也可以在之前训练结果的基础上继续训练,初始学习率和邻域半径设置可以小些。网络训练完成后可以使用该网络对时间序列未来值进行预测。

在进行网络训练之前需要指定输出节点在平面上的行数和列数,输入变量数,初始学习率,初始邻域半径,以及训练样本重复使用次数,训练结束后会将网络参数保存到指定的权重文件中。训练结束后或者网络参数文件载入后,输出节点平面上的输出值用右边的图像形式显示出来,可以大致查看哪些节点的输出值高(红色)哪些节点的输出值低(绿色)。

每一次循环训练计算一次响应节点权重与输入向量绝对距离的平均值(响应距离),以便观察随着训练循环次数的增加输入与输出响应节点的接近程度。假设第k次循环中第t个样本训练时,xi(t)是输入样本,wi(k,t)是响应节点的权重,计算这次响应距离d(k,t)如下:

p是网络的输入节点个数,t = 0, 1, …, N-1是样本序号,k=1, 2, …, M是循环次号,那么第k次循环的响应距离为

下图是上述训练过程中响应距离随训练次数增加的变化情况。

例如未来5个时刻的预测值

一步预测曲线

训练数据是当前通道显示段,而一步预测针对的是当前通道全程数据,对于不在当前显示段的数据都是测试样本数据,未来5点预测数据是指在全程数据结束时刻后尚未发生的5个时刻的预测值。

11 讨论

时间序列预测方法很多,其中人工神经网络用于时间序列预测的方法也不少,最容易想到的就是BP神经网络,即按误差反向传播训练的多层前馈网络,它在经过大量样本训练后可以建立输入和输出之间的映射关系。SOM网络用于时间序列预测是一种新的选择,相对来说更加直接简单且易于理解,有了软件工具后可以结合自身实际问题尝试使用。时间序列预测神经网络,都需要根据自身数据特点设置合适的网络参数,经过大量样本训练,最后网络模型是否满足应用要求也需要经过大量样本测试。这里给出的用Kohonen自组织特征映射人工神经网络做时间序列预测,也不失为一种容易理解的简捷方法。

参考文献

[1] Kohonen自组织特征映射神网络(环形和球面形网络)
[2] 多维特征参数机器学习算法
[3] 真彩色图像转换成256色图像的自组织网络方法
[4] 毛远宏,孙琛琛,徐鲁豫,刘曦,柴波,贺鹏超. 基于深度学习的时间序列预测方法综述[J]. 微电子学与计算机,2023, 40(4):8-17.
[5] 梁宏涛,刘硕,杜军威,胡强,于旭. 深度学习应用于时间序列预测研究综述[J]. 计算机科学与探索,2023, 17(6):1285-1300.
[6] 王明进,程乾生. Kohonen自组织网络在混沌时间序列预测中的应用[J]. 1997年7月第7期第12-17页.


相关文章

多通道信号分析软件系统
多通信号分析软件(MUSIA)功能介绍
生物医学信号处理与分析软件系统设计
曲线拟合软件

特殊函数计算器
两组样本均值、方差和分布的统计假设检验
多元线性回归分析
给定概率分布的随机变量仿真
多通道信号数据压缩存储
信号的特征参数计算
信号频域特征参数
多维特征参数机器学习算法
多维特征参数机器学习软件
Kohonen自组织特征映射神经网络(环形和球面形网络)
数据分布点纹图
矩阵的三维图形显示软件

数值矩阵的图形表示
图像处理基本算法及软件简介

真彩色图像转换成256色图像的自组织网络方法
图片浏览软件工具
离散小波变换用于信号滤波
主成分分析(K-L变换)与信号的分解与合成(滤波)
矩阵奇异值分解(SVD)及应用
离散正交变换及其应用
信号功率谱估计
信号的双谱分析
短时傅里叶变换时变功率谱分析
线性调频Z变换与细化频谱

使用FFT计算滑动平均(MA)模型参数
希尔伯特(Hilbert)变换信号瞬时频率计算
信号的样本熵序列计算
信号的经验模态分解(EMD)
滤波器设计、自适应滤波、匹配滤波方法
信号中的能量包检测
心电R波检测之差分奇点法和局部极值排除法


作者邮箱:chengbowork@163.com

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。