前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇神经网络的前向传播范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
【关键词】GPS;高程异常;BP神经网络;拟合模型
Research on the Models of GPS Height Fitting Based on BP Neural Network
Li Yongquan
【Abstract】International and domestic multifarious control nets in use of GPS’s positioning techniques are only to solve the horizontal coordinates, but the height still follow to use the geometric leveling.Therefore, The basic theory of neural network and algorithm of BP are described, Discuss the problem of GPS height fitting based on BP neural network by trials. BP neural network is a kind of nonlinear mapping for its inputs and outputs,BP neural network is a high precise method for translating height.
【Key words】GPS;height anomaly;back propagation neural networks; fitting models
1. 引言
GPS平面定位的精度目前已经可以达到毫米级,但相对于平面定位精度,GPS在高程方面的定位精度较低。 神经网络是一种高度自适应的非线性动力系统,神经网络的数学理论本质上是非线性数学理论,通过BP神经网络学习可以得到输入和输出之间的高度非线性映射,因此,使用神经网络可以建立起输入和输出之间的非线性关系。BP神经网络本身也是一种高精度的高程转换方法。
2. 神经网络的模型及BP算法
2.1 神经网络的模型
(1)生物神经元模型。神经元模型是基于生物神经元的特点提出的,人脑由大量的生物神经元组成,神经元之间互相有连接,从而构成一个庞大而复杂的神经元网络。神经元是大脑处理信息的基本单元,结构如图1。神经元由细胞体、树突和轴突三部分组成,其中突触是神经元之间的连接。细胞体是由很多分子形成的综合体,内部含有细胞核、细胞质和细胞膜。细胞体的作用是接受和处理信息。树突是细胞体向外延伸的纤维体,是接受从其他神经元传入信息的入口。轴突是神经元的信息通道,是细胞体向外延伸最长、最粗的树枝纤维体,也叫神经纤维。(2)神经元模型。神经元一般表现为一个多输入(多个树突和细胞体与其他多个神经元轴突末梢突触连接)、单输出(每个神经元只有一个轴突作为输出通道)的非线性器件,通用的结构模型如图2所示。
(3)神经网络模型。神经网络的神经元之间的互连模式有前向网络、有反馈的前向网络、层内有相互结合的前向网络和相互结合型网络四种。
前向网络神经元分层排列,组成输入层、中间层(隐含层)和输出层。每一层的神经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传播,最后在输出层上得到输出。目前对前向网络得出的一致的结论是:甚至是单中间层网络,只要隐节点数目足够多,前向网络就可以通过训练学习样本,以任意精度逼近(或表达)期望目标。
2.2 神经网络BP算法
(1)BP(Back Propagation)网络模型结构。BP网络的结构如图4所示,BP网络具有三层或三层以上神经元的神经网络,包括输入层、中间层(隐层)和输出层。上下层之间实现全连接,而每层神经元之间没有连接。当一对学习样本提供给网络后,神经元的激活值从输入层经各中间层向输出层传播,在输出层的各神经元获得网络的输入响应。接下来,按照减少目标输出和实际输出之间的方向,从输出层反向经过各中间层回到输入层,从而逐层修正各连接权值,这种算法称为“误差反向传播算法”,即BP算法。
(2)BP算法的数学描述。BP算法基本原理是利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。
BP网络学习规则的指导思想是:对网络权值和阈值的修正要沿着表现函数下降最快的方向――负梯度方向。
xk+1=xk-akgk(1)
其中xk是当前的权值和阈值矩阵,gk是当前表现函数的梯度,ak是学习速率。
三层BP网络,输入节点xi,中间层节点yi,输出节点zl。输入节点与中间层节点间的网络权值为wji,中间层节点与输出节点间的网络权值为vlj。当输出节点的期望值为tl时,模型计算公式如下。
中间层节点的输出:
yi=f(∑iwjixi-θj)=f(netj)(2)
输出节点的计算输出:
zl=f(∑jvljyj-θl)=f(netl)(3)
3. BP神经网络用于GPS高程拟合
3.1 山区高程异常拟合实例:以本溪GPS和水准资料作为样本来源,进行BP高程异常拟合。
通过山区高程异常拟合实例,对数据分析可以得到如下结论,学习样本数与测试样本数之比在1/4之间时网络稳定性较好。高程拟合的精度与学习样本数量有关,学习样本数越多,拟合精度就越高。
3.2 平原地区高程异常拟合实例:以某市D级GPS部分数据进行实验研究
通过平原地区高程异常拟合实例,对数据分析可以得到如下结论,学习样本数与测试样本数之比在 1/3 之间时网络稳定性较好。学习样本数对测试对象的精度也有着重要的影响,一般随着学习样本数的增多,中误差会有所改善。这主要是更多的学习样本就更能表述出所研究问题的一些基本特征,进而仿真的效果就能更好。
4. 结束语
重点研究基于BP神经网络的GPS高程异常拟合算法,详细介绍了人工神经网络基本理论,重点讨论了基于BP神经网络的GPS高程拟合,包括BP神经网络的基本原理、主要特点。分析了神经网络的BP算法,包括其数学模型、网络结构。构造了基于BP神经网络的GPS高程拟合模型,结合具体工程数据进行了神经网络性能分析。
参考文献
[1] 国家测绘局测绘发展研究中心.测绘发展研究动态[R].北京:国家测绘局,2008,8:1-7
[2] 李征航、黄劲松.GPS测量与数据处理[M].武汉:武汉大学出版社,2005,277-278
[3] 曹先革.基于人工神经网络的GPS高程异常拟合方法研究[D],北京:中国地质大学,2008
[4] 徐绍铨.GPS高程拟合系统的研究[J],武汉:武汉测绘科技大学学报,1999,24(4),11-15
[5] 阎平凡.人工神经网络与模拟进化计算[M],北京:清华大学出版社,2000,5-6
[6] 徐丽娜.神经网络控制[M].哈尔滨:哈尔滨工业大学出版社,1999,1-40
关键词:Matlab;BP神经网络;预测
中图分类号:TP183文献标识码:A文章编号:1009-3044(2008)19-30124-02
Based on Matlab BP Neural Network Application
YANG Bao-hua
(Institute of Information and Computer, Anhui Agricultural University, Hefei 230036, China)
Abstract: BP learning algorithm is a one-way transmission of multi-layer to the network, Matlab toolbox is based on the theory of artificial neural network, based on Matlab toolbox, with watermelon-heavy forecasts, BP neural network forecast the feasibility of re-watermelon is verified, and fast convergence, small error, should be promoted in the forecast crop growth.
Key words: Matlab; BP Neural Networks; Forecast
1 引言
人工神经网络是人工构造的模拟人脑功能而构建的一种网络,BP神经网络是结构较简单、应用最广泛的一种模型,BP神经网络是Rumelhart等在1986年提出的。它是一种单向传播的多层前向网络,一般具有三层或三层以上的神经网络,包括输入层、中间层(隐层)和输出层[1],其模型见图1所示。
■
图1 BP网络模型
Matlab中的神经网络工具箱是以人工神经网络理论为基础,利用Matlab语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法。网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序,免去了繁琐的编程过程。
红籽瓜(Red-seed Watermelon)种子即瓜子富含有蛋白质、脂肪、钙、磷及多种维生素,含油率达55%左右,营养颇为丰富,经过精细加工,味道鲜美,市场十分畅销[4]。为了提高瓜子的产量,需要关注很多因素,这些因素的改变会影响瓜子的产量,所以确定哪些因素能预测产量,如何预测是本文研究的内容。本文利用红籽西瓜的测量数据,以单果重,种子数,千粒重,种子重作为输入因子,仁重为输出因子,选择合适的隐层,构建影响红籽西瓜种仁重量的BP网络模型,运用Matlab软件进行预测。
2 BP神经网络设计的基本方法
Matlab的NNbox提供了建立神经网络的专用函数newff()[5]。用newff函数来确定网络层数、每层中的神经元数和传递函数,其语法为:
net=newff(PR,[S1,S2,…,SN],{TF1,TF2,…,TFN},BTF,BLF,PF)
式中:PR表示由每个输入向量的最大最小值构成的R×2矩阵;Si表示第i层网络的神经元个数;TF表示第i层网络的传递函数,缺省为tansig,可选用的传递函数有tansig,logsig或purelin;BTF表示字符串变量,为网络的训练函数名,可在如下函数中选择:traingd、traingdm、traingdx、trainbfg、trainlm等,缺省为trainlm;BLF表示字符串变量,为网络的学习函数名,缺省为learngdm;BF表示字符串变量,为网络的性能函数,缺省为均方差“mse”。
2.1 网络层数
BP网络可以包含不同的隐层,但理论上已经证明,在不限制隐层节点数的情况下,两层(只有一个隐层)的BP网络可以实现任意非线性映射。
2.2 输入层节点数
输入层起缓冲存储器的作用,它接受外部的输入数据,因此其节点数取决于输入矢量的维数。
2.3 输出层节点数
输出层节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。在设计输人层和输出层时,应该尽可能的减小系统规模,使系统的学习时间和复杂性减小。
2.4 隐层节点数
一个具有无限隐层节点的两层BP网络可以实现任意从输入到输出的非线性映射。但对于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,这就涉及到如何选择隐层节点数的问题,至今为止,尚未找到一个很好的解析式,隐层节点数往往根据前人设计所得的经验和自己进行试验来确定。一般认为,隐层节点数与求解问题的要求、输入输出单元数多少都有直接的关系。另外,隐层节点数太多会导致学习时间过长;而隐层节点数太少,容错性差,识别未经学习的样本能力低,所以必须综合多方面的因素进行设计。
隐层节点数的初始值可先由以下两个公式中的其中之一来确定[2,3]。
1=■+a (1)
或 1=■(2)
式中,m、n分别为输入结点数目与输出结点数目,a为1~10之间的常数。
2.5 数据归一化
因为原始数据幅值大小不一,有时候还相差比较悬殊。如果直接投人使用,测量值大的波动就垄断了神经网络的学习过程,使其不能反映小的测量值的变化。所以,在网络训练之前,输人数据和目标矢量都要经过归一化处理。
根据公式可将数据“归一化”,即限定在[0,1]区间内。归一化公式为:
■ (3)
也可以使用归一化函数Premnmx,及反归一化函数Postmnmx。
3 BP学习算法及实例
3.1 BP学习算法
1) 初始化网络及学习参数;
2) 从训练样本集合中取一个样本,并作为输入向量送入网络;
3) 正向传播过程,对给定的输入样本,通过网络计算得到输出样本,并把得到的输出样本与期望的样本比较,如有误差超出限定范围,则执行第4步;否则返回第2步,输入下一个样本;
4) 反向传播过程,即从输出层反向计算到第一隐层,修正各神经元的连接权值,使用误差减小。
3.2 实例
为了提高瓜籽产量,需要关注很多因素,滤去相关度过低的因子,根据经验确定输入因子为单果重,种子数,千粒重,种子重,输出因子为仁重。现以表1所示的2000~2002年测量数据作为训练样本进行训练,对2003年的数据进行预测。输出层结点代表仁重量,神经网络的预测模型采用4-4-1,即输入层4个神经元,根据公式(2)计算隐层神经元数确定为4,1个输出神经元。设定最大的迭代次数为500次,系统全局误差小于0.001。传递函数为tansig,训练函数为trainlm。
根据经典的BP算法,采用Matlab编程,样本训练结果见图2,2003的数据作为预测样本,预测结果如下:
TRAINLM, Epoch 0/500, MSE 0.316381/0.001, Gradient 2.8461/1e-010
TRAINLM, Epoch 4/500, MSE 0.00056622/0.001, Gradient 0.0830661/1e-010
TRAINLM, Performance goal met.
SSE = 0.0102
y = 0.269 0.267 0.27 0.269 0.2679 0.2679
表1 红籽西瓜数量性状表
瓜籽仁重实际值为0.265,0.282,0.264,0.269,0.265,0.287,误差为0.0102,当样本较少时可以接受的误差范围内。并且收敛速度快。
■
图2训练函数为trainlm的训练结果
采用traingd函数进行训练,则5000次仍未达到要求的目标误差0.001,说明该函数训练的收敛速度很慢。见图3所示。所以训练函数的选择也非常关键。
■
图3 训练函数为traingd的训练结果
4 结论
用Matlab编编写的基于BP网络的仁重预测程序,计算结果表明,误差较小,预测值与实测值吻合较好,所建立的模型具有较好的实用性,说明单果重,种子数,千粒重,种子重的数据影响瓜子的产量,同时验证BP算法可以用于瓜仁产量的预测。
目前所进行的预测试验中数据的样本较少,且生长动态变化,今后拟建立一个动态预测系统,为红籽瓜品种培育、提高产量提供新的方法,值得在预测作物生长中推广。
参考文献:
[1] 飞思科技产品研发中心.神经网络理论与Matlab 7实现[M].北京:电子工业出版社.2006:100-105.
[2] 徐庐生.微机神经网络[M].北京:中国医药科技出版社,1995.
[3] 高大启.有教师的线性基本函数前向三层神经网络结构研究[J].计算机学报,1998,21(1):80-85.
[4] 钦州农业信息网:.
关键词:室内定位;RSS; BP神经网络;IEEE 802.11b
中图分类号:TN911.23 文献标识码:A
1 引 言
目前,室内定位算法主要有以下几种。
1)Time of arrival(TOA)
TOA定位的基本原理是通过测量节点间电波传播的时间来确定节点的位置。
TOA算法要求参加定位的各个基站在时间上实现严格同步。在室内环境中,由于已知点到待测点的距离通常不远,无线电波的传播速度太快,且存在严重的多径干扰,因此无法利用无线电波进行测距。目前,基于TOA的室内定位技术通常是利用超声波传播速度较慢的特点(在20摄氏度时超声波的传播速度为343.38m/s),来测量出已知点和待测点间的距离,进而求出待测点的位置[1]。
2)GPS L1 Re-radiating
GPS(Global Positioning System)是70年代初由美国开发的卫星导航定位系统,本质上它也是一个基于TOA的定位系统。
GPS L1 Re-radiating是将GPS在L1频段上的信号,通过户外天线接收后,增益放大为室内可接收信号,进而基于GPS实现室内定位。
3)Received signal strength,RSS
RSS定位的基本原理是利用移动装置侦测所接收到的无线电波信号强弱,然后根据经验模型或RSS随距离衰减的模型来推断节点间的距离,进而实现定位[2]。
该技术主要使用无线网络本身的无线电信号来定位,不需额外添加硬件,是一种低功率、廉价的定位技术[3]。
基于信号强度的室内定位方法分为经验模型法和信号衰减模型法。
(1)经验模型法
在经验模型法中,将RSSI数据转换为位置信息的方法主要有判定法和概率法两种。
(2)信号衰减模型法
信号衰减模型法则无需实地测量位置和RSSI,而是依据信号强度和距离的特定关系,结合三角测量法,根据来自三个(或以上)AP的RSSI来计算出待测点的位置。
基于TOA的定位模型在开放的室外环境中非常有效,但在室内环境却存在一些问题。使用超声波虽可克服无线电波传输速度快的问题,但需构建专门的超声波系统。GPS也主要是针对户外目标设计的定位系统,应用于室内存在定位精度不高等问题。基于RSS的定位模型中,经验法需进行大量的实地测量,同时无法保护定位用户的隐私;而信号衰减法在室内受NLOS(非视距传播)等因素影响,也使得定位精度较低。
因此,本文提出了一种基于BP神经网络的室内定位模型并借助MATLAB 7.0加以实现。采用该方法进行室内定位,不需要WLAN以外的其他资源。由于不需要知道定位节点和建筑物的详细特性,用户的隐私将随之得到完全的保护。
2 基于BP神经网络的室内定位模型
BP神经网络通常是指基于误差反向传播算法(Backpropagation)的多层前向神经网络,目前,该算法已成为应用最为广泛的神经网络学习算法[4]。
BP神经网络采用的是并行网络结构,包括输入层、隐含层和输出层,经作用函数后,再把隐节点的输出信号传递到输出节点,最后给出输出结果。该算法的学习过程由信息的前向传播和误差的反向传播组成。在前向传播的过程中,输入信息从输入层经隐含层逐层处理,并传向输出层。第一层神经元的状态只影响下一层神经元的状态。如果在输出层得不到期望的输出结果,则转入反向传播,将误差信号(目标值与网络输出之差)沿原来的连接通道返回,通过修改各层神经元权值,使得误差均方最小。神经网络理论已经证明BP神经网络具有强大的非线性映射能力和泛化功能,任一连续函数或映射均可采用三层网络加以实现。
计算技术与自动化2007年6月第26卷第2期李 瑛等:一种基于BP神经网络的室内定位模型2.1 样本数据的采集和处理
输入向量为待测点收到的来自至少三个不同位置AP的RSSI值,输出向量为待测点的坐标值(X,Y)。
样本采集在一个10mX10m的室内场地中进行。使用3个来自SMC公司的AP和1台配置了ORiNOCO PC CARD的笔记本电脑。AP及无线网卡符合并工作在IEEE 802.11b标准下。笔记本电脑所使用的操作系统为RedHat Linux 9.0。样本均匀分布在6mx6m的中心区域中。
2.2 网络结构的确定
Kolmogorov定理已经证明[5],任意一连续函数可由一个三层BP 网络来实现。虽然研究表明三层以上的BP网络可以减少隐含层节点数,提高计算效率,但在缺乏理论指导的BP网络设计中这样做容易使问题趋向复杂化。因此选择三层BP神经网络,即只有1个隐含层的BP神经网络。
该网络输入层的节点数由输入向量的维数决定,输入向量的维数是3,所以输入层节点数确定为3个。输出层节点数由输出向量的维数决定,这里输出节点数为2 。
隐含层节点数的选择在BP网络设计中是一个难点,目前还没有理论上的指导。过多的网络节点会增加训练网络的时间,也会使网络的泛化能力减弱,网络的预测能力下降。然而网络节点过少则不能反映后续值与前驱值的相关关系,建模不充分。经反复试验,将隐含层节点数定为30,这样形成了一个3-30-2结构的BP神经网络,如图1所示。
2.3 学习算法的选择
基本BP 算法采用梯度下降法使得误差均方(mse)趋向最小,直至达到误差要求。但在实际应用中,存在收敛速度慢、局部极值等缺点。Matlab 7.0神经网络工具箱中提供了十多种快速学习算法,一类是采用启发式学习方法,如引入动量因子的traingdm 算法、变速率学习算法traingda 、“弹性”学习算法trainrp等;另一类采用数值优化方法,如共轭梯度学习算法traincgf 等。本研究选择traincgf 算法。该算法在不增加算法复杂性的前提下,可以提高收敛速度,并且可沿共扼方向达到全局最小点,较好地解决了经典BP算法所存在的收敛速度慢和可能出现局部最优解的问题。
2.4 BP神经网络的初始化、训练与仿真
1)建立网络
net==newff(P3,[30,2],{′tansig′,′purelin′},′traincgf′)
newff()为建立BP 神经网络的函数;P3为6维矩阵,表示3维输入向量中每维输入的最小值和最大值之间的范围。[30,2]表示隐层节点数是30,输出层节点数是2,{′tansig′,′purelin′}表示隐含层中的神经元采用tansig转换函数,输出层采用purelin函数,′traincgf′表示选择的学习算法。
2)权重和阈值初始化
net==init(net)
给各连接权重LW{1,1}、LW{2,1}及阈值b{1}、b{2}赋予(-1,+1)间的随机值。
3)训练
[net,tr]=train(net,P,T)
P为输入向量,T为目标向量,根据网络学习误差逆传递算法,利用阻尼最小二乘算法迭代,由前一次训练得到的网络权重及阈值训练得到新的网络权重及阈值。
为了使生成的BP网络对输入向量有一定的容错能力,最好的方法是既使用理想的信号又使用带有噪声的信号对网络进行训练。具体做法是先用理想的输入信号对网络进行训练,直到起平方和误差足够小;然后,使用20组理想信号和带有噪声的信号对网络进行训练。经过上述训练后,网络对无误差的信号也可能会采用对付带有噪声信号的办法,这样会导致很大的代价,因此,需要采用理想的向量对网络再次训练,以保证网络能对理想信号作出最好的反应。
使用函数traincgf对网络进行训练时,当网络平方和误差小于3时停止网络的训练。训练过程中的误差变化情况如图2所示。
根据训练后的网络及输入向量进行仿真输出。
3 实验结果及分析
利用训练后的BP神经网络进行了36次定位,并统计了36次定位的平均误差,结果如图3所示。
与利用信号衰减模型定位相比(如图4所示),利用BP神经网络定位具有更高的统计精度。
与信号衰减模型相比,虽然BP神经网络的模型解释直观性略有不足,但却可获得更精确的定位结果。
利用BP神经网络,虽然可解决传统处理方法所不能处理的非线性映射问题,但在实际应用中,对如何选择和确定一个合适的神经网络结构没有确切的理论指导,只能通过试验―调整―再试验的过程来确定一个合适的网络结构。同时,BP神经网络的隐含层作用机理和隐含层节点个数的选择是BP神经网络的难点问题。隐含层的节点个数的选择需反复进行试验,当多次输出结果在一定误差范围内时才可确定。
4 结束语
本文提出了一种基于BP神经网络的室内定位模型,并在基于IEEE 802.11b标准的WLAN环境中对此模型进行了测试。一个基于信号衰减模型的定位算法也在同样的环境中进行了测试。对比结果表明,利用BP神经网络进行室内定位能取得更好的定位精度。
关键词:功率放大器;预失真;神经网络;互调失真
中图分类号:TP183文献标识码:A
文章编号:1004-373X(2009)10-133-04
Research of Adaptive Digital Predistortion Based on Neural Network
QIU Wei,XU Yitao,REN Guochun,ZHONG Zhiming
(Communication Engineering College,PLA University of Technology,Nanjing,210007,China)
Abstract:Because of inherent nonlinearity of high power amplifier,f-band distortion and adjacent-channel interference,which may have bad influence on communication system.To overcome it,a linearization process is given.First,this paper makes a math analysis about nonlinearity distortion of HPA,describes the basic principle about digital predistortion.And then,after depicting simple neural network,the paper proposes an adaptive digital predistortion technology based on SISO-neural network,which can improve third-order and fifth-order intermodulation and comparing with polynomial-fitting technology,it has more advantage on convergence speed and difficulty of hardware realization.At last,the paper uses a double-sound signal to make a matlab simulation,the results also prove this technology′s superiority.
Keywords:power amplifier;pre-distortion;neural network;intermodulation distortion
伴随无线通信技术的迅猛发展,使得人们对通信系统的容量要求越来越大。现代通信系统为了追求更高的数据速率和频谱效率,更趋向于采用线性调制方式,如16QAM和QPSK方式,以及多载波配置[1]。这些技术产生的信号峰均比较大,均要求功率放大器具有良好的线性特性,否则就会出现较大的互调失真,同时会导致频谱扩展,造成临道干扰,使误码率恶化,从而降低系统性能。
目前,克服放大器非线性失真主要有三种方法,一是直接制造超线性功率放大器,但制造这样的放大器工艺极其复杂,价格非常昂贵,且一般只适用于小功率放大器。二是采用功率回退技术,使功放工作在线性区,可以使其从饱和功率点做较大回退来满足线性放大的要求,但这样做会使功放效率大大降低,一般小于10%。三是采用线性化技术,即通过适当增加一些电路来克服其非线性影响。目前功放线性化技术主要有前馈、负反馈和预失真技术。负反馈固有的稳定性问题,使得反馈线性化技术工作在无线频率无法保持系统稳定[2]。前馈技术是早期用得比较多的一项技术,比较成熟,但其最大的难点在于为保持不同器件之间的幅度和相位特性完全匹配[2],会使系统和设备都较复杂。预失真技术具有电路形式简单,调整方便,效率高,造价低等优点[3]。其中,基带预失真还能采用现代的数字信号处理技术,是被最为看好的一项功放线性化技术。
文章利用一种简单的单入单出三层前向神经网络来进行自适应预失真处理,补偿由高功率放大器非线性特性引起的信号失真,从而实现其线性化。文中分析基于这种结构的自适应算法,并做了相应的仿真,仿真结构表明,该方法能有效改善三阶互调和五阶互调,且收敛速度比一般多项式预失真更快,具有一定的优势。
1 高功率放大器非线性分析
高功率放大器一般都是非线性器件,特别是当输入信号幅度变化较大时,放大器工作区将在饱和区、截止区、放大区之间来回转换,非线性失真严重,会产生高次谐波和互调失真分量。由于任何函数理论上都可以分解为多项式的形式,故放大器的输入和输出关系表示为:
Vo=a1Vi+a2V2i+a3V3i+…+anVni(1)
假设输入的双音信号为:
Vi=V1cosω1t+V2cosω2t(2)
将式(2)代入式(1),得到输出电压为:
Vo=a22(V21+V22)+
a1V1+a334V31+32V1V22+…〗cosω1t+
a2V2+a334V32+32V2V21+…〗cosω2t+
12a2V21+…cos(2ω1t)+12a2V22+…•
cos(2ω2t)+14a3V31+…cos(3ω1t)+
14a3V32+…cos3ω2t+a2V1V2\ω2)t+cos(ω1-ω2)t\〗+34a3V21V2\ω2)t+cos(2ω1-ω2)t\〗+34a3V22V1\ω1)t+cos(2ω2-ω1)t\〗+58a5V31V22cos(3ω2-
2ω1)t+58a5V21V32cos(3ω1-2ω2)t
从上式可以看出,输出信号中不仅包含2个基频ω1,ω2,还产生了零频,2次及高次谐波以及互调分量。其中的2ω1-ω2,2ω2-ω1,3ω1-2ω2和2ω1-3ω2通常会落在通频带内,一般无法滤除,是对通信影响最大的非线性失真分量,即所谓的三阶互调和五阶互调。放大器线性化的目标就是在保证一定效率的前提下最大地减小三阶和五阶互调分量。
2 预失真基本原理及其自适应
预失真就是在信号通过放大器之前通过预失真器对信号做一个与放大器失真特性相反的失真,然后与放大器级联,从而保证输出信号相对输入信号是线性变化。预失真器产生一个非线性的转移特性,这个转移特性在相位上与放大器转移特性相反,实质上是一个非线性发生器,其原理图如图1所示。
预失真器的实现通常有查询表法和非线性函数两种方式[2]。由于查表法结构简单,易于实现,早期的预失真多采用此方法。但它对性能的改善程度取决于表项的大小,性能改善越大,需要的表项越大,所需要的存储空间也越大,每次查找遍历表项的每个数据和更新表项所需要的时间和计算也越大,因此在高速信息传输的今天已经不可取。非线性函数法是根据对放大器输出信号采样值与其输入信号,用一个非线性工作函数来拟合放大器的工作曲线,然后根据预失真器特性与放大器特性相反,求出预失真器的非线性特性函数,从而对发送信号进行预失真处理。这种方法只需要更新非线性函数的几个系数,也不需要大的存储空间,因此是近年来研究的热点。
图1 预失真基本原理
假设预失真器传输函数为F(x);放大器传输函数为G(x);F和G均为复函数。若输入信号为x(t),则经过预失真器之后的信号为u(t)=F\,放大器的输出函数为y(t)=G\=G{F\}。预失真的目的就是使x(t)通过预失真器和放大器级联后的输出y(t)=ax(t),a为放大器增益。通过一定的方法可以找到合适的F,使实际输出和期望输出的误差最小。
由于温度、电器特性、使用环境等因素的不断变化,放大器的传输特性也会发生变化,从而预失真器传输函数F(x)的各参数也会随之变化。因此,现代数字预失真技术一般都采用自适应技术,以跟踪调整参数的变化。目前,常用的两种自适应预失真结构如图2和图3所示。
图2 自适应预失真系统结构图
图3 复制粘帖式自适应预失真系统结构图
图2是一般的通用自适应结构,结构简单,思路明确,但一些经典的自适应算法由于多了放大器求导项而不能直接应用,且需要辨识放大器的传输特性。图3的复制粘帖式结构(非直接学习)则不存在这些问题,关于这种结构的优缺点比较和具体性能分析见文献[4]。这里将采用后一种自适应结构。
3 基于一种单入单出式神经网络的自适应预失真技术
3.1 神经网络
神经网络是基于生物学的神经元网络的基本原理而建立的。它是由许多称为神经元的简单处理单元组成的一类自适应系统,所有神经元通过前向或回馈的方式相互关联、相互作用。由Minsky和Papert提出的多层前向神经元网络是目前最为常用的网络结构。它被广泛应用到模式分类和函数逼近中,已经证明含有任意多个隐层神经元的多层前向神经元网络可以逼近任意的连续函数[5]。在此,就是利用神经网络的这种功能来拟合预失真器的特性曲线,并且用改进的反向传播算法来自适应更新系数。
多层前向神经元网络由输入层、一个或多个隐层和输出层以前向的方式连接而成,其每一层又由许多人工神经元组成,前一层的输出作为下一层神经元的输入数据。三层前向神经元网络示意图如图4所示,其中输入层有M个人工神经元,隐层有K个神经元,输出层有N个神经元。关于人工神经元的具体介绍
参考文献[6,7]。
图4 三层前向神经元网络
3.2 基于单入单出式神经网络的自适应预失真系统模型
单入单出三层前向神经网络示意图如图5所示,假设隐层包含K个神经元。输入数据经过一系列权系数{w11,w12,…,w1K}加权后到达隐层的各个神经元。隐层中的神经元将输入进来的数据通过一个激励函数(核函数),其各神经元的输出经过一系列权系数{w21,w22,…,w2K}加权并求和后作为输入层的输入,然后该输入通过激励函数的输出作为整个网络的输出。单入单出式神经网络自适应预失真系统模型就是把图5所示的神经网络放入图3所示的自适应预失真模型的预失真器{f}和函数发生器{f′}模块中,两个神经网络的结构和规模是一样的。
图5 单入单出三层前向神经元网络
预失真器神经网络和函数发生器神经网络开始都随机初始化。先看预失真器神经网络,设输入序列为xi(i=1,2,…),则隐层各单元输入I1k=w1kxi-θ1k,经过核函数后,隐层各单元输出为J1k=f(I1k)。其中f(x)=(1-e-2x)/(1+e-2x)为核函数,输出层静输入为z1=∑Kk=1w2kJ1k-θ1,输出层输出即预失真器输出U1=f(z1),经过功放后得到系统输出yi。通过衰减器后的信号作为训练神经网络的输入信号,经过前面神经网络相同的过程训练网络输出层的输出为U2,绝对误差信号e1(i)=U1(i)-U2(i),然而直接把此误差运用到自适应算法中导致算法会局部收敛且收敛速度极慢。因此本文对误差信号做了改进,即把误差信号改为e(i)=(1/2){λ\2+(1-λ)φ\},其中φ(x)=In\/β,加入的调整因子λ和辅助项φ,能把算法从局部收敛点拉出来且收敛速度得到一定的提高。最后根据反向传播算法,得到训练神经网络的权系数更新式如下(下标2为隐层到输出层权系数;下标1为输入层到隐层权系数):
δ2(i)=c(i)\
Δw2(i)=αδ2(i)J2+ηΔw2(i-1)
Δθ2(i)=αδ2(i)+ηΔθ2(i)
δ1(i)=δ2(i)w22(1+J2)(1-J2)
Δw1(i)=αδ1(i)y/G+ηΔw1(i-1)
Δθ1(i)=αδ1(i)+ηΔθ1(i)
预失真权系数可分为训练和跟踪两个阶段。根据上面的迭代公式,得到一组训练神经网络的权系数。把这种权系数拷贝到预失真器神经网络中替代原来的权系数,得到一组新的预失真系数,之后重新计算误差,继续上面的过程循环迭代运算,直到误差小于规定的范围,即整个系统收敛,预失真器训练完成。此时称之为训练阶段。之后随着温度、输入的不同,调制信号、环境等的变化,可能引起功放特性的变化,可以设置一个误差门限值,一旦发现误差超过此门限,立即重新启动上面的循环迭代,重新训练,直到满足条件,即跟踪阶段。这种算法收敛速度快,且能满足实时运算的要求。同时在硬件实现上,只要做一个核函数发生器,其他就全是乘累加运算,与多项式结构的高次幂运算相比,硬件实现要简单得多,因此具有一定的实用性。
4 性能仿真
文中使用双音信号进行了仿真分析,双音信号为:
xs=0.5
放大器模型采用经典salef[9]模型,神经网络的隐层数设为15。双音信号直接通过放大器和通过文中所提的预失真网络后再通过放大器的频谱图如图6所示。
图6 预失真前后信号归一化频谱图
图7 神经网络和多项式结构误差曲线
由图6可见,双音信号通过放大器后产生了较大的失真,其中的三阶互调达到-17 dB,五阶互调也有-36 dB。通过文中所提的神经网络预失真系统处理后,即信号通过预失真器再通过放大器后,三阶互调被抑制到-42 dB,五阶互调也被抑制到-45 dB以下,三阶互调改善25 dB,五阶互调改善11 dB以上。
图7显示文献[10]提到的一般多向式结构和本文所提出的神经网络预失真结构的误差收敛曲线,它们都能达到相同或相似的互调分量改善效果。然而,本文所提的神经网络结构收敛速度明显较前者要快,而且收敛效果也比前者要好。图8是输入信号和通过预失真处理后放大器的输出信号波形图。由图可见,经过本文所提出的神经网络预失真网络处理后,输出信号波形基本没有失真,能与输入信号很好的重合,表明该神经网络预失真技术能很好的实现功放线性化。
图8 输入信号和通过预失真处理后放大的输出信号波形图
5 结 语
本文针对放大器固有的非线性特性问题,从数学上分析了放大器的非线性失真,介绍基于预失真基本原理和神经网络基本概念,提出一种单入单出式神经网络自适应预失真技术。仿真结果表明,该技术能三阶互调能抑制25 dB左右,对五阶互调能抑制11 dB左右。在很大程度上改善了通信系统的性能;而且与一般多项式预失真技术相比,收敛速度和收敛效果都有一定的改善,且硬件实现上只要做好一个核函数发生器,其他运算就全是简单的乘累加过程,可以避免硬件难以完成的多项式高次幂运算,表现出了一定的优势。
参考文献
[1]赵慧,漆兰芬.射频放大器的工作函数预失真线性化[J].无线电工程,2001,31(12):58-61.
[2]钱业青,刘富强.宽带RF功率放大器的预失真线性化技术综述[J].计算机工程与应用,2007,43(32):114-117.
[3]贾建华,刘战胜.关于自适应预失真射频功率放大器线性化研究[J].微波学报,2005,21(3):48-50.
[4]钱业青.一种高效的用于RF功率放大器线性化的自适应预失真结构[J].通信学报,27(5):35-46.
[5]Cybenko G.Approximations by Superpositions of a Sigmoidal Function[J].Mathematics of Control,Signals and Systems,1989(2):183-192.
[6]刘宝碇,赵瑞清,王纲.不确定规划及应用[M].北京:清华大学出版社,2003.
[7]朱剑英.智能系统非经典数学方法[M].武汉:华中科技大学出版社,2001.
[8]Glentis G O,Berberdis K,Theodoridid S.Efficient Least Sqares Adaptive Algorithms for FIR Transversal Filtering[J].IEEE Signal Processing Magazine,1999,16(4):13-41.
[9]Saleh A.Frequency-independent and Frequency-dependent Nonlinear Models of TWT Amplifiers[J].IEEE Trans.on Commun.,1981,29(11):1 715-1 720.
关键词神经网络;反向传播算法;PSO算法;适应度函数
人工神经网络是由人工神经元互连而成的网络,它从微观结构和功能上实现对人脑的抽象和简化,具有许多优点。对神经网络的权值系数的确定,传统上采用反向传播算法(BP算法)。BP网络是一种多层前向反馈神经网络,BP算法是由两部分组成:信息的正向传递与误差的反向传播。在反向传播算法中,对权值的训练采用的是爬山法(即:δ算法)。这种方法在诸多领域取得了巨大的成功,但是它有可能陷入局部最小值,不能保证收敛到全局极小点。另外,反向传播算法训练次数多,收敛速度慢,使学习结果不能令人满意。
粒子群优化算法(ParticleSwarmOptimizer,PSO)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究,PSO中,每个优化问题的解都是搜索空间中的一只鸟,我们称之为粒子。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。如果用粒子群算法对神经网络的权值进行训练,会得到较快的收敛速度,而且可以避免局部最值得出现。研究表明PSO是一种很有潜力的神经网络算法。
本文提出了一种基于PSO算法的BP网络学习算法,并通过MATLAB7.0实现对一组简单的向量进行训练对PSO—BP算法和BP算法进行了对比,试验结果说明PSO—BP算法适合训练BP网络,并且也有希望应用于其他种类的前向网络的训练。
1PSO算法
PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
D维搜索空间中,有m个粒子,其中第i个粒子的位置是,m,其速度为。将带入目标函数可计算出适应值。记第i个粒子搜索到的最优位置为,整个粒子群搜索到的最优位置为。离子状态更新操作为:
其中,i=1,2…,m,d=1,2…,D;是非负常数,称为惯性因子。也可以随着迭代线性减小;学习因子,是非负常数;r1,r2是介于[0,1]之间的随机数;是常数。
迭代中止条件一般选为最大迭代次数和粒子群迄今为止搜索到的最有位置满足适应阈值。
2基于PSO的BP网络学习算法
BP网络是一种多层结构的前向网络,其隐层神经元的激活函数为S型函数,而输出神经元的激活函数可以是S型函数,也可以实线性函数,典型的S型函数为:
(3)
其中:s为神经元的加权输入函数。
用PSO算法训练BP网络时,定义粒子群的位置向量的元素是BP网络的全体连接权和阈值。首先初始化位置向量,然后用PSO算法搜索最优位置,使如下均方误差指标(适应值)达到最小
(4)
其中,N是训练集的样本数;是第i个样本的第j个网络输出节点的理想输出值;是第i个样本的第j个网络输出节点的实际输出值;C是网络输出神经远的个数。
基于PSO算法的BP网络学习算法流程如下:
1)选定粒子数m;适应值阈值ε;最大允许迭代步数;、和;初始化X和V为(0,1)间的随机数。
8)endfor
9)fori=1:1:m
10)按式(1)计算;按式(2)计算;
11)endfor
12)endwhile
13)以所得权值阈值为初始值用BP算法对网络进行训练
上述流程中,1)到12)用标准PSO算法对权值和阈值进行训练,13)对PSO输出的权值和阈值作为初始值用BP算法训练网络(MATLAB中有集成的训练函数)。另外,,其中是第I个粒子的位置;V=,其中是第I个粒子的速度;是m个粒子迄今搜索到的最优适应值,其对应的粒子位置矩阵是p=;是粒子群迄今搜索到的最优适应值,对应的最优粒子位置是,粒子数m选定为30个。
3结果分析
本实例中随机选取机输入和输出矩阵,如:p=[00000;10001;01001;00100;00010];t=[0000;1000;0100;0010;0001]。由于P是五行的矩阵,所以网络输入层的神经元个数为:5个,T为五行矩阵,故输出层神经元个数为:5个,隐含层神经元个数为:6个。
首先观察一下PSO算法中的适应值(fitness)的变化过程,图1中,实线表示适应值的平均值,虚线表示是最优适应值。从图中可以看出适应值迅速的选择过程。
图2为用PSO—BP算法和BP算法在训练误差精度为0.002的情况下的误差演化曲线:(a)为PSO—BP算法训练误差演化曲线,所用时间是20.422000s。(b)为常用BP算法训练误差演化曲线,对权值的训练采用的是梯度下降法,所用时间是27.172000s。从图中可以看到:PSO—BP算法的迭代次数远远小于BP算法,并且训练时间也缩短了。
(a)
(b)
图2
为了充分说明实验结果,笔者做了多次反复实验,实验结果如下表:在训练误差精度为0.002的情况下,十次试验中PSO—BP算法的平均迭代次数远小于BP算法,收敛时间较接近。
算法
次数BP算法PSO—BP算法
迭代次数收敛时间迭代次数收敛时间
1158735.79700071719.547000
2105123.17200079433.390000
391718.28100068327.813000
480916.28200087933.265000
5132333.125000109730.218000
6214643.76600093126.046000
7116123.64100056817.391000
853014.68700073625.782000
9141526.75000086927.625000
10122724.17200095329.422000
平均值1216.625.967300822.727.04990
4结论
本次试验中对BP算法和PSO—BP算法进行了对比试验,试验结果证明:PSO—BP算法优于BP算法。具体表现在:学习算法的收敛速度有所提高;BP算法中的局部极小问题常令学习结果不满意,PSO的全局优化能力使问题得到解决。
参考文献
[1]MartinT.Hagan,HowardB.Demuth,MarkH.Beale,著,戴葵,等译.《神经网络设计》.机械工业出版社,2002年9月
[2]徐丽娜编著.《神经网络控制》.电子工业出版社,2003年2月
[3]高隽编著.《人工神经网络原理及仿真实例》.机械工业出版社,2003年8月
[4]ZbigniewMichalewicz,DavidB.Fogel著,曹宏庆,李艳,董红斌,吴志健,译.《如何求解问题——现代启发式方法》.中国水利水电出版社,2003年2月