基于NIOSⅡ多核技术的Hopfield神经网络硬件实现方法
2011-12-26王连明
程 丹,王连明
(东北师范大学应用电子技术研究所,吉林 长春 130024)
基于NIOSⅡ多核技术的Hopfield神经网络硬件实现方法
程 丹,王连明
(东北师范大学应用电子技术研究所,吉林 长春 130024)
为了充分发挥人工神经网络所具有的并行计算、分布式存储的优点,提出了将NIOSⅡ多核技术应用于Hopfield神经网络硬件实现的方法.采用中断方式和SDRAM实现多核之间的通信,并将所实现的硬件用于数字识别,验证了多核通信方法应用于神经网络硬件实现的有效性和可行性.
SOPC;NIOSⅡ;多核通信;Hopfield神经网络
人工神经网络是由许多个神经元组成的、并行分布式的多处理器结构,每个神经元对应一个处理器.现有的神经网络实现方法大都采用通用计算机单核处理器对人工神经网络算法进行模拟,这种方法实质上不能够体现人工神经网络并行分布的网络结构和处理能力.
NIOSⅡ处理器是Altera公司推出的第二代用户可配置的、基于RISC的通用32位软核处理器,是特有的基于通用FPGA架构的软CPU内核.NIOSⅡ系列32位RISC嵌入式处理器具有每秒执行超过20亿条指令的性能,在低成本FPGA中实现后成本只有35美分.由于处理器是软核形式,具有很大的灵活性,可以在多种系统设置组合中进行选择,以满足成本和功能要求[1-2].
一个FPGA系统中可以配置多个NIOSⅡ软核,从而构成NIOSⅡ多核系统,文献中用NIOSⅡ多核技术实现了前馈型人工神经网络——BP神经网络[3-8].本文采用NIOSⅡ多核技术来模拟人工神经网络,每个NIOSⅡ软核可以模拟人工神经网络中的一个或若干个神经元.尝试用NIOSⅡ多核技术实现反馈型人工神经网络——Hopfield神经网络.使用这种方法可以充分发挥人工神经网络并行分布式的处理优点,同时由于采用软件编程,可以使网络结构具有比较好的灵活性.
1 Hopfield神经网络基本工作原理
Hopfield神经网络是一种单层对称全反馈循环网络,Hopfield神经网络的结构见图1.
图1 Hopfield神经网络结构
当每个神经元的输出信号不仅反馈到其他所有神经元的输入,同时也反馈到自己的输入时,称为有自反馈的Hopfield神经网络.我们研究的就是有自反馈的Hopfield神经网络.
根据运行方式的不同,Hopfield神经网络主要有2种工作方式:(1)串行工作方式.在某一时刻只有一个神经元改变状态,而其他神经元的输出不变.这一变化的神经元可以按照随机的方式或预定的顺序来选择.(2)并行工作方式.在某一时刻有N个神经元改变状态,而其他的神经元的输出不变.变化的这一组神经元可以按照随机方式或某种规则来选择.当某一时刻所有神经元都改变状态时,称为全并行方式.
根据激活函数选取的不同,Hopfield神经网络可分为离散型Hopfield神经网络和连续型Hopfield神经网络,分别记作DHNN (Discrete Hopfield Neural Network)和CHNN (Continues Hopfield Neural Network).本文所实现的是全并行工作方式的离散型Hopfield神经网络.
离散型Hopfield神经网络是激活函数的二值函数,即输入、输出为{0,1}的反馈网络.网络中每个节点都有一个阈值,每个节点都可处于一种可能的状态{0,1},即当该神经元所受的刺激超过其阈值时,神经元处于一种状态(如1),否则神经元就处于另一状态(如0).离散型Hopfield神经网络的网络方程见公式(1)和(2).
其中:ωij表示权值;θi表示阈值.
离散型Hopfield神经网络权值和阈值的设计方法有外积和法、伪逆法、正交化法等,其中正交化法的数学设计较为复杂,但与另两种方法相比,具有较大的稳定域.本文基于正交化法来计算离散型Hopfield神经网络的权值和阈值的.
正交化法计算公式推导如下:
(1)已知有q个需要存储的稳定平衡点T1,T2,…,Tq,T∈Rs,计算s×(q-1)阶矩阵YRs×(q-1)有
(2)对Y进行奇异值及酋矩阵分解,如存在2个正交矩阵U和V以及一个对角值为Y的奇异的对角矩阵A,满足:
由此可见,网络的权矩阵式是由W+和W-两部分权矩阵相加而成的,每一部分权所采用的都是类似于外积和法得到的,只是用的不是原始要求记忆的样本,而是分解后正交矩阵的分量.这两部分权矩阵均满足对称条件,即有(12)式成立.
2 Hopfield神经网络NIOSⅡ多核实现方案
采用NIOS多核技术实现Hopfield神经网络的系统结构见图2.图2中每个神经元用一个NIOSⅡ软核实现,各个NIOSⅡ软核分别具有PIO输入端和PIO输出端.每个核进行一次迭代之后,将相应的PIO输出端设为1,各个核的PIO输出端经过与门之后再送回给每个核的PIO输入端,当所有核完成一次运算后,会引发一个PIO输入端的中断,然后继续进行下一次的迭代运算.SDRAM作为多核之间的数据交换单元.cpu4用来接收输入数据和将输出数据送出显示.
图2 实现Hopfield神经网络的系统结构的硬件连线
3 Hopfield神经网络用于数字识别
为了将多核系统用于数字识别,首先将0~9标准数字的编号存入Hopfield神经网络作为初始稳态,然后用正交化法计算出Hopfield神经网络的权值和阈值,并存储到系统当中.当输入一个被噪声污染的数字的编码后,经过系统的训练,最终能收敛到初始稳态中的一个数字,完成了识别过程.
依据图2所示的结构,我们实现的是规模为64个神经元的Hopfield神经网络,共用了5个NIOSⅡ处理器核,cpu0,cpu1,cpu2和cpu3分别用来实现Hopfield神经网络的16个神经元.
具体运行步骤:各个核进行一次迭代运算后,都将迭代结果写入分别对应的SDRAM地址单元中,然后将其对应的一位PIO输出端置1.由于各个核的一位PIO输出端相与之后送到所有核的一位PIO输入端作为各个核的中断触发信号(本系统设定上升沿为中断触发信号),因此,当所有核都向存储器写完运算结果后,与门的输出为1.当各个核的中断被触发后,都开始读数过程,由于各个核每次迭代都需要所有核上一次的迭代结果,因此,每个核除读取自己所对应的SDRAM地址单元中的数据外,还需要读取其他核所对应的SDRAM地址单元中的数据.
各个核读数结束后开始进行下一次的迭代运算,如此循环反复,直到前后2次迭代运算得到的数据相同时,迭代运算结束.最后迭代运算结果送LED点阵显示.
之所以没有采用一个NIOSⅡ软核实现一个神经元,是因为考虑到离散型Hopfield每个核的运算都很简单,用一个NIOSⅡ软核实现多个神经元的运算可以节省时间,同时也可以节省FPGA的资源.
4 实验结果
10个被噪声污染的输入数字和经Hopfield神经网络识别后的数字的对比见图3和4.
图3 被噪声污染的数字
图4 Hopfield神经网络识别后的数字
经验证,当输入被噪声污染的0~9间的数字后,经Hopfield神经网络计算后能较好的识别初始样本0~9,实现了预期的功能.所用FPGA芯片为Altera CycloneⅡEP2C20F484C8,NIOSⅡ核选为经济型时,用本系统完成一次数字识别所用时间约500ms,具体时间依据所输入的被噪声污染的数字编码不同略有差异.
5 结论与展望
本文研究将NIOSⅡ多核技术应用于Hopfield神经网络的硬件实现,这种硬件实现方法充分体现了人工神经网络并行计算、分布式存储的优点,为人工神经网络的实现提供了新的方法.通过将硬件实现的Hopfield神经网络应用于数字识别,为人工神经网络的应用提供了新的思路.
[1] 李兰英.NIOSⅡ嵌入式软核SOPC设计原理及应用[M].北京:北京航空航天大学出版社,2006:35-49.
[2] 周立功.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2006:30-56.
[3] 张文娟.基于NIOSⅡ多核技术的BP神经网络的硬件实现方法研究[D].长春:东北师范大学物理学院,2009:5-45.
[4] 王连明,黄莹,邓玉芬,等.基于RBF神经网络的非线性电子器件的建模方法研究[J].东北师大学报:自然科学版,2008,40(3):46-50.
[5] 何东晓,周春光,刘淼,等.手写数字识别中组合式神经网络的构建方法[J].吉林大学学报:理学版,2009,47(6):1211-1216.
[6] 刘延喜.Linex损失下的BP神经网络分类方法及在人脸识别中的应用[J].吉林大学学报:理学版,2010,48(3):411-413.
[7] 董琰,彭琦,李建志.基于FPGA的辐射定标电源系统[J].东北师大学报:自然科学版,2010,42(3):67-70.
[8] 陈廷勇,殷树友,林和平.RBF人工神经网络拓扑结构定义与解的唯一性证明[J].东北师大学报:自然科学版,2009,41(3):30-35.
Method for hardware implementation of Hopfield neural network based on NIOSⅡ multi-core technology
CHENG Dan,WANG Lian-ming
(Institute of Applied Electronics,Northeast Normal University,Changchun 130024,China)
To take advantage of the parallel computing and distributed storage characteristics of Neural network,NIOS Ⅱ multi-core technology is used to implement the hardware of Hopfield neural network.The method uses interrupt and SDRAM to realize the communication between NIOS Ⅱmulti-cores.Then,the implemented Hopfield network is used for digital number identification.The effectiveness and feasibility of this method are proved.
SOPC;NIOSⅡ;multicore communications;Hopfield network
TP 183;TP 399
520·30
A
1000-1832(2011)03-0065-04
2010-08-28
国家自然科学基金资助项目(50478007).
程丹(1979—),女,硕士研究生;王连明(1972—),男,博士,教授,主要从事智能信息处理及嵌入式系统领域研究.
石绍庆)