基于神经网络的压力传感器温度补偿算法的研究 毕业论文

更新时间:2024-07-06 08:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

天津农学院 毕 业 设 计

中文题目:基于神经网络的压力传感器温度补偿算法 的研究 英文题目:The study about Pressure sensors based on neural network algorithms for temperature compensation

学生姓名 赵玉玲

系 别 机电工程系 专业班级 2006 级测控技术与仪器专业1班 指导教师 赵金才 成绩评定

2010年 6月 日

目 录

1 引言 ............................................................. 1 2 压力传感器温度补偿的相关内容 ..................................... 1 2.1 压力传感器温度补偿的原因及方法 ................................. 1 2.2 压力传感器温度补偿算法的研究现状及发展趋势 ..................... 3 3 神经网络的简介 ................................................... 4 3.1 神经网络的基本内容 ............................................. 4 3.2 神经网络在压力传感器温度补偿中的应用 ........................... 6 3.2.1 BP神经网络的基本内容......................................... 6 3.2.2 RBF神经网络的基本内容........................................ 7 4 压力传感器温度补偿算法的研究 ..................................... 8 4.1 插值算法在压力传感器温度补偿中的应用 ........................... 8 4.1.1 插值算法的原理 ............................................... 8 4.1.2 插值算法在压力传感器温度补偿中的应用 ......................... 8 4.2 基于BP神经网络的压力传感器温度补偿算法的应用 ................. 10 4.3 基于RBF神经网络的压力传感器温度补偿算法的应用 ................ 12 4.4 三种温度补偿算法的对比及结论 .................................. 13 参考文献 .......................................................... 15 致 谢 ............................................................. 16 附录1: 外文文献原文............................................. 17 附录2:英文文献中文译文........................................... 28 附录3:........................................................... 37

摘 要

在工业生产中,监测和控制生产过程中的经常需要使用压力传感器,并且日常生活中传感器也是汽车各个电子控制单元的核心部件,是获取信息的工具,传感器的输出特性直接影响整个系统的性能,但该特性易受温度因素干扰,进而造成传感器监测、控制、测量精度降低,因此传感器温度补偿算法的研究对提高传感器的测量精度具有重要的现实意义。随着人工智能特别是神经网络技术的发展,为传感器温度补偿的算法提供了新的有效手段,对于不同的算法,都具有自己的优缺点。通过实验,将实验数据与理论数据进行对比找到基于神经网络的压力传感器温度补偿算法的优缺点,使其更好地应用于实践中。

关键词: 压力传感器;温度补偿;神经网络

ABSTRACT

Pressure sensors usually widely use in the process of monitor and control in the industrial production,and the sensors is also the core of the control unit in the automobile control system in our everyday life, the output characteristic of the sensors directly effect the entire system' performances,but it easily suffer from the factor of temperature.,and then cause the drop of the precision of the sensors' monitored、controlled、measurable properties,so to research the temperature compensation algorithm of the sensors is significant for the advance of the accuracy of measurement.Following the developing of the artificial intelligence especially the Neural network technology, it provides new effective means for the sensors' temperature compensation algorithm, different algorithm has its own merits and drawbacks .According to the contrast of the experimental data and theoretical data in the experiment, and then find themerits and drawbacks of the Neural network algorithms for temperature compensation of pressure sensors, in order to make full use of in the process of practice.

Key words: Pressure Sensors;Temperature Compensation;Neural Network

1 引言

测试技术中将测试分为电参数的测量与非电参数的测量。电参数有:电压、电流、功率、频率、阻抗、波形等,这些参量都是表征系统或设备性能的。非电参数有:机械量(如位移、速度、加速度、力、应力等)、化学量(如浓度、成分等)、生物量(霉、组织等)。在生活实践中,经常遇到的是非电量的测量。现在非电量的测量大部分是用电测量的方法去完成的,其中的关键技术就是如何将非电量转换成电量,即传感器技术。

从生产实践看,从人们日常的衣食住行到各种复杂的工程,都离不开传感器。例如,工厂自动化中的柔性制造系统FMS、计算机集成制造系统CIMS、大型发电厂、轧钢厂生产线、飞机、武器指挥系统、雷达、宇宙飞船、海洋探测器、各种家用电器、环境检测器、医疗卫生器械、生物工程等都依靠不同性质、不同个数的传感器来获取信息。毫不夸张地说,未来的社会是传感器的社会。 2 压力传感器温度补偿的相关内容 2.1 压力传感器温度补偿的原因及方法 1 压力传感器温度补偿的原因

无论是工业生产的监测和控制过程还是日常生活中的汽车,传感器都是各个电子控制单元的核心部件,是获取信息的工具,人们依靠不同性质、传感器的输出特性直接影响整个系统的性能,但该特性易受温度因素干扰,进而造成传感器测量精度降低,导致各个电子控制单元的工作性能下降,因此传感器特性温度补偿技术的研究对提高传感器的测量精度具有重要的现实意义。

尤其是在一些需要精确控制温度的生产工艺中,若想在现有的硬件设备条件下,进一步提高温度控制精度,就需要在软件上下功夫。目前在温度控制中采用较多的是PID控制方法,由于PID控制方法是在建立精确的数学模型的基础上使用的,而温度控制系统属于惯性环节,况且许多温度控制系统受负载的影响较大,同时在系统中还存在着参数时变性、结构非线性等因 ,因此很难建立精确的数学模型,所以在实际应用中人们常根据实际的应用环境采用不同的方法进行温度控制。近些年来随着科学技术的发展越来越多的温度补偿方法被应用于实践中,尤其是随着人工智能特别是神经网络技术的发展,神经网络也被广泛的应用与实践中。 2 压力传感器温度补偿的方法

[1]

1

(1)压力传感器

压力是工业生产中常见的一个重要参数,在冶金、化工、制药、航空、航天、国防等领域压力测试一般是必不可少的。比如,化工行业中的合成氨的生产需要压力测试,在武器系统测试中对抽气装置压力的测试、反后座装置的压力测试,在工业生产中,最普遍的蒸汽锅炉、液压机和水压机等设备上的压力测试,交通运输中汽车、火车、轮船和飞机等使用的各类发动机动力、液压、气压管道中的压力测试,冶金工业上的冶炼,热风管道中的压力参数的控制和监测;在航空和航天技术部门中,一些重要的飞行参数,如高度、速度等技术性能参数的测量均以压力测试为基础。压力传感器是压力测试的关键之一。压力传感器按其工作原理,可分为应变式压力传感器、压阻式压力传感器、压电式力传感器、电涡流式压力传感器等。 (2)温度补偿的方法

一般情况下,压力传感器对温度、加速度或者其它一些环境参量存在交叉灵敏度,即压力传感器的输出不仅决定于所受的压力,而且还受温度、加速度等其它一些因素的作用,这可能会很大程度上影响传感器的性能和测量准确度。

对于这一实际问题,国内外通常采用硬件补偿或软件补偿,硬件补偿一般就是在传感器电路中增设其它部件或者更改传感器内部结构以达到补偿的目的,它一般分为两大类:一是对传感器内部的核心是电敏电登电桥进行温度补偿设计,如掺杂、串/并电阻、双全桥、PN节、双半等;另一类是对压力传感器输出信号进行处理通过一些信号调理芯片,如AX1452、ZMD31020、PGA3og等。其中软件补偿与通过信号调理芯片的硬件性能也是对传感器输出信号进行处理,一般是通过对压力传感器的标定数据的处理。目前主流的软件补偿有多维回归、神经网络法[2](如:双线性插值、样条插值函数、BP神经网络、RBF神经网络、小波等)。

然而在实际应用中,对于通过设计压力传感器内部压敏电阻或者内部结来实现温度补偿度很高,但是也有开发周期较长,难度大等缺点,而通过外加信号调理补偿一般是对传感器输出信号进行处理(类似软件补偿),也有需要外置如软件补偿灵活等特点。对于软件补偿中的多维回归分析法,缺点是需模的矩阵方程,在求解方程时,维数越多,数据量越大;而随着人工智能技术特别是神经网络的发展,神经网络法,具有较强的自学习、自适应、自调整能力。

在神经网络法方面,其中BP神经网络、RBF神经网络都是在压力传感器的温度补偿算法中应用范围比较广的算法。因此在实际应用中,人们应该根据实际的应用要求以及应用的环境选择实用的压力传感器的温度补偿方法,尤其是随着现代科技的发

2

展,基于神经网络的压力传感器的温度补偿算法越来越进步越来越得到人们的认可,应用的范围越来越广。 (3) 温度补偿原理

采用神经网络函数法改善传感器输出特性的原理图由传感器模型和神经网络模型两部分组成,如图1所示[3]。

图1 传感器温度补偿原理

在图3中,p表示经神经网络温度补偿后的输出压力值,其压力传感器的数学模型为

y?(x,t) (1)

式中,x--待测目标压力参量; t--非待测目标温度参量; y--传感器输出量。

若y和t均为x的单值函数,则式(1)的反函数存在。将压力传感器的目标参量值及温度敏感元件的非目标参量值作为网络的输入,经网络处理后的输出压力P即为消除了温度干扰的待测目标参量x。

2.2 压力传感器温度补偿算法的研究现状及发展趋势

现代科学技术的迅猛发展,使人类社会进入信息时代。在信息时代,人们的社会活动将主要依靠对信息资源的开发及获取、传输与处理。而传感器处于自检测与控制系统之首,是感知、获取与检测信息的窗口,它处于研究对象与测控系统的接口位置,一切科学研究和生产过程要获取的信息都要通过它转换为容易传输与处理的电信号。概括的讲传感器是一种将各种非电学量(包括物理量、化学量、生物量等)按一定的规律转换成便于处理和传输的另一种物理量(一般为电学量)的装置。传感器技术被认为是信息技术三大支柱之一,现在人们常常将计算机比喻为人的大脑,传感器比喻为人们的感觉器官。“没有传感器技术就没有现代科学技术”的观点现在为全世界所公认,

3

国内外都将传感器技术列为重点发展的高技术。目前,从工业生产、宇宙探索、海洋开发、环境保护、资源调查、医学诊断、文物保护、灾情预报到包括生命科学在内的每一项现代科学技术的研究以及人民群众的日常生活,几乎无一不与传感器和传感器技术紧密联系着。因此,传感器的地位与作用特别重要。比如,在现代工业生产尤其自动化生产过程中,要用各种传感器来监视和控制生产过程中的各个参数,使设备工作在正常状态或最佳状态,并使产品达到好的质量。因此可以说,没有众多优良的传感器,现代化生产也就失去了基础。传感器是信息采集系统的首要部件,是实现现代化测量和自动控制(包括遥感、遥测、遥控)的重要技术工具,是现代信息产业的源头,又是信息社会赖以存在和发展的物质与技术基础。现在,传感技术与通信技术(信息传输)、计算机技术(信息处理),构成了现代信息技术的三大支柱,它们在信息系统中分别起着“感官”、“神经”和“大脑”的作用。可以设想如果没有高度保真和性能可靠的传感器,没有先进的传感器技术,那么信息地准确获取就成为一句空话,通信技术和计算机技术就成为了无源之水。

然而实际应用中压力传感器的输出不仅决定于所受的压力,而且还受温度、加速度等其它一些因素的作用,这可能会很大程度上影响传感器的性能和测量准确度。一直以来用来进行压力传感器温度补偿的方法很多,尤其是人工智能技术的发展推动了神经网络技术的发展,神经网络温度补偿的方法越来越多的被应用于实践中,并且随着科学技术的不断进步,基于神经网络的压力传感器的温度补偿算法会越来越进步,越来越先进,越来越被广泛的应用。 3 神经网络的简介 3.1 神经网络的基本内容

基于人工神经网络(artificialneural network)的控制称之为神经网络控制系统,简称为神经控制。随着人工神经网络的进展,神经网络越来越多地用于控制领域的各个方面,如过程控制、机器人控制、生产制造、模式识别及决策支持等。目前,人工神经网络方法已经广泛地应用于误差补偿,这是因为神经网络有很强的环境适应能力、学习能力、容错能力和并行处理能力,使信号处理过程更接近于人类的思维活动。基于人工神经网络传感器温度补偿方法的优点是: ①有良好的自适应性,自组织性和很强的学习功能。②具有较好的容错性,即在只有部分输入条件,甚至包含了错误输入条件的情况下、网络也能给出正确的值。③有良好的泛化能力(即具有插值特性),对未经训练的数据也能给出一个合理的输出。将神经网络用于传感器温度补偿,使传

4

感器具有了更多的智能,从而可以更大限度地发挥传感器在测试中的作用。 1 神经网络的概念

神经网络(Neural Network)是指:神经网络(Neural Network)是一个人造或生物神经的互连组。有两个主要的神经网络组:1.生物神经网络,例如人的大脑或其中的部分。2.人造神经网络最初是指电子,机械或计算仿真或生物神经网络的模型。

2 神经网络的特性

人工神经网络是生物神经网络的一种模拟和近似。人工神经网络是一个并行和分布式的信息处理网络结构,该网络一般由许多神经元组成,每个神经元有一个单一的输出,它可以连接到很多其它的神经元,其输入有多个连接通路,每个连接通路对应有一个连接权系数。由于神经网络是根据对象的输入- 输出信息,不断地对网络参数进行学习,以实现从输入参数到输出参数的非线性映射,还可以根据来自机理模型和实际运行对象的新的数据样本进行自适应学习,尤其是通过实时不断的学习,可以适应对象参数的缓慢变化。因此,这种方法克服了机理建模所存在的困难。

神经网络作为一种新技术硬起了人们的巨大兴趣,病越来越多的应用与控制领域,这正是因为与传统的控制技术相比,神经网络具有以下特征:

(1)非线性。神经网络在理论上可以去逼近任何非线性的映射。对于非线性复杂系统的建模、预测,神经网络比其他方法更实用、更经济。

(2)平行分布处理。神经网络具有高度平行的结构,这是其本身可平行实现,故较其他常规方法有更大程度的容错能力。

(3)硬件实现。神经网络不仅可以平行实现,而且一些制造厂家已经用专用的VLSI硬件来制造神经网络。

(4)学习和自适应性。利用系统实际统计数据,可以对网络进行训练。受适当训练的网络有能力泛化,即当输入出现训练中未提供的数据时,网络也有能力进行辨识。神经网络还可以在线训练。

(5)数据融合。神经网络可以同时对定性、定量的数据进行操作。在这方面,神经网络正好是传统工程和人工智能领域信息处理技术之间的桥梁。

(6)多变量系统。神经网络能处理多输入信号,且可以具有多个输出,故适用于多变量系统。

从控制理论的观点来看,神经网络处理非线性的能力是最有意义的;从系统识别和模式识别的角度考虑,神经网络跟踪和识别非线性特性的能力是其最大的优势。

3 神经网络的分类

[4]

5

神经网络是有大量的神经元广泛连接成的网络。(1)根据连接方式的不同,神经网络可以分为两大类:无反馈的前向神经网络和相互连接型网络(包括反馈网络)。其中前向神经网络分为输入层、隐含层和输出层。隐层可以有若干层,每一层的神经元只接受前一层的神经元的输出。而相互连接型网络的神经元相互之间都可能有连接,因此,输入信号要在神经元之间反复往返传递,从某一初态开始,经过若干次变化,渐渐趋于某一稳定状态,或进入周期振荡等其它状态。(2)迄今为止,约有40种神经网络模型,如BP网络、RBF神经网络、Hopfield网络等。从信息传递的规律来看,分为3类:前向神经网络、反馈型神经网络和自组织神经网络。 3.2 神经网络在压力传感器温度补偿中的应用

神经网络模型越来越广泛的应用在实践中。同样在压力传感器温度补偿方面神经网络法也被应用,如BP神经网络、RBF神经网络、小波神经网络等。其中BP神经网络、RBF神经网络是在压力传感器的温度补偿算法中应用范围比较广的算法。 3.2.1 BP神经网络的基本内容

1 概念 BP网络称为误差反向传播的前向网络,可以用在系统模型辨识、预控制中,又称为多层并行网。

2 BP神经网络原理

BP神经网络由多个网络层构成,其中,包括一个输入层、一个或几个隐含层、一个输出层,层与层之间采用全互连接,同层神经元之间不存在相互连接.隐含层神经元通常采用S型传递函数,输出层采用purelin型传递函数。BP网络的学习过程由前向传播和反向传播组成,在前向传播过程中,输入模式经输入层、隐含层,逐层处理,并传向输出层。如果在输出层不能得到期望的输出,则转入反向传播过程,将误差值沿连接通路逐层反向传送,并修正各层连接权值。对于给定的一组训练模式,不断用一个训练模式训练网络,重复前向传播和误差反向传播过程,直至网络相对误差小于设定值为止。 具有单隐含层的BP神经网络如图2所示:

输入层 隐含层 输出层

[5]

S1?1 S2?R S2 W2 a2 P W1 f1S2?1 R?1 + b2 b1 + ?f2? R a1?f1(w1p?b1) a2?f2(w2p?b2) 图2 具有单隐层的BP神经网络

6

其中,P为输入矢量;R为输入矢量的维数;S1为单隐含层BP神经元的个数;S2为输出层神经元的个数;W1为S1×R维隐含层神经元的权值矩阵;W2为S2×R 维输出层的权值矩阵;a1为隐含层神经元输出矢量;a2错误!未找到引用源。为输出层神经元输出矢量;b1为隐含层神经元的阈值;b2为输出层神经元的阈值;n1隐含层节点的输入;n2为输出层节点的输入;f1为S型传递函数;f2为purelin型传递函数。BP网络训练的关系式如式(2): 节点输出为:

错误!未找到引用源。 ai?f(?wij?ai?bj) (2) 式中:i为第i个输出层神经元;j为第j个隐含层神经元;ai为节点输出;Wij为节点连接权值;f为传输函数;bj为神经元阈值。式(1)表示对隐含层与i为第i个输出层神经元相连接的隐含层神经元求和,即对j求和。 权值修正:

Wij(n?1)???Ei?ai?h?Wij(n) (3)

式中:η为学习因子(根据输出误差动态调整);h 为动量因子;Ei为计算误差。 3.2.2 RBF神经网络的基本内容

1 概念 RBF网络称为径向基函数网络,是在借鉴生物局部调节和交叠接受区域知识的基础上提出的一种采用局部接受域来执行函数映射的人工神经网络。

2 RBF神经网络原理

径向基函数(Radial Basis Function,RBF)网络是一种典型的局部逼近神经网络,它不像全局逼近神经网络那样,对于每个输入输出数据对,网络的每一个权值均需要调整,而是只调整对网络输出有影响的少量几个权值,从而使局部逼近网络具有学习速度快的优点相对于BP网络RBF网络在逼近能力、分类能力和学习速度等方面均具有明显优势,且RBF网络可在任意精度下逼近任意的非线性函数,并不存在局部最小问题。因此RBF网络已成为取代BP神经网络的另一种前向神经网络,越来越广泛地应用于信息处理、图像处理和工业控制等领域。

图3是 RBF网络的构成图,图中输入向量不需要通过权连接,直接映射到隐层空间,即输入层只是传递输入信号到隐层。隐层单元通过径向基函数实现变换后送到输出层,径向基函数通常采用高斯基函数[6]。

7

图3 RBF神经网络构成图

其中从隐层空间到输出空间的变换是线性的,输出层实质上是一个线性组合器。从总体来说,RBF神经网络的输入到输出的映射是非线性的,可以实现从Rn到 Rm的非线性映射,而网络输出对可调整参数而言却又是线性的。这样网络的权值Wi就可以通过直接求解线性方程组得出,从而不但加快了训练精度,而且还有效地避免了局部极小值问题。

4 压力传感器温度补偿算法的研究

4.1 插值算法在压力传感器温度补偿中的应用 4.1.1 插值算法的原理

插值法又称“内插法”。利用函数f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这力一法称为插值法。如果这特定函数是多项式,就称它为插值多项式。插值法是函数逼近的一种重要方法,是数值计算的基本课题。其中包括具有唯一插值函数的多项式插值和分段多项式插值,对其中的多项式插值中的n次多项式插值的方法,即给定n+1各点处的函数值后,构造一个n次插值多项式的方法。虽然理论上可以用解方程组那里m=n得到所求插值多项式,但遗憾的是方程组当n较大时往往是严重是病态的。故不能用解方程组的方法获得插值多项式。插值法包含的内容有:lagrange插值、newton插值、hermite插值,分段多项式插值及样条插值等。本设计只应用了插值法中最简单的一种,即在区间上取若干个点,通过公式(X+Y)/2算出逼近点的值,从而得到f(x)的逼近函数。

4.1.2 插值算法在压力传感器温度补偿中的应用

本设计的实验中,压力范围0~40MPa ,温度范围17~125℃,修正前实验数据见表1.

8

表1 不同温度和压力下传感器的频率输出

实际温度℃ 17 170040.129 50 170294.653 75 100 125 温度读数Hz 0 170499.942 170711.340 170956.228 35293.110 35272.524 35251.718 35225.640 35195.407 5 实际压力 10 15 20 25 压力读数Hz 35781.546 35760.583 35739.313 35713.524 35684.219 36262.258 36241.105 36219.296 36194.032 36172.216 36735.748 36713.635 36692.087 36667.300 36652.114 37202.038 37178.813 37157.739 37133.427 37117.735 37661.562 37638.348 37616.892 37592.919 37590.273 38110.542 38091.029 38069.416 38045.751 38055.295 38553.090 38537.798 38515.639 38492.575 38503.846 38990.887 38978.683 38956.138 38934.497 38943.270 MPa 30 35 40 可以看出:温度的变化对压力传感器的输出性能影响是非常明显的。在实际应用时,因为由于环境温度的变化比较大,所以必须进行适当的温度补偿。根据插值算法的公式对实验数据进行温度补偿,由MATLAB得其中一组数据的补偿图像为:

3.53x 1043.5283.526p(Hz)3.524实线表示插值算法补偿后的曲线 3.522虚线表示传感器的实际输出 3.523.5180204060x(度)80100120140

图4 插值算法实现温度补偿的图形

9

4.2 基于BP神经网络的压力传感器温度补偿算法的应用

1 BP神经网络的学习过程

BP神经网络的学习过程包括4个步骤: ①输入模式由输入层经中间层向输出层正向传播输出;②输出误差由输出层经中间层向输入层反向传播逐层修正连接权;③正向传播和反向传播反复交替进行网络记忆训练;④网络学习收敛。

在学习过程中,标准BP算法对所有的权值使用一个统一的学习速度,每一步的长度与其方向斜率成比例,其权值更新的基本公式为[7]:

E??E Wpij(n)???(?E/?Wij)????????????(5) 式中,η为步长参数(学习速率);Wij(n)为第n次权值修正量;?E/?Wij为误差平方和对权值的负梯度。由于BP只用局部梯度信息,故η值必须很小,从而使该算法跳过极小值,这导致学习收敛速度变慢,为了加快收敛速度,常用的方法是加入动量因子,其权值更新式为:

Wij(n)???E?Wij(n)??Wij(n?1)???????????(6) 式中,μ是动量因子,用来阻尼局部振荡,为了满足加快训练速度,避免陷入局部极小值等要求,提出了改进BP算法的方法:①对每一权值使用不同的学习速率η,并采用指数衰减函数δ(k)表示。这样可以使学习速率η在较平坦的区域比在较陡的区域增加的快一些;②在学习过程中,学习速率可根据误差函数E 的梯度信息,自适应地进行增益调整,以改善网络的概括能力,提高网络收敛性能;③在算法中使用动量项,而且动量项和学习速率一样,也是变化的;④为了避免学习速率或动量过大,设置上限值;⑤采用参数λ和概率P控制网络学习过程的记忆和恢复,即如果误差的增加次数大于λ,则减小学习速率和动量系数,搜索到最佳点处重新进行学习,为避免波动,搜索以概率P的方式随机进行。 2 温度误差修正原理模型

利用人工神经网络进行温度补偿,就是利用神经网络的基本特性,使传感器具有复杂的非线性映射、自组织、自学习及推理的自适应能力。神经网络法不必建立包括待消除的非目标参量在内的函数解析式,而只需要训练样本,通过学习、训练便可以模拟出输入输出的内在联系。神经网络需要的学习样本,由多维标定实验数据提供,网络模块由软件编程来实现。神经网络修正压力传感器的原理框图如图3所示,传感器模块为:输入压力P和温度t,输出周期T和温度t;网络模块为:输入周期T和温度t,经过BP

10

网络学习、训练,消除温度t的影响而输出T'或P'。

T t 压力传感器 T 神经 t 网络 T或P '‘温度传感器 图5 温度误差补偿原理图 3 仿真研究与实验结果

本设计选择具有单隐层的BP神经网络,其结构图如图1所示,神经网络的训练和仿真是在MATLAB7.8环境下,通过神经网络工具箱,编制相应程序而实现的。由于BP神经网络的隐含层采用的传递函数为对数的S型函数,它的输出范围为(0,1),由此由公式:

X?Xin?XinmaxXinmax?Xinmin0.9(Yin?YinYinmaxminmin (7)

) Yin??Yin?0.05 (8)

将实验数据进行归一化处理,使得处理后的数值范围在(0,1)之间。归一化处理后的神经网络的输入输出标准样本数据表为:

表2 神经网络的输入输出标准样本数据表

实际温度℃ 17 0 50 0.278 0.789 0.785 0.765 0.736 0.725 0.674 0.699 0.747 0.783 75 0.502 0.576 0.566 0.523 0.478 0.475 0.373 0.365 0.381 0.384 100 0.733 0.309 0.301 0.242 0.182 0.186 0.037 0 0 0 125 1.000 0 0 0 0 0 0 0.147 0.186 0.156 温度读数Hz 0.05 1 1 1 1 1 1 1 1 1 0.163 实际压力 0.275 0.386 0.500 0.613 压力读数MPa 0.725 Hz 0.838 0.950 在基于BP神经网络的温度补偿实验中,输入向量的维数为2?5,目标向量的维

11

数为5?5,训练误差为0.005,训练次数为5000次,通过实验程序得到训练后的权值和阈值,从而获得BP神经网络温度补偿的模型。仿真后得到的数据为:

表3 仿真后得到的数据表

实际温度℃ 温度读数Hz 0.386 实际压力0.725 0.500 0.613 17 0 压力读数Hz 0.9424 0.9383 1.0392 0.9392 0.9659 50 0.278 0.7129 0.7302 0.7375 0.7142 0.7839 75 0.502 100 0.733 125 1.000 0.5207 0.2015 -0.0341 0.5101 0.2533 -0.1143 0.4603 0.0733 0.0206 0.4824 0.0450 -0.3716 0.4888 0.0792 -0.0587 MPa 0.838 补偿仿真曲线为:

1.210.8P(Hz)0.60.4虚线为补偿前的曲线,实线为补偿后曲0.20-0.200.10.20.30.40.5x(度)0.60.70.80.91

图5 BP神经网络实现温度补偿的图形

4.3 基于RBF神经网络的压力传感器温度补偿算法的应用

1 RBF网络算法

RBF网络算法是一种性能良好的前向网络,它不仅有全局逼近性质,而且具有最佳逼近性能。径向基函数神经网络(RBF)是一种三层前馈网络,与BP网络不同,RBF网络最显著的特点是隐节点的基函数采用距离函数(如欧氏距离),而激活函数采用径向基

12

函数(如高斯函数)。径向基函数是一种局部分布的中心点径向对称衰减的非负非线性函数,这种“局部特性”使得RBF网络成为一种局部响应神经网络。

2 温度误差修正原理模型

RBF网络是一种典型的局部逼近神经网络,它不像全局逼近神经网络那样,对每个输入输出数据对、每一个权值均需要调整,而是调整对输出有影响的少量几个权值,从而使局部逼近网络在逼近能力和学习速度方面有明显的优势。RBF网络的操作有两个过程:训练学习和正常操作或称回忆。训练时,把要交给网络的信息作为网络的输入和要求的输出,使网络按前述训练算法调节各神经元之间的连接值和神经元阈值,直到加上给定输入网络能够产生给定输出(在允许的误差范围内)为止,这时网络的训练即告完成。正常操作,就是对网络进行校验,给训练好的网络输入一个信号,它应该正确回忆出相应的输出。

3仿真研究与实验结果

由前面所述的RBF神经网络模型,在基于RBF神经网络的温度补偿实验中,为了实现实验的对比效果仍取输入向量的维数为2?5,目标向量的维数为5?5,训练误差为0.005,训练次数为5000次,通过实验程序得到训练后的权值和阈值,从而获得RBF神经网络温度补偿的模型。 4.4 三种温度补偿算法的对比及结论 三种算法的对比

(一)(x+y)/2的线性插值算法在实现温度的补偿过程中公式简单,使用方便;但由于在实现温度补偿的过程中使用的是两个测量点之间的平均值所实现的补偿过程的误差比较大,因此只能用在误差要求不高的情况下。

(二)BP神经网络算法准确度高,它基本消除了温度对压力传感器输出信号的影响,实现了压力传感器的温度补偿,提高了压力传感器的精确度和可靠性。利用BP人工神经网络对压力传感器静态输出特性进行修正的新方法由计算机仿真和试验结果表明:该方法能够有效改善传感器的输出特性,并且速度快、精度高、鲁棒性强,便于用硬件实现,具有较高的推广应用价值。采用BP神经网络对压力传感器进行温度补偿,由于神经网络具有非线性特性、自适应和学习能力,只要能获取传感器的输入和输出数据,通过适当的训练学习,可以逼近其输入输出特性。

但是,BP神经网络存在以下问题:

[9]

13

(1)学习算法的收敛速度很慢。因为BP算法是以阶梯下降法为基础的,只具有先行收敛速度,虽通过引入“势态项”增加了一定程度的二阶信息,但对算法的性质并无根本的改变。

(2)学习因子和记忆因子没有一定的选择的规则,选的过大会使训练的过程引起振荡,选的过小会使训练的过程更加缓慢。

(3)网络对初始值很敏感。同一BP网络不同的初值会使网络的收敛速度差异很差。若初始权值离极小点很近,则收敛速度较快;若初始值权值远离极小点,则收敛速度极慢。另外,若输入初始值不合适,则训练起始段就会出现振荡。

(4)网络隐层节点的个数的选择尚无理论指导,一般是根据经验选取的。 (5)从数学上看BP算法一个非线性的优化问题,这就不可避免的存在局部极小问题。

另外BP神经网络在控制领域的缺点还有是它的权值和偏置值矩阵占用的内存太大,所以对单片机的内存要求也高,成本相应的也要增加。

(三)RBF网络算法是一种性能良好的前向网络,它不仅有全局逼近性质,而且具有最佳逼近性能。将带遗忘因子的梯度下降算法应用于RBF神经网络的参数调整,该算法具有良好的非线性映射能力、自学习和泛化能力,收敛较快,特别适用于传感器数学模型的建立。采用软硬件相结合的方法,实现了高精度的测量。 结论

通过实验对比插值算法的实现的温度补偿与实际的输出特性误差比较大;BP和RBF神经网络实现的温度补偿精度较高,但在应用中,二者的区别有:?与BP神经网络相比RBF神经网络的输出是隐单元输出的线性加权和,学习速度加快;?BP神经网络使用sigmoid()函数作为激活函数,这样是的神经元有很大的输入输入可见区域;而RBF神经网络使用径向函数(一般使用高斯函数)作为激活函数,神经元输入空间很小,因此需要更多的径向基神经元;?RBF神经网络具有比BP神经网络更强的逼近能力和更快的收敛速度,且不存在局部极小问题,通过训练RBF神经网络能够逼近任意非线性。采用这种方法进行温度补偿可以避免直接用电路实现补偿进行调节时,各参数之间的相互影响,甚至在传感器输出电压与温度之间呈非线性关系时也能有效地校正。

通过上面的实验分析,因此在实际应用中我们应该根据实际的的需要选择适当的补偿方法来实现温度的补偿过程。

14

参 考 文 献

[1] 于化景,付华.基于模糊神经网络融合的温度控制方法[J].辽宁工程技术大学学报,2003,22(5):649-650.

[2] 杨德旭,何凤宇,魏利华.基于BP神经网络温度补偿技术的研究[J].农机化研究,2008,1(1):71-73.

[3] 孟彦京,汪宁,佟明,杨雅莉.小波神经网络在压力传感器温度补偿中的应用[J].陕西科技大学学报,2009,2(4):84-97.

[4] 张朋,陈明,秦波,何鹏举.基于BP神经网络的振动筒压力传感器温度补偿[J].传感技术学报,2007,20(10):2213-2217.

[5] 韦兆碧,刘晔,马志瀛,胡光辉,时德钢.基于RBF网络的光纤位移传感器温度补偿研究[J].电工电能新技术,2004,23(2):42-45.

[6] 张雪君.电容式压力传感器温度补偿的RBF神经网络[J].北京:传感器技术,2001,20(5):9-11.

[7] Mukherjee S,Nayar S K.Automatic generation of RBF networks using wavelets[J]. Pattern Recognition,1996,29(8):1369-1383.

[8] 侯媛彬,杜京义,汪梅.神经网络[M].西安:西安电子科技大学出版社,2007.17-39,125-135.

[9] Lippmann R P.An introduction to computing with neural nets.IEEE ASSP Magazine,1987,4(4):19-22.

[10] Mark Beale,Neural Network Toolbox [M].北京:机械工业出版社,2004.

15

致 谢

本论文是在我的导师赵金才赵老师的亲切关怀和悉心指导下完成的。在论文的过程中每一次遇到不懂的问题赵老师都会认真和耐心的为我讲解,并且老师会经常检查论文的进度情况,对论文中存在的问题及时指出,为我的修改提供建议。论文的这段时间正因为是老师的严格要求以及鼓励与促进作用让我在这段时间学到了一些东西。这段时间里老师给我的启迪及所学到的内容,相信,学到的学习方法也同样会影响我今后的学习。

同时,也要感谢学校图书馆,通过在图书馆查阅的与论文相关的资料为我的论文的完善提供了很大帮助。

16

附录:

附录1: 外文文献原文

Mark Beale,Neural Network Toolbox: 1 Neuron Model

Simple Neuron

A neuron with a single scalar input and no bias appears on the left below.

The scalar input p is transmitted through a connection that multiplies its strength by the scalar weight w, to form the product wp, again a scalar. Here the weighted input wp is the only argument of the transfer function f, which produces the scalar output a. The neuron on the right has a scalar bias, b. You may view the bias as simply being added to the product wp as shown by the summing junction or as shifting the function f to the left by an amount b. The bias is much like a weight, except that it has a constant input of 1.The transfer function net input n, again a scalar, is the sum of the weighted input wp and the bias b. This sum is the argument of the transfer function f.

(Chapter 7 discusses a different way to form the net input n.) Here f is a transfer function, typically a step function or a sigmoid function, which takes the argument n and produces the output a. Examples of various transfer functions are given in the next section. Note that w and b are both adjustable scalar parameters of the neuron. The central idea of neural networks is that such parameters can be adjusted so that the network exhibits some desired or interesting behavior. Thus, we can train the network to do a particular job by adjusting the weight or bias parameters, or perhaps the network itself will adjust these parameters to achieve some desired end.

17

All of the neurons in this toolbox have provision for a bias, and a bias is used in many of our examples and will be assumed in most of this toolbox. However, you may omit a bias in a neuron if you want.

As previously noted, the bias b is an adjustable (scalar) parameter of the neuron. It is not an input. However, the constant 1 that drives the bias is an input and must be treated as such when considering the linear dependence of input vectors in Chapter 4, “Linear Filters.”

2 Transfer Functions

Many transfer functions are included in this toolbox. A complete list of them can be

found in “Transfer Function Graphs” in Chapter 14. Three of the most commonly used functions are shown below.

The hard-limit transfer function shown above limits the output of the neuron to either 0, if the net input argument n is less than 0; or 1, if n is greater than or equal to 0. We will use this function in Chapter 3 “Perceptrons” to create neurons that make classification decisions.The toolbox has a function, hardlim, to realize the mathematical hard-limit ransfer function shown above. Try the code shown below.

n = -5:0.1:5;

plot(n,hardlim(n),'c+:');

It produces a plot of the function hardlim over the range -5 to +5.

All of the mathematical transfer functions in the toolbox can be realized with a function having the same name.

The linear transfer function is shown below.

18

Neurons of this type are used as linear approximators in “Linear Filters” in Chapter 4.

The sigmoid transfer function shown below takes the input, which may have any value between plus and minus infinity, and squashes the output into the range 0 to 1.

This transfer function is commonly used in backpropagation networks, in part because it is differentiable.The symbol in the square to the right of each transfer function graph shownabove represents the associated transfer function. These icons will replace the general f in the boxes of network diagrams to show the particular transfer function being used.

3 Neuron with Vector Input

A neuron with a single R-element input vector is shown below. Here the individual element inputs

p1, p2,... pR are multiplied by weights

w1, 1, w1, 2, ... w1, R

and the weighted values are fed to the summing junction. Their sum is simply Wp, the dot product of the (single row) matrix W and the vector p.

19

The neuron has a bias b, which is summed with the weighted inputs to form the net input n. This sum, n, is the argument of the transfer function f. n = w1, 1p1 + w1, 2p2 + ... + w1, RpR + b

This expression can, of course, be written in MATLAB code as: n = W*p + b

However, the user will seldom be writing code at this low level, for such code is already built into functions to define and simulate entire networks.

The figure of a single neuron shown above contains a lot of detail. When we consider networks with many neurons and perhaps layers of many neurons, there is so much detail that the main thoughts tend to be lost. Thus, the authors have devised an abbreviated notation for an individual neuron. This notation, which will be used later in circuits of multiple neurons.

Here the input vector p is represented by the solid dark vertical bar at the left.The dimensions of p are shown below the symbol p in the figure as Rx1. (Note that we will use a capital letter, such as R in the previous sentence, when referring to the size of a vector.) Thus, p is a vector of R input elements. These inputs post multiply the single row, R column matrix W. As before, a constant 1 enters the neuron as an input and is multiplied by a scalar bias b. The net input to the transfer function f is n, the sum of the bias b and the

20

product Wp. This sum is passed to the transfer function f to get the neuron’s output a, which in this case is a scalar. Note that if we had more than one neuron, the network output would be a vector.

A layer of a network is defined in the figure shown above. A layer includes the

combination of the weights, the multiplication and summing operation (here realized as a vector product Wp), the bias b, and the transfer function f. The array of inputs, vector p, is not included in or called a layer. Each time this abbreviated network notation is used, the size of the matrices will be shown just below their matrix variable names. We hope that this notation will allow you to understand the architectures and follow the matrix mathematics associated with them.

As discussed previously, when a specific transfer function is to be used in a figure, the symbol for that transfer function will replace the f shown above. 4 Summary

The inputs to a neuron include its bias and the sum of its weighted inputs(using the inner product). The output of a neuron depends on the neuron’s inputs and on its transfer function. There are many useful transfer functions.A single neuron cannot do very much. However, several neurons can becombined into a layer or multiple layers that have great power. Hopefully thistoolbox makes it easy to create and understand such large networks.

The architecture of a network consists of a description of how many layers a network has, the number of neurons in each layer, each layer’s transfer function, and how the layers connect to each other. The best architecture to use depends on the type of problem to be represented by the network.

A network effects a computation by mapping input values to output values. The particular mapping problem to be performed fixes the number of inputs, as well as the number of outputs for the network.

Aside from the number of neurons in a network’s output layer, the number of neurons in each layer is up to the designer. Except for purely linear networks, the more neurons in a hidden layer, the more powerful the network. If a linear mapping needs to be represented linear neurons should be used.However, linear networks cannot perform any nonlinear computation. Use of a nonlinear transfer function makes a network capable of storing nonlinear relationships between input and output.

21

A very simple problem can be represented by a single layer of neurons.However, single-layer networks cannot solve certain problems. Multiple feed-forward layers give a network greater freedom. For example, any reasonable function can be represented with a two-layer network: a sigmoid layer feeding a linear output layer.Networks with biases can represent relationships between inputs and outputsmore easily than networks without biases. (For example, a neuron without a bias will always have a net input to the transfer function of zero when all of its inputs are zero. However, a neuron with a bias can learn to have any net transfer function input under the same conditions by learning an appropriate value for the bias.)

5 Benefits of Using Temperature Compensation

Many system peripherals contain information on how the performance of the peripheral changes as the temperature changes. For example, the Freescale MPX10 series of uncompensated 10 kPa pressure sensors contain information regarding how this sensor behaves across its operating temperature range. Many system peripherals contain information on how the performance of the 。

This information is used to create temperature compensation described in AN840

Temperature Compensation Methods that can be found at www.freescale.com. Sensors with internal compensation are also available,but at a higher cost. The benefit of lower overall system cost can be achieved by using a method where the

internal temperature sensor of the S08 microcontroller is used as the reference to perform temperature compensation.

Another benefit of using temperature compensation is extending the operating range of the end application. For example an application that requires accurate serial communications requires an accurate reference clock. If the reference clock loses accuracy at a hot temperature, the end application can not accomplish the serial communications. Using temperature compensation to modify the serial communications at a hot temperature allows the end application to operate across a wider range.

Both of the benefits listed above add value to the end application by using only the available on chip features.

6 Temperatue Compensation Methods

The theory behind performing temperature compensation is straight forward. It involves

22

taking a temperature reading and changing the peripheral parameters based on a knowledge base of how the peripheral performs across temperature.

Peripheral parameters are external or internal factors that affect the operation of the peripheral. In the case of an internal reference clock, such as the ICS internal reference clock on many S08 microcontrollers, the peripheral parameter that affects the output frequency is the TRIM register. Many system peripherals contain a trim register that allows compensation of the output of the peripheral.

Another example of a peripheral parameter are equation variables. For example, if the peripheral is a sensor that outputs an analog voltage and the output contains an offset that is temperature dependant, then the peripheral parameter that must be changed at different temperatures are the equation variables that account for the offset voltage.

To understand the peripheral parameters and how they must be changed, a knowledge base must be referenced. An example of a knowledge base is a specification. For example, the specification for the Freescale MPX10 series contains the parameters that define how the output of the pressure sensor changes across temperature ranges.

A knowledge base can also be generated by data collection. For example, the output of an internal reference signal is measured across the operating temperature range. This data can then be used to modify the system peripheral parameter to compensate for the changes across the temperature range. The following example looks closely at a performing oscillator trim compensation, using a temperature calibration reading to explain temperature compensation.

7 Network Architectures

Two or more of the neurons shown earlier can be combined in a layer, and a particular network could contain one or more such layers. First consider a single layer of neurons. (1) A Layer of Neurons

A one-layer network with R input elements and S neurons follows.

23

In this network, each element of the input vector p is connected to each neuron input through the weight matrix W. The ith neuron has a summer that gathers its weighted inputs and bias to form its own scalar output n(i). The various n(i) taken together form an S-element net input vector n. Finally, the neuron layer outputs form a column vector a. We show the expression for a at the bottom of the figure.

Note that it is common for the number of inputs to a layer to be different from the number of neurons (i.e., R | S). A layer is not constrained to have the number of its inputs equal to the number of its neurons.

You can create a single (composite) layer of neurons having different transfer functions simply by putting two of the networks shown earlier in parallel. Both networks would have the same inputs, and each network would create some of the outputs.

The input vector elements enter the network through the weight matrix W.

Note that the row indices on the elements of matrix W indicate the destination neuron of the weight, and the column indices indicate which source is the input for that weight. Thus, the indices inw12 say that the strength of the signal from the second input element to the first (and only) neuron is w12.

The S neuron R input one-layer network also can be drawn in abbreviated notation. Here p is an R length input vector, W is an SxR matrix, and a and b are S length vectors. As

24

defined previously, the neuron layer includes the weight matrix, the multiplication operations, the bias vector b, the summer, and the transfer function boxes. (2)Inputs and Layers

We are about to discuss networks having multiple layers so we will need to extend our notation to talk about such networks. Specifically, we need to make a distinction between weight matrices that are connected to inputs and weight matrices that are connected between layers. We also need to identify the source and destination for the weight matrices. We will call weight matrices connected to inputs, input weights; and we will call weight matrices coming from layer outputs, layer weights. Further, we will use superscripts to identify the source (second index) and the destination (first index) for the various weights and other elements of the network. To illustrate, we have taken the one-layer multiple input network shown earlier and redrawn it in abbreviated form below.

As you can see, we have labeled the weight matrix connected to the input vector p as an Input Weight matrix (IW1,1) having a source 1 (second index) and a destination 1 (first index). Also, elements of layer one, such as its bias, net input, and output have a superscript 1 to say that they are associated with the first layer.

In the next section, we will use Layer Weight (LW) matrices as well as Input Weight (IW) matrices.

You might recall from the notation section of the Preface that conversion of the layer weight matrix from math to code for a particular network called net is:

25

Thus, we could write the code to obtain the net input to the transfer function as: n{1} = net.IW{1,1}*p + net.b{1}; (8)Backpropagation Overview

Backpropagation was created by generalizing the Widrow-Hoff learning rule to multiple-layer networks and nonlinear differentiable transfer functions.Input vectors and the corresponding target vectors are used to train a network until it can approximate a function,associate input vectors with specific output vectors,or classify input vectors in an appropriate way as defined by you.Networks with biases, a sigmoid layer, and a linear output layer are capable of approximating any function with a finite number of discontinuities.

Standard backpropagation is a gradient descent algorithm, as is the Widrow-Hoff learning rule, in which the network weights are moved along the negative of the gradient of the performance function. The term backpropagation refers to the manner in which the gradient is computed for nonlinear multilayer networks. There are a number of variations on the basic algorithm that are based on other standard optimization techniques, such as conjugate gradient and Newton methods. The Neural Network Toolbox implements a

number of these variations. This chapter explains how to use each of these routines and discusses the advantages and disadvantages of each.

Properly trained backpropagation networks tend to give reasonable answers when presented with inputs that they have never seen. Typically, a new input leads to an output similar to the correct output for input vectors used in training that are similar to the new input being presented. This generalization property makes it possible to train a network on a representative set of input/target pairs and get good results without training the network on all possible input/output pairs. There are two features of the Neural Network Toolbox that are designed to improve network generalization - regularization and early stopping. These features and their use are discussed later in this chapter.

This chapter also discusses preprocessing and postprocessing techniques, which can improve the efficiency of network training.

Before beginning this chapter you may want to read a basic reference on

26

backpropagation, such as D.E Rumelhart, G.E. Hinton, R.J. Williams, “Learning internal representations by error propagation,” D. Rumelhart and J.McClelland, editors.

The primary objective of this chapter is to explain how to use the backpropagation training functions in the toolbox to train feedforward neural networks to solve specific problems. There are generally four steps in the training process: 1 Assemble the training data 2 Create the network object 3 Train the network

4 Simulate the network response to new inputs

This chapter discusses a number of different training functions, but in using each function we generally follow these four steps.

The next section describes the basic feedforward network structure and demonstrates how to create a feedforward network object. Then the simulation and training of the network objects are presented.

27

附录2:英文文献中文译文

1 神经元模型

简单的神经元

一个带有单个标量输入和左边没有偏置出现的神经元在下图中。 输入 没有偏置的神经元 输入 有偏置的神经元

标量输入p通过一个连接关系乘以一个标量权w进行传输,为了形成乘积又一个标量wp。这个加权的输入量wp是传递函数f的唯一参考常量:wp是标量输出a。右边的神经元有一个标量偏置量b。你可能注意到了这个偏置量只是想图中所示的那样简单的被加到乘积wp中,然后通过求和函数进行运算。或将函数f左移b个数量单位。其实这个偏置量就好像是一个加权量,只是它有一个常量输入1。

传递函数网络的输入量为n,它也是一个标量,是加权量wp和偏置量b的和。这个和是传递函数f的参量。(第七章将会讨论用一种不同方法形成网络的输入量n)。这里的f是一个传递函数,典型的阶跃函数或曲线函数,带有参量输入n和输出量a。多种传递函数的例子将在下面的部分给出。值得注意的是w和b是神经元中两个可以调节的标量参数。神经网络的核心想法是让这样的参数可以调节,从而使网络能够达到希望的或有意思的性能。因此,我们可以通过调节权参数或偏置参数来训练神经网络,或者也许这个神经网络自己可以调节这些参数从而达到最终的理想状态。

工具箱中的所有的神经元的每个偏置都有规定,偏置用在了在我们的很多的例子中,在这个工具箱中大多数情况下将会被假定。不管怎样,如果你需要的话,你可以忽略一个神经元的偏置。正如之前提到的,偏置量b视神经预案中可以调节的参数,它不是输入。但是,常熟i使得偏置量成为输入,当在第四章《滤波器》中考虑输入矢量的线性关系时就必须把偏置量看成是一个输入。

28

2 传递函数

在这个工具箱中包含了很多传递函数。完整的列表在第14章《传递函数》的图表中。大多数情况下常用的函数如下所示:

阶跃传递函数 a为单位阶跃输入

上面所示的阶跃传递函数限制了神经元的输出可以是0:如果网络的输入参数n小于0;或是1:如果n大于或等于0.我们将会在第三章《感知器》中用这个函数去创建神经元做分类决定。

工具箱中有阶跃函数,为了认识上面所说的数学的阶跃传递函数,试试下面所示的编码。

n = -5:0.1:5;

plot(n,hardlim(n),'c+:');

它生成了一个函数变化量在-5和+5之间变化的表。工具箱中所有的数学传递函数都能够用一个相同的名字的函数实现。 线性传递函数如下图所示:

线性传递函数 a为单位速度输入

这种类型的神经元用在第4章所讲的《线性滤波器》中作为线性逼近。

下面所示的曲线传递函数的输入可以是正的或负的无穷大间的任何一个值,输出限制在0和1的变化范围内。

29

双曲传递函数

这个函数经常用在反向传播神经网络中,部分是因为它的微分性。符号与上面所描述的相关的传递函数与右边每个传递函数图所示的一致。这个标准将会代替神经网络表箱中的一般函数f去显示正在备用的特殊函数。 3 带有矢量输入的神经元

下面所示的带有单一的R元素输入矢量的神经元。这里是独立的元素输入p1,p2,?,pR乘以权值w1.1,w1.2,?w1.R,这些权值的有效值进入求和函数,它们的和简单的记为wp,这个点就是矩阵W和矢量p的乘积。 输入 神经元w的矢量输入

R为输入矢量中元素的数量

这个神经元有一个偏置量b,它与权值输入量的和形成网络的输入量n。和值n是传递函数f的参量。

n = w1,1p1+w1,2p2+ ... +w1,RpR +b

当然了,这个表达式在MATLAB中的编码可以写为:

n =W*p+b

但是,使用者会很少写这个编码用这么低的水平,应为这样的编码已经加入到定义或模拟整个神经网络的函数中。

上面所示的单一的神经元图形包含着许多的细节。当我们考虑有很多神经元或很多神经元层的神经网络时,有如此多的细节以至于主要的想法可能会丢。因此,作者为每个神经元设计出了一个简短的注释。这个注释将会应用在以后的多种神经元的电路中。

30

输入 神经元

R为输入矢量中元素的数量

这里的输入矢量p代表左边的固定的黑暗的棒,p的大小将会在下面的Rx1图形中解释。(注意我们要用大写字母,例如在之前句子中提到的R;涉及到一个矢量大小时。)因此,p是输入元素R的一个矢量。这些输入形成了多层的单一的行,R列矩阵w。正如之前讲到的,一个常数1作为一个输入加入神经元中,然后乘以一个数量级的偏置量b。这个神经网络相对于传递函数f的输入为n即偏置量b的和乘积wp的和。这个和通过传递函数f得到神经元的输出a,这样的话,a也是一个标量。注意,如果我们有多余一个的神经元,神经网络输出将是一个矢量。

神经网络的一个层已经在上面的图中定义了。一层包含权值的组合:乘法和和的运算(这里提到wp作为一个矢量乘积),偏置量和传递函数f,不包括输入阵列标量p或叫做一层。

每次这个简短的神经网络注释被用时,矩阵的大小正好会在它们矩阵名字的下面。我们希望这个注释将会帮助你去理解神经网络的结构以及随着矩阵的数学运算联系到神经网络。

正如之前所讨论的,当一个特殊的传递函数用在图中是,那个传递函数的符号将会代替上面所示的f。 4 总结

一个神经元的输入包含了它的偏置值和它的权值输入的和,(用内部乘积)。一个神经元的输出要看神经元的输入和它的传递函数。有很多有用的传递函数。单一的神经元不能做很多,但是,几个神经元能结合成一个层或多个层那样作用就大了。可观的是,这个工具箱可以是创建和理解这样大的神经网络变得容易。描述一个神经网络的结构组成要看:一个神经网络有多少层、每层神经元的数量、层与层之间彼此是怎样连接的。用最好的结构要看神经网络所描述的问题的类型。

神经网络通过绘输入到输出的值的图影响计算结果,特别的操作绘图包含着许多

31

的输入量,当然这样的神经网络也有很多输出。除了在一个神经网络的输出层中神经元的数量,每层神经元的数量要看设计者。除了纯粹的线性网络,越有强大作用的神经网络越有更多的神经元在隐藏层。如果是一个线性绘图那么使用了线性神经元应该表现出来,但是,线性神经网络不能进行任何的非线性计算。一个非线性传递函数的使用使神经网络具有在输入和输出之间非线性关系的储存能力。

一个非常简单的问题可以用简单的单层神经元描述。但是,单层神经网络不能解决某些问题,多层前向层使神经网络有了更多的自由。例如,任何合理的函数能描述一个两层神经网络:一个曲线层和一个线性输出层。

有偏置的神经网络比没有偏置的神经网络更容易描述输入和输出的关系。(例如,没有偏置的神经元,总是对于所有输入为0的传递函数的网络输入为0,但是有偏置的神经元只要是在相同条件下对于任何网络都有一个相近的偏置值。) 5 利用温度补偿的好处

许多系统的输出信息包含着输出性能的变化如何随着温度的变化而变化。例如,10Ka非补偿的的压力传感器中的Freescale MPX10系列包含关于在温度变化的范围内传感器的性能。

在AN840这个信息用于进行温度补偿。温度补偿的方法在www.freescale.com.网站中。自身带有温度补偿功能的也可利用,但花费会高一些。整个系统的花费低是一个好处,可以通过用S08微控制器中内部的温度传感器作为外部温度补偿的参考的方法达到。

另一个用法温度补偿的好处是扩大最后应用程序的的操作范围。例如,一个要求准确序列的信息则需要一个准确的参考时钟。如果参考时钟在高温的情况下失去可精度,用温度补偿的方法去修改序列的程序使其在高温时也允许最终的操作能够在更广的温度范围内进行。 6 温度补偿的方法

这个理论直接在进行温度补偿的后面。它涉及到了把读到的温度和变化的外部参数作为基于温度范围内的外部性能的变化的知识。外部参数是指外部或内部参数因素对外部操作的影响。假设一个内部参考时钟,比如说在许多S08微控制器ICS内部的参考时钟,整理寄存器记录了外部参数影响输出的频率。许多系统外部有一个整理寄存器可以允许外部输出的温度补偿。

另一个例子是关于外部参数是方程的根。例如,如果外部是一个传感器,它的输出是模拟电压或输出包含一个温度独立的偏置,然后在不同的温度下必须改变的外部

32

参数是方程的根视为偏置电压。

为了理解外部参数,它们必须怎样变化,一个知识基础必须被提到。一个知识基础的例子是说明书。例如,Freescale MPX10系列的说明书包含定义压力传感器的输出怎样在温度范围内变化。

一个知识基础也可以通过数据收集形成。例如,一个内部参考信号的输出通过操作温度的变化范围衡量。然后这些数据可以用于更改系统外部参数在温度的变化范围内进行温度补偿。接下来的例子与操作晶振整理补偿密切相关,用读温度刻度的方法解释温度补偿。 7 神经网络结构

之前所讲的一个或几个神经元可以形成一层,一个详细的神经网络可以包括一个或更多个这样的层。首先,我们先考虑单层的神经元。 (1)单层神经元

下面所示的是带有输入量R和S个神经元的单层神经网络。 输入 神经元层 R=输入矢量维数 S=层中神经元的数量

在这个神经网络中,通过权矩阵W输入矢量p的每个元素与每个神经元输入相连

接。第i个神经元有一个和运算使得神经元的权值输入和偏置量集合在一起从而形成它的标量输出你n(i)。变量n(i)集合形成了S元网络的输入矢量n。最后,神经网络的层输出形成了列矢量a。我们在图像的下面列出了矢量a的表达式。 注意,一层神经元的输入量与神经元的数量不同是正常的,每一层的输入量不会受神经元数量的约束。

33

输入矢量通过权值矩阵W通过神经网络

注意矩阵W的行量表示的是目的神经元的权值,列量表示的是神经元对于权值的输入。因此,这说明在矩阵中W12的意思是从第二个输入量到第一个神经元的输入量是W12。

S个神经元的R个输入的单层神经网络也写了简短的解释。

输入 神经元层 R=输入矢量的维数 S=第1层神经元的数量 这里p是R元的输入矢量,W是 SxR 型的矩阵,a和b是S元的矢量。正如前面

所定义的,神经网络的层包含权矩阵、乘法运算、偏置矢量b、和运算和传递函数箱。 (2)输入量和层

我们将要讨论多层的神经网络,所以我们需要扩大关于这样的神经网络的解释。尤其是,我们需要区别连接输入量和权矩阵间的权矩阵和连接两个层之间的权矩阵。我们也需要区别权矩阵的输入量和输出量。

我们把连接权矩阵和输入间的矩阵称为输入权矩阵;我们把来自层输出的权矩阵称为层矩阵。而且,我们将会用上标来区分神经网络的源矩阵和目的矩阵中的不同权值和其它量。为了说明,我们还会会将之前讲过的单层多输入神经网络的间接形式在下面再画一次。

输入 第一层 R=输入矢量的维数 S=第1层神经元的数量

34

正如你所看到的,我们把连接输入矢量p的权矩阵作为一个输入权矩阵IW1,1,它有一个源输入和一个目的输出。同时,它也具有一个单层的元素,例如它的偏置量、网络输入和带有说明是连接第一层的上标是1的输出。

在这部分我们将会和使用层权值矩阵一样使用输入权值矩阵。

你可能会想起从虚掩的注释部分中关于层权值矩阵在特定的神经网络中从数字

到代码的转换称为网络是 :

因此,我们可以通过写代码获得网络到传递函数的网络输入就是: n{1} = net.IW{1,1}*p + net.b{1} (8)误差反向运算的综述

误差反向运算是通过Widrow-Hoff的学习原则去一般化多层神经网络和非线性微分传递函数。输入矢量和相应的目标矢量用来训练神经网络直到它能够接近 一个函数,连接输入矢量和特定的输出矢量或按你所定义的准确方法将输入矢量分类。带有偏置量、一个双曲层和一个线性输出层的神经网络可以逼近任何有一定非连续性的函数。

标准的误差反向运算是一种下梯度运算,正如在Widrow-Hoff学习原则所说的,神经网络的权值沿特征函数以负梯度的形式运算。“误差反向运算”这个术语涉及到了在非线性多层神经网络中梯度是它的运算方式。基本运算有许多变量还有其他的标准的最优方法,例如共轭梯度法和牛顿法。神经网络的工具箱中的工具有许多这样的变量。这章解释了怎样用每一个这些程序和讨论它们每个的优缺点。

适当的训练误差反向运算神经网络可以在在它们没有见过的输入时给出一个合理的解释。尤其是当一个新的输入所引起的输出与在寻来那是输入矢量的准确输出相似时,新的输入的输出也是相似的。这个一般化的特性使可以用一组代表性的输入-输出数据来训练一个神经网络便可以得到好的结果而不用训练神经网络的所有输入-输出数据组。创建的神经网络的神经网络工具箱有两个特征:改变神经网络的一般化

35

-常规化和早停。这些特征和他们的应用将会在后面的章节中讨论。

开始这一章之前你可能想看一些关于误差反向运算的基本参数,例如,D.E Rumelhart, G.E. Hinton, R.J. Williams中D. Rumelhart and J.McClelland编辑所说的“通过误差传播学习内部特征。”

这一章的主要目标是解释如何使用误差反向运算在工具箱中的训练函数来训练反馈神经网络去解决特定的问题。训练的过程大概分为四步:

(1)训练数据的集合; (2)创建神经网络模型; (3)训练神经网络;

(4)对神经网络的新输入的响应仿真。

这章讨论了一些不同的训练函数,但是用每个函数大概就是上面的四步。 下面的部分讲述了基本反馈神经网络的结构和论述了如何建立一个反馈神经网络模型,然后又讲了神经网络的仿真和训练。

36

本文来源:https://www.bwwdw.com/article/ul1.html

Top