【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《人工神经网络在ARM平台上的应用》,欢迎阅读!
龙源期刊网 http://www.qikan.com.cn
人工神经网络在ARM平台上的应用
作者:郭 超 金薇薇
来源:《中小企业管理与科技·学术版 》2008年第04期
摘要:文中提出把网络的建立、学习训练及测试这部分运算量大、耗时多的工作放在PC机上进行。当这部分工作完成,网络收敛后,将计算得到的网络参数存入一个文件,把该文件下载到嵌入式系统中,在嵌入式系统中进行网络重建,并应用神经网络迅速算出正在结果。 关键词:ARM BP网络 人工神经网络 嵌入式系统 一、人工神经网络介绍
人工神经网络是根据人们对生物神经网络的研究成果设计出来的,由一系列的神经元及相应的连接构成,具有良好的数学描述,不仅可以用适当的电子线路来实现,更可以方便地用计算机程序加以模拟。早在20世纪40年代初期,心理学家McCulloch、数学家Pitts就提出了人工神经网络的第一个数学模型,从此开创了神经复学理论的研究时代;其后,学者们又先后提出了感知空口无凭网络、BP网络、自组织网络、Hopfield网络、Elman网络等各种模型。目前已有200多种网络模型,十几种常用算法,使得人工神经网络技术得以蓬勃发展。它的应用领域也十分广阔,特别是在信息、、军事、化学、水利等工程领域,神经网络的作用越来越显著。
二、人工神经网络的特点
人工神经网络在结构上并行处理、分布式存储,因此运算速度快,具有较理想的容错性,同时还具有自学习、自组织、自适应能力。它是由大量的神经元广泛互连而成的系统,这个结构特点决定着人工神经网络具有高速信息处理的能力。
人工神经网络的知识存储容量很大,在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上,每个神经元及其连线只表示一部分信息,而不是一个完整的具体概念。只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。
由于人工神经网络中神经元个数众多以及整个存储信息容量的巨大,使得它具有很强的不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想思维存在于记忆中的事物的完整图像。只要输入的模式接近于训练样本,系统就能通过联想记忆给出正确的推理绪论。
正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其他的判断识别系统,如专家系统等,具有另一个显著的优点——健壮性。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微损
龙源期刊网 http://www.qikan.com.cn
伤之后,并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工作。 人工神经网络同现行的计算机不同,是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超过某一门限值后才输出一个信号,因此神经网络是一种具有高度非线性的超大规模连续时间动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人类智能信息处理能力和模拟人脑智能行为能力的一大飞跃。 (一)人工神经网络的基本功能
1.联想记忆 可以从不完整的信息和噪声干扰中恢复原始的完整信息,并对从未遇到过的新情况能根据以往的经验做出合理的分析和判断。这一能力使其在图像复原、图像和语音处理、模式识别、分类等方面具有巨大的应用价值。
2.非线性映射 可以用独特的方式对很复杂的非线性问题作分析、归纳和表述,并做出合适的处理。
3.分类与识别 神经网络可以很好地解决对非线性曲面的逼近,可以以任意精度逼近任意曲线,因此比传统的分类器具有更好的分类与识别能力。
4.优化计算 神经网络经过动态演变过程达到稳定状态时,对庆的能量函数最小,从而其稳定状态就是问题的的最优解。
5.知识处理 主要优点是能够自适应样本数据。当数据中有噪声、形变和非线性时,它能够正常地工作。
(二)BP网络原理
误差逆传播神经网络,简称BP(Back Propagation) 网络,是应用最广的一种人工神经网络。人工神经网络模型可分为三类:前向网络、反馈网络和自组织网络。BP网络属于前向网络。主要用于函数逼近、模式识别、分类及数据压缩等方面。 三、方案设计
大多人工神经网络程序都是在计算机上运行的,但在嵌入式领域中,更多应用都是针对便携式设备的,而目前嵌入式系统中,内在容量和通用处理器的处理能力都无法与计算机相比,这就限制了其处理能力,导致了嵌入式系统在应用人工神经网络时有时效性不好的先天缺陷。在暂时不能提高芯片处理能力的情况下,为了克服这个缺陷,就要让嵌入式系统尽量少参加运算,集中资源仅处理必要的任务来提高时效性。也就是说,在应用神经网络技术时,把运算量大的、耗时多的任务交给PC机先完成,而仅把用户要使用的应用程序部分载入嵌入式系统,这样可以大大地提高嵌入式系统在应用人工神经网络时的时效性。于是,可以把整体工作分为
龙源期刊网 http://www.qikan.com.cn
两部分。第一部分包括网络的建立、学习训练以及检测。这部分应该在PC机上实现,当网络经过训练、收敛后,计算得到了合适的各网络参数,将这些参数存入一个文件。第二部分包括重新复原网络、用户使用界面及其他对用户进行各种服务的应用程序。这部分程序将在嵌入式系统上运行,需要注意的是,在嵌入式系统使用神经网络处理问题之前,必须把预先在PC机上经过长时间学习训练得到的网络参数文件先装入嵌入式系统。因为嵌入式系统要根据这些网络参数在嵌入式系统中重新复原出结构合理的神经网络。也可以直接把网络参数文件与第二部分的应用程序放在一起,编译生成在ARM上运行的可执行代码,然后下载到嵌入式系统中运行。
四、人工神经网络在ARM平台上的实现
目前,成熟的BP网络算法代码很多。设计者只需要针对处理的特定问题而确定网络的规模,即确定网络层数和每层神经元数目。也可以再选择适当的动量因子、学习步长等极少的几个参数,然后调用BP网络算法代码进行迭代运算。直到网络收敛后,将得到的网络各权值等参数存入网络参数文件就可以了。这一部分的工作在PC机上完成,比较简单。第二部分是嵌入式系统中运行的程度,应该按照实际问题的要求,在需要时从第一部分生成的网络参数文件中取出各个网络参数复原网络。然后根据用户要求,将输入模式神经网络,由网络进行前身计算得出结果,从而快速合理地解决问题。因为在嵌入式系统中,只对网络进行前向运算,所以运算量相当小,瞬间即可完成。对于处理较复杂的非线性问题,这种处理方法会比普通算法快,并且因为它使用了第一部分在PC机上训练好的神经网络,所以具有普通算法不具备的容错、联想、自适应能力,而且整个应用具有非常好的健壮性。人工神经网络的应用部分只是作为解决问题的一种方法,应该包含在应用程序内。应用程序代码写完毕后,可以在PC上使用GNU提供的次序编译出ARM平台上的可执行代码。如果在ARM平台上移植了嵌入式Linux操作系统,还可以使用GNU的调试工具,如gdb、gdbserver、kgdb等,方便地对目标板上Linux下应用程序进行调试。 结语
人工神经网络作为一种交叉学科正受到人们的关注,同时也正被广泛应用于各个领域,在嵌入式领域的应用中,必须要克服时效性不好的缺点。文中提出的将训练和应用两部分分离的方法是一个有效的方法。该方法会推动人工神经网络在式领域更广泛地应用,特别是对于时效性、可靠性要求都很高的便携式设备,具有更广阔的应用前景。
本文来源:https://www.wddqxz.cn/ec8c7b1a29f90242a8956bec0975f46527d3a7eb.html