hopfield神经网络c语言,基于Hopfield神经网络的数据分类

【文章摘要】

本文研究Hopfield神经网络的特点,并结合进化算法或启发式算法,设计出一个基于Hopfield神经网络的混合分类算法,并在实际数据集进行验证,以期提出的算法既具有一定鲁棒性,又要具有较高的分类精度,并且能够充分发挥Hopfield神经网络的自联想特性,具有较好的容错性和普适性。

【关键词】

Hopfield神经网络;粒子群优化算法;自联想特性

随着信息产业的普及,数据存储的增大,数据挖掘技术作为一种前沿技术,越来越受到人们的重视。分类算法作为一种重要的数据挖掘算法,在各个领域中都有着重要的应用。

本文采用BV算法,一定程度上克服了离散型Hopfield神经网络本身所具有的局限性,并且保留了其在自联想等方面的优点,设计出带有粒子群优化过程的Hopfield分类算法(下文简称PSO-HOP算法)。

1 数据预处理

使用离散型Hopfield神经网络进行分类首先就要解决如何在神经网络中反映各个属性值及类标号的问题。

2 Hopfield训练过程

为了克服传统Hopfield的不足,本文采用了BV算法。该算法能够克服传统训练算法容量低的问题,并且保留原有算法的优点。该方法是基于局部的,而且对模式的要求较少,但是该方法要求对训练样本进行一定数量的呈现,以保证训练模式的稳定性。通过有限次数的展示后,该算法确保对于每个模式找到一个合适的权重矩阵(如果该矩阵存在)。

3 Hopfield评价方法

这里描述的Hopfield评价方法即为类标号确定方法,在前面提到的Hopfield训练过程中、后面PSO优化过程中的适应值计算以及最后对该分类算法进行测试的过程中都要采用该方法。其中主要体现了离散型Hopfield神经网络的自联想特性,使之能够从噪声数据中联想出有意义的模式。

4 PSO优化过程

虽然前文介绍的分类算法和测试算法已经能够初步地实现了分类,但是由于神经网络容易出现陷入局部最优值的情况,从而影响分类算法的精度。为此本文引入了离散型粒子群优化算法用来优化Hopfield神经网络的拓扑结构,提高分类精度。

使用离散型粒子群优化算法优化神经元分配的具体流程为:首先,初始化粒子,每个粒子包括使用个体最佳值,个体当前值,个体最佳值的位置,一个使用浮点数表示的当前位置,以及一个使用0-1变量表示的当前状态,1表示被分配神经元而0表示未被分配神经元。然后随机化用浮点数表示的当前位置。随后开始循环,每个粒子根据式(3-3)更新浮点数位置,再使用式(3-4)生成0-1当前状态,并对其进行一定的约减和增补,使之不超过最大可分配的神经元数目。再跟据属性状态,生成Hopfield神经网络,并进行训练和测试,根据测试的结果更新个体当前适应值,并比较个体当前适应值和个体最优值以及群体最优值。若个体当前适应值优于个体最优值则,更新个体最优值及其位置,若个体当前适应值优于群体最优值,则更新群体最优值及其位置,并将重新随机生成该粒子的当前位置以防止陷入局部最优值。通过这样循环下去,即可找出在当前可分配神经元数目下的最优神经网络拓扑结构。

5 算法整体流程

PSO-HOP算法的整体流程如图1所示,其中,读取分类信息是指程序读取样本的属性信息,包括属性的个数、每个属性的所有可能值以及训练样本数等。而在读取训练集和读取测试集的过程中,程序会根据分类信息以及当前神经元的分配方案将读取的数据集转换成和神经网络一样的结构并进行数据预处理以方便后面的训练和测试。

本文通过对Hopfield神经网络的改进,实现了使用Hopfield神经网络作为分类算法,设计出了PSO-HOP算法。该算法具有较高的分类精度和鲁棒性,并可以通过建模结果了解数据集的不同属性的重要程度,有助于们对于数据集的理解和研究。

【参考文献】

[1] Han J W,Micheline K.Data Mining[M].北京:机械工业出版社,2007.285-382.

[2]张青贵.人工神经网络导论[M].北京:中国水利水电出版社,2004.11-124.

【作者简介】

邵天驰(1989年5月—),男,辽宁沈阳市人,同济大学软件学院硕士研究生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值