基于显卡的微带天线谐振频率神经网络建模

2015-03-27 20:21田雨波
电波科学学报 2015年1期
关键词:总和线程谐振

田雨波 陈 风

(江苏科技大学电子信息学院,江苏镇江212003)

基于显卡的微带天线谐振频率神经网络建模

田雨波 陈 风

(江苏科技大学电子信息学院,江苏镇江212003)

谐振频率是微带天线(Microstrip Antennas,MSA)设计过程中最重要的一个参数.针对粒子群神经网络(Particle Swarm Optimization-Neural Network,PSO-NN)对矩形MSA谐振频率建模所面临的计算时间过长以及模型精度不高等问题,提出一种基于图形处理单元(Graphic Processing Unit,GPU)技术的并行处理解决方案.该方法使用粒子与线程一一对应的并行策略,通过并行处理各个粒子的计算过程来加快整个粒子群的收敛速度,从而减少NN的训练时间.在统一计算设备架构下对矩形MSA谐振频率进行了PSO-NN建模,数值计算结果表明:相对于CPU端串行PSO-NN,GPU端并行PSONN在寻优稳定性一致的前提下取得了超过300倍的计算加速比;在GPU端大幅增加粒子数,能在运行时间增加极为有限的情况下大幅降低建模的网络误差.

微带天线;谐振频率;粒子群优化;神经网络;图形处理器

引 言

微带天线(Microstrip Antennas,MSA)具有诸多优点而获得了广泛应用[1-2],其中谐振频率是MSA设计过程中最重要的一个参数.人工神经网络(Neural Network,NN)模型由于具有良好的学习和泛化能力,已被广泛应用于电磁领域[3-4],也被用于MSA谐振频率建模问题[5-6].粒子群优化(Particle Swarm Optimization,PSO)作为一种容易实现、收敛速度快的全局优化算法,正在被逐渐地应用到NN的训练中,能够获得比常用的误差反向传播(Back Propagation,BP)NN更好的收敛精度和更强的预测能力,基于PSO的NN也被用于MSA谐振频率建模问题[7-9].

面对复杂度较高的问题时,训练时间长是粒子群神经网络(PSO-NN)的一大问题,并行化加速是解决该问题的有效思路.除了NN固有的存储结构和样本训练的并行性[10],PSO-NN还存在PSO算法天然具备的群体中个体行为的并行性.相比用计算机集群[11]、多核CPU[12]或FPGA等专业并行设备[13]加速PSO算法,利用图形处理器(Graphic Processing Unit,GPU)并行加速PSO算法[14-17]具备硬件成本低的最显著优势.特别是2007年NVIDIA公司推出统一计算设备架构(Compute U-nified Device Architecture,CUDA)后,CUDA C因其强大的可编程性已成为当前最为流行的GPU编程语言.Veronese等于2009年首次应用CUDA实现了对PSO算法的并行加速[14].张庆科等在文献[16]中概述了CUDA架构下包括PSO算法在内的5种典型优化算法的并行实现过程.蔡勇等近期在文献[17]中给出了并行PSO算法较详细的设计思路和优化方法,取得了90倍的加速比.

在基于GPU技术加速PSO算法研究的基础上,设计并实现了一种基于CUDA架构的PSO-NN并行求解方法,并对矩形MSA谐振频率进行了快速建模.实验结果表明:若CPU端使用和GPU端相同的粒子数,该方法能大幅减少建模所需时间,相对于CPU端串行PSO-NN,GPU端并行PSO-NN在保证训练误差的前提下取得了超过300倍的计算加速比;若GPU端使用比CPU端多的多的粒子数,该方法能在运行时间增加极为有限的情况下大幅降低建模的网络误差,得到的结果明显优于该问题已有文献的结果.

1 矩形MSA的谐振频率

对于一宽为W、长为L的矩形MSA,介质基片的厚度为h,相对介电常数为εr,则该MSA的谐振频率fmn为[1-2]

式中:εe是有效相对介电常数;c是电磁波在真空中的传播速度;m和n是整数;Le和We是MSA的有效尺寸.当计算矩形MSA在主模式TM10下的谐振频率时,式(1)可写成

有效长度Le可定义为

式中,ΔL是边界延伸量,与介质基片的厚度h有关.

容易看出,矩形MSA的谐振频率取决于h,εr,m,n以及其几何尺寸W和L.

2 基于CUDA的并行PSO-NN实现

2.1 标准PSO-NN

PSO算法是Kennedy和Eberhart于1995年提出的一种基于群体智能的进化计算技术,其概念简单、易于实现、具备较强的收敛和全局搜索能力,因此发展十分迅速[18],在诸多领域得到成功应用.PSO算法用来优化NN,包括NN结构的优化和NN权阈值的优化,本文仅讨论在NN结构一定的条件下来优化NN的权阈值.

PSO-NN算法本质上就是适应度函数为NN输出误差的PSO算法.PSO-NN的核心思想在于粒子与NN之间的3个对应:粒子位置对应NN的权阈值,粒子速度对应NN权阈值的变化,粒子适应度值对应NN的输出误差.使用的PSO算法版本为引入惯性权重的PSO算法[19].粒子群由N个粒子组成,每个粒子的位置代表优化问题在D维搜索空间(D为NN权阈值的数目)中的一个潜在的解,所有粒子都有一个由NN输出误差决定的适应度值,粒子通过不断更新速度和位置搜索找到最优解.PSO-NN中,采用粒子各维与NN各权阈值一一对应的原则,将每个粒子编码成一个向量.算法的速度更新公式和位置更新公式如下:

式中:i=1,2,…,N;d=1,2,…,D;c1和c2是学习因子,非负的常数;r1和r2是介于[0,1]的均匀分布的随机数;Vid(t)∈[-Vmax,Vmax],Vmax限制了粒子飞行的最大速度,Xid(t)∈[-Xmax,Xmax],Xmax限定了粒子搜索空间的范围,可设定Vmax=kXmax,0≤k≤1;w是惯性权重,介于[0,1],用来平衡粒子的全局探索能力和局部开发能力.

标准PSO-NN算法的流程如下:

1)读入训练样本和测试样本,数据预处理,设定最大迭代次数Tmax.

2)随机初始化每个粒子的位置Xid(t)和速度Vid(t).

3)初始化个体最优位置Pid,best(t)和全局最优位置Gd,best(t).

4)更新每个粒子的速度Vid(t)和位置Xid(t).

5)计算每个粒子对应的适应度值(即训练样本的输出误差)F(Xi).

6)更新个体最优位置Pid,best(t)和全局最优位置Gd,best(t).

7)若达到最大迭代次数Tmax,则执行步骤8),否则返回步骤4).

8)计算训练样本输出和测试样本输出.

2.2 CUDA编程模型

CUDA采用CPU和GPU异构协作的编程模式,CPU负责串行计算任务和控制GPU计算,GPU以单指令多线程(Single Instruction Multiple Threads,SIMT)执行方式负责并行计算任务.内核函数(kernel)执行GPU上的并行计算任务,是整个程序中的一个可以被并行执行的步骤.CUDA将线程组织成块网格(Grid)、线程块(Block)、线程(Thread)三个不同的层次,并采用多层次的存储器结构:只对单个线程可见的本地存储器,对块内线程可见的共享存储器,对所有线程可见的全局存储器等.kernel函数中,Grid内的Block之间不可通信,能以任意顺序串行或并行地独立执行;Block内的Thread之间可以通信,能通过存储共享和栅栏同步有效协作执行.CUDA程序流程通常包括以下6个步骤:1)分配CPU内存并初始化;2)分配GPU内存;3)CPU到GPU数据传递;4)GPU并行计算;5)计算结果从GPU传回CPU;6)处理传回到CPU的数据.

2.3 基于CUDA的并行PSO-NN算法设计

为简单起见,本文使用前述标准PSO-NN算法,采用粒子与线程一一对应的并行策略,利用PSO算法固有的三大并行性:速度更新和位置更新的并行性,计算粒子适应度的并行性,更新Pi,best及其适应度值的并行性,以及CUDA架构特有的并行性:更新Gbest时求最小适应度值的并行规约算法.GPU端并行PSO-NN的算法流程设计如图1所示.

GPU端并行PSO-NN算法具体步骤设计如下:

1)CPU上读入训练样本和测试样本,数据预处理.2)CPU上调用malloc()和cudaMalloc()函数,分别在CPU和GPU上分配变量空间.

3)CPU上初始化粒子的位置、速度等数据.

4)CPU上调用cudaMemcpy()函数,将CPU上的粒子数据传至GPU全局内存;CPU上调用cudaMemcpyToSymbol()函数,将CPU上的训练样本传至GPU常量内存.

5)CPU上调用kernel函数,执行GPU上的并行计算任务,完成NN的训练.

6)CPU上调用cudaMemcpy()函数,将GPU上的

有用数据传回至CPU上.

7)CPU上将训练样本和测试样本带入训练好的NN,查看结果.

8)CPU上调用free()和cudaFree()函数,释放CPU和GPU上已分配的变量空间.

以上步骤中,完成PSO-NN加速训练的步骤5)是整个算法的核心,其伪代码如下:

for(i=0;i<generationsNumber;i++)

<Renew velocities and positions of each particle>//kernel 1

<Evaluate fitness of each particle>//kernel 2

<Renew Pi,bestof each particle> //kernel 3

<Renew Gbestof all particles> //kernel 4}

3 GPU端并行PSO-NN用于矩形MSA谐振频率建模

应用CPU端串行PSO-NN(即2.1节所述“标准PSO-NN”)和设计的GPU端并行PSO-NN分别对矩形MSA谐振频率进行建模,测试其加速性能.输入样本集合为(W,L,h,εr),相应实际测得的谐振频率fME作为输出,训练好的NN在MSA相关参数和实测谐振频率之间建立起映射关系.实验所采用的计算平台如表1所示.NN训练和测试数据源于文献[20-21]的实验结果,表2的第2到第5列给出矩形MSA的相关数据,第6列给出测量得到的TM10模式下的谐振频率,共列出了33个数据集合,其中26个用于训练NN,剩下的标注星号的7个用于测试NN.表3给出文献[5-9]中各种CPU端NN模型得到的频率的误差总和,以方便与本文计算结果进行对比.

仿真计算过程中,NN结构设计为4-10-1,权阈值数目(粒子维数)为61.隐层激活函数选为双极性S型函数,其表达式如式(6)所示;输出层激活函数选为单极性S型函数,其表达式如式(7)所示.PSO算法的惯性权重w取值0.9至0.4线性递减,学习因子c1和c2分别取2.8和1.3,训练次数Tmax取值1 000.根据CUDA架构的特点,将粒子数目设计成32的倍数值.

“加速比”Siteration是最常用的加速性能指标,定义为PSO-NN算法在相同粒子数和相同迭代次数(文中取1 000次)下CPU程序运行时间Tcpu-iteration和GPU程序运行时间Tgpu-iteration的比值为

根据上述设定进行数值测试,实验结果如表4和表2的第7到第17列所示.值得注意的是,表3中的“误差总和”指训练样本输出和测试样本输出实验值的平均值与理论值之间的绝对误差总和;表4中的“平均误差总和”指训练样本输出和测试样本输出的实验值与理论值之间的绝对误差总和的平均值.笔者认为,相对于“误差总和”,“平均误差总和”既易于计算得到,又客观反映每一次实验的误差总和,并且在相同条件下大于“误差总和”;换句话说,若表4中的“平均误差总和”优于表3中的“误差总和”,则一定优于表3对应的“平均误差总和”.表2的第7到第17列给出了GPU端单次实验误差总和最接近表4中“平均误差总和”的那一组实验数据.

分析表2~4可得如下结论:

1)粒子数越多,获得的加速比越高,PSO-NN最高获得了327倍的加速比.随着粒子数的翻倍,当粒子数小于等于16 384(实验所用GPU最大驻留线程数为26 624),加速比大致翻倍;当粒子数大于等于32 768,加速比仍能增加但增速放缓.

2)GPU端并行PSO-NN具有与CPU端串行PSONN同样的寻优稳定性.随着粒子数的不断增多,CPU程序和GPU程序的误差不断减小;粒子数相同时,CPU程序和GPU程序的误差大致相同或相近.

3)大幅增加粒子数是适应GPU计算架构的特殊方法.通常情况下粒子数目应大于问题维数(实验中问题维数为61),当粒子数大于等于128时,CPU端PSO-NN能获得较好的网络精度.大幅增大粒子数目能使粒子在算法初始阶段更均匀地覆盖搜索空间,获得更强的全局搜索能力,从而减少网络误差;但对于CPU端PSO-NN,大幅增大粒子数目也会大幅增加计算量,因此对于较复杂的优化问题,粒子数目一般也仅仅取值100~200,网络误差的减少主要依靠对算法本身的改进来实现.而随着粒子数的增加,与CPU端相比,GPU端的运行时间增加极为有限.GPU端并行PSO-NN的误差,当粒子数大于等于128时,优于文献[5-6]的结果;当粒子数大于等于256时,优于文献[8]中PSO-BP-NN混合算法的结果;当粒子数大于等于4 096时,优于文献[7]中PSO-NN的结果;当粒子数大于等于32 768时,优于包括文献[9]中BiPSO-NNE在内的所有已有文献的结果.

笔者给出的使用建议:

1)对于标准PSO-NN算法,在GPU端大幅增加粒子数,可在运行时间增加极为有限的情况下大幅降低误差.

2)对于各类改进PSO-NN算法,并不一定适合在GPU端并行化;对于适合在GPU端运行的改进PSO-NN算法,能进一步提高算法性能.

4 结 论

本文采用CUDA架构设计了标准PSO-NN的并行加速方案,实现了PSO-NN对矩形MSA谐振频率的快速建模.该方法使用粒子与线程一一对应的并行策略,通过在GPU端并行处理各个粒子的计算过程来加快整个粒子群的收敛速度,从而减少NN的训练时间.实验结果表明:相同粒子数时,相对于CPU端串行PSO-NN,GPU端并行PSO-NN可在寻优稳定性一致的前提下大幅减少建模所需时间;在GPU端大幅增加粒子数,可在运行时间增加极为有限的情况下大幅降低建模的网络误差,得到的结果明显优于该问题已有文献的结果.本文提出的并行PSO-NN可以推广应用到其他类似的微波工程的分析和设计中.

[1] WONG K L.Compact and Broadband Microstrip Antennas[M].New York:John Wiley &Sons Inc,2002.

[2] 方大纲.天线理论与微带天线(英文版)[M].北京:科学出版社,2007.

[3] 张清河.基于BP神经网络的介质圆柱体逆散射方法研究[J].电波科学学报,2010,25(2):398-402.ZHANG Qinghe.Inverse scattering by dielectric circular cylinder based on BP neural networks[J].Chinese Journal of Radio Science,2010,25(2):398-402.(in Chinese)

[4] 刘 昆,杨 了,夏 晴,等.基于神经网络的导体柱单站微波成像[J].电波科学学报,2012,27(5):1056-1060.LIU Kun,YANG Liao,XIA Qing,et al.Monostatic microwave imaging method for conductor cylinder based on neural network[J].Chinese Journal of Radio Science,2012,27(5):1056-1060.(in Chinese)

[5] GUNEY K,SAGIROGLU S,ERLER M.Generalized neural method to determine resonant frequencies of various microstrip antennas[J].International Journal of RF and Microwave Computer-Aided Engineering,2002,12(1):131-139.

[6] SAGIROGLU S,KALINLI A.Determining resonant frequencies of various microstrip antennas within a single neural model trained using parallel tabu search algorithm[J].Electromagnetics,2005,25(6):551-565.

[7] 田雨波,李正强,王建华.矩形微带天线谐振频率的粒子群神经网络建模[J].微波学报,2009,25(5):45-50.TIAN Yubo,LI Zhengqiang,WANG Jianhua.Model resonant frequency of rectangular microstrip antenna based on particle swarm neural network[J].Journal of Microwaves,2009,25(5):45-50.(in Chinese)

[8] 董 跃,田雨波.基于PSO-BP算法的微带天线谐振频率神经网络建模[J].中国传媒大学学报自然科学版,2009,16(2):58-63.DONG Yue,TIAN Yubo.Modeling resonant frequency of microstrip antenna based on neural network trained by PSO-BP algorithm[J].Journal of Communication University of China:Science and Technology,2009,16(2):58-63.(in Chinese)

[9] 田雨波,董 跃.基于神经网络集成的微带天线谐振频率建模[J].电波科学学报,2009,24(4):610-616.TIAN Yubo,DONG Yue.Modeling resonant frequency of microstrip antenna based on neural network ensemble[J].Chinese Journal of Radio Science,2009,24(4):610-616.(in Chinese)

[10] PETHICK M,LIDDLE M,WERSTEIN P,et al.Parallelization of a backpropagation neural network on a cluster computer[C]//The Fifteenth IASTED International Conference on Parallel and Distributed Computing and Systems.CA,2003:574-582.

[11] DEEP K,SHARMA S,PANT M.Modified parallel particle swarm optimization for global optimization using message passing interface[C]//2010IEEE Fifth International Conference on Bio-inspired Computing:Theories and Applications.Changsha,September 23-26,2010:1451-1458.

[12] WANG D Z,WU C H,et al.Parallel multi-population particle swarm optimization algorithm for the uncapacitated facility location problem using OpenMP[C]//IEEE Congress on Evolutionary Computation.Hong Kong,June 1-6,2008:1214-1218.

[13] MAEDA Y,MATSUSHITA N.Simultaneous perturbation particle swarm optimization using FPGA[C]//IEEE International Joint Conference on Neural Networks.Orlando,August 12-17,2007:2695-2700.

[14] VERONESE L,KROHLING R.Swarm’s flight:Accelerating the particles using C-CUDA[C]//Proceedings of the IEEE Congress on Evolutionary Computation.Trondheim,May 18-21,2009:3264-3270.

[15] KROMER P,PLATOS J,SNASEL V.A brief sur-vey of advances in particle swarm optimization on graphic processing units[C]//2013IEEE World Congress on Nature and Biologically Inspired Computing.Fargo,August 12-14,2013:182-188.

[16] 张庆科,杨 波,王 琳,等.基于GPU的现代并行优化算法[J].计算机科学,2012,39(4):304-311.ZHANG Qingke,YANG Bo,WANG Lin,et al.Research on parallel modern optimization algorithms using GPU[J].Computer Science,2012,39(4):304-311.(in Chinese)

[17] 蔡 勇,李光耀,王 琥.基于CUDA的并行粒子群优化算法的设计与实现[J].计算机应用研究,2013,30(8):2415-2418.CAI Yong,LI Guangyao,WANG Hu.Research and implementation of parallel particle swarm optimization based on CUDA[J].Application Research of Computers,2013,30(8):2415-2418.(in Chinese)

[18] POLI R,KENNEDY J,BLACKWELL T.Particle swarm optimization:an overview[J].Swarm Intelligence,2007,1(1):33-57.

[19] SHI Y,EBERHART R.A modified particle swarm optimizer[C]//Proceedings of the IEEE International Conference on Evolutionary Computation.Anchorage,May 4-9,1998:69-73.

[20] KARA M.Closed-form expressions for the resonant frequency of rectangular microstrip antenna elements with thick substrates[J].Microwave and Optical Technology Letters,1996,12(3):131-136.

[21] KARA M.The resonant frequency of rectangular microstrip antenna elements with various substrate thicknesses[J].Microwave and Optical Technology Letters,1996,11(2):55-59.

Modeling resonant frequency of microstrip antenna using GPU-based neural network

TIAN Yubo CHEN Feng
(School of Electronics and Information,Jiangsu University of Science and Technology,Zhenjiang Jiangsu 212003,China)

Resonant frequency is an important parameter in the design process of microstrip antenna(MSA).In order to deal with the issue of the long computing time and low accuracy of training neural network(NN)based on particle swarm optimization(PSO)algorithm when modeling the resonant frequency of rectangular MSA,parallel optimization based on graphic processing unit(GPU)is presented in this paper.The proposed method corresponds one particle to one thread,and deals with a large number of GPU threads in parallel to accelerate the convergence rate of the whole swarm and reduce the computing time of training NN.The resonant frequency of rectangular MSA is modeled based on the parallel PSO algorithm,and the experiments based on compute unified device architecture(CUDA)show that compared with CPU-based sequential PSONN,more than 300times of speedup has achieved in GPU-based parallel PSO-NN with the same calculation precision.Substantially increasing the number of particles on GPU side can significantly reduce the network error with the verylimited runtime increase-ment.

microstrip antennas(MSA);resonant frequency;particle swarm optimization(PSO);neural network(NN);graphic processing unit(GPU)

TN820

A

1005-0388(2015)01-0071-07

田雨波 (1971-),男(满),辽宁人,江苏科技大学教授,博士,主要研究方向为计算智能和群集智能技术及其电磁应用.

陈 风 (1989-),男,江苏人,江苏科技大学硕士研究生,主要研究方向为高性能计算、计算智能及其电磁学应用.

田雨波,陈 风.基于显卡的微带天线谐振频率神经网络建模[J].电波科学学报,2015,30(1):71-77.

10.13443/j.cjors.2014022401

TIAN Yubo,CHEN Feng.Modeling resonant frequency of microstrip antenna using GPU-based neural network[J].Chinese Journal of Radio Science,2015,30(1):71-77.(in Chinese).doi:10.13443/j.cjors.2014022401

2014-02-24

船舶工业国防科技预研基金(10J3.5.2)联系人:陈风E-mail:1019758367@qq.com

猜你喜欢
总和线程谐振
巧解最大与最小
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
我总和朋友说起你
浅谈linux多线程协作
谐振式单开关多路输出Boost LED驱动电源
基于CM6901 的LLC半桥谐振开关电源设计
谐振式浮轨扣件的安装工艺
降低双氯芬酸钾片中有关物质的工艺研究
高效半桥LLC谐振变换器的参数设计及仿真