前言:中文期刊网精心挑选了神经网络的实现范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
神经网络的实现范文1
关键词:人工神经网络;BP算法;程序
中图分类号:TP183文献标识码:A文章编号:1009-3044(2008)05-00ppp-0c
1 引言
人工神经网络是一种信息处理系统,它有很多种模型。其中有一种用误差传播学习算法(Error Back-Propagation,即BP算法)进行训练的多层前馈神经网络,简称为BP网络。它是目前人工神经网络中应用最为广泛的网络,在文字识别、模式分类、文字到声音的转换、图像压缩、决策支持等方面都有广泛的应用。本文对BP算法进行简单的介绍,并给出其在VC++6.0中的实现方法。
2 BP算法的原理
2.1 BP网络的结构
BP网络是由一组相互连接的运算单元组成,其中每一个连接都有相对应的权值。网络结构如图1(以三层网络为例)所示,它包括输入层节点、输出层节点,一层或多层隐含层节点。在BP网络中,层与层之间采用全互连方式,同一层的节点之间不存在相互连接。
2.2 BP算法的原理
BP算法简单的来说,是把训练样本从输入层输入,通过每个节点对应的阈值、函数以及节点之间连接权值的运算,经过输入层、隐含层,传播到输出层得到计算输出,该输出和其对应的期望输出比较,得出误差。如果误差不符合要求,将误差沿输入相反的方向进行传播并沿误差降低方向调节权值和函数的阈值。用多个训练样本对网络进行反复的训练,直至误差符合要求。
2.3 算法中主要的数据结构和用到的公式
为方便说明,对算法中的主要数据结构做如下约定。网络为三层,P[m]为单个样本输入数据, m为输入向量维数,也等于输入层节点数;T[n]为单个样本期望输出数据,n为输出向量维数,也等于输出层节点数;W[h][m]为输入层至隐层权值,其中h为隐层节点数;V[n][h]为隐层至输出层权值;X[h]为隐层的输入;O[h]为隐层的输出;U[n]为输出层的输入;Y[n]为输出层的计算输出;YZH[h]为隐层的阈值;YZO[n]为输出层的阈值;DeltaO[n]为输出层一般化误差;DeltaH[h]为隐层一般化误差;E为预先设定的总体误差;η为学习速率参数;设隐含层和输出层的激活函数采用S型函数,即lxg02.tif。
算法中主要公式如下:
隐层第 个单元的输入:lxg03.tif(1)
隐层第 个单元的输出:lxg04.tif (2)
输出层第 个单元的输入: lxg05.tif (3)
输出层第 个单元的输出: lxg06.tif (4)
输出层单元 的一般化误差:DeltaO[i]=(T[i]-Y[i])?Y[i]?(1-Y[i]) (5)
隐含层单元 的一般化误差:lxg07.tif(6)
输出层至隐含层的权值调整:V[i][j]=η?DeltaO[i]?O[j] (7)
输出层阈值调整:YZO[i]=η?DeltaO[i] (8)
隐含层至输入层的权值调整:W[i][j]= η?DeltaH[i] ?P[j] (9)
隐含层阈值调整:YZH[i]=η?DeltaH[i] (10)
2.4 算法的描述
算法可描述如下:
(1)初始化:在小随机值上初始化连接权值和阈值;给出各层节点数、η、预定误差。
(2)输入训练样本集中一个样本。
(3)依据式1、2、3、4计算该样本的实际输出,和教师信号做比较,依据公式5和6分别求输出层单元和隐含层单元一般化误差。
(4)依据误差根据公式7、8、9、10分别调整输出层和隐含层的连接权和阈值。
(5)对训练样本集中所有样本重复2到4。
(6)训练次数加1。
(7)如果总误差小于预定值则执行8,否则对训练样本集返回2重复训练。
(8)记下权值和阈值,结束本次训练。
3 BP算法关键步骤在VC++6.0中实现
首先按照2.3所述定义数据结构,再定义一个放学习样本的结构:
struct {
double input[m];
double teach[n];
}Study_Data[N];
以下是实现算法公式的各个子程序:
/*初始化权、阈值子程序*/
initial()
{
srand( (unsigned)time( NULL ) );
for(int i=0;i
{
for(int j=0;j
W[i][j]= (double)((rand()/32767.0)*2-1);
}
for(int ii=0;ii
{for(int jj=0;jj
V[ii][jj]= (double)((rand()/32767.0)*2-1);
}
for(int k=0;k
{YZH[k=(double)((rand()/32767.0)*2-1);
}
for(int kk=0;kk
{YZO[kk]=(double)((rand()/32767.0)*2-1);
}
return 1;
}
/*第m个学习样本输入子程序*/
input_P(int m)
{
for (int i=0;i
P[i]=Study_Data[m].input[i];
return 1;
}
/*第m个样本教师信号子程序*/
input_T(int m)
{
for (int k=0;k
T[k]=Study_Data[m].teach[k];
return 1;
}
/*隐层各单元输入、输出值子程序*/
H_I_O(){
double sigma;
int i,j;
for (j=0;j
sigma=0.0;
for (i=0;i
sigma+=W[j][i]*P[i];
X[j]=sigma - YZH[j];
H[j]=1.0/(1.0+exp(-X[j]));
}
return 1;
}
/*输出层各单元输入、输出值子程序*/
O_I_O()
{
double sigma;
for (int k=0;k
sigma=0.0;
for (int j=0;j
sigma+=V[k][j]*H[j];
}
Y[k]=sigma-YZO[k];
O[k]=1.0/(1.0+exp(-Y[k]));
}
return 1;
}
/*输出层至隐层的一般化误差子程序*/
double d_err[n];
Err_O_H(int m)
{
double abs_err[n];
double sqr_err=0;
for (int k=0;k
abs_err[k]=T[k]-O[k];
sqr_err+=(abs_err[k])*(abs_err[k]);
d_err[k]=abs_err[k]*O[k]*(1.0-O[k]);
}
err_m[m]=sqr_err/2;
return 1;
}
/*隐层至输入层的一般化误差子程序*/
double e_err[h];
Err_H_I(){
double sigma;
for (int j=0;j
sigma=0.0;
for (int k=0;k
sigma+=d_err[k]*V[k][j];
}
e_err[j]=sigma*H[j]*(1.0-H[j]);
}
return 1;
}
/*输出层至隐层的权值调整、输出层阈值调整计算子程序*/
Delta_O_H(int m)
{
for (int k=0;k
for (int j=0;j
{V[k][j]+=a*d_err[k]*H[j];
YZO[k]+=a*d_err[k];
}
return 1;
}
/*隐层至输入层的权值调整、隐层阈值调整计算子程序*/
Delta_H_I(int m)
{
for (int j=0;j
for (int i=0;i
{W[j][i]+=b*e_err[j]*P[i];
}
YZH[j]+=b*e_err[j];
}
return 1;
}
/*N个样本的全局均方误差计算子程序*/
double Err_Sum()
{
double total_err=0;
for (int m=0;m
total_err+=err_m[m];
}
return total_err;
}
参考文献:
[1]徐勇,等,译.神经网络模式识别及实现[M].电子工业出版社,1999.
[2]戴葵,等,译.神经网络设计[M].机械工业出版社,2002.
[3]Berthold M,D J Hand,et al.Intelligent Data Analysis-An Introduction[M].Springer Berlin,1999.
收稿日期:2007-12-20
神经网络的实现范文2
关键词:温度控制系统;研究;实现
国内市场中的注塑机温度控制系统大多采用比例积分微分(pid)控制和模糊控制。在塑料机械中,料桶的温度控制非常关键,低于或者高于塑料的适宜熔融标准都会影响产品的最终成型质量。由于产品成型过程复杂而且可影响因素多,如果可以做好料桶的温控就可以对整个生产起到事半功倍的效果。但是这几种控制方式都需要建立精确的数学模型,而注塑机温度控制系统是一个大滞后、强耦合、非线性的时变系统,建立精确的数学模型是非常困难的,因此pid温控系统的效果并不是很理想,鉴于这种情况,本文引入一个基于bp神经网络的温度pid控制系统来改善注塑机温度控制。神经网络具有表达任意非线性映射的能力,能够对非线性系统进行建模。利用神经网络的这一特点建立动态模型,作为预测控制器的预测模型,可用于热力过程的预测和控制,应用bp神经网络,通过学习和训练逼近对象的真实模型。对温度控制的各相关指标的相对权重确定。影响温度变化各相关因素在输入预测和评估模型时, 需要一组决定其相对重要性的初始权重,权重的确定需要基本的原则作支持。例如确定温度的上限及下限,纯加热控制段的比例,不同位置的温度控制段的默认pid参数等。目前本文使用的是基于经验的三层架构的bp神经网络架构,通过输入层对采样数据的输入,隐含层的各种计算,并把计算结果通过输出传递出去,这样经过在线指导后,可以满足bpn-pids系统的算法的实现。其中各层的连接权值首先通过随机赋值的方式进行,然后根据各指导案例的学习,得到健壮的权重值。
本文的主要工作是设计并实现了一个基于bp神经网络的温度pid控制系统(bp neural network pid system简称为bpn-pids),其核心是 pid神经网络,如图1-2 bpn-pids控制算法所示。本文主要参考了如下的相关技术:pid控制原理,bp神经网络(如图1-1神经网络图所示),matlab软件,b/s软件架构以及asp开发工具,xml数据库存储以及opc行业标准。对于具有多变量强耦合时变特性的温度控制系统,本文所构建的pid神经网络可以通过在线学习建立科学的预测和评估指标体系及设计相应的模型计算方法与学习参数;同时,根据对象参数发生变化时对系统输出性能的影响来调整连接权值,改变网络中比例、积分和微分作用的强弱,使系统具备良好的动态和静态性能,达到系统解耦和温度控制的目的。本文结合不同塑料的具体实际特性, 对指标和模型体系进行了实证分析, 解决了普通pid控制系统的非确定性、非固定性元素。
bpn-pids系统已借助matlab软件进行了仿真与实现。系统架构如图1-3系统框架所示,包括服务器应用端程序,注塑机端相应的应用。
服务器应用端分为通讯模块,控制功能模块与数据库服务,其中控制功能模块为核心。
通讯模块的作用为服务器应用端与注塑机端的通讯并传递相应数据。
控制功能模块为核心模块,通过对传递到的数据分析与运算,进行整个系统的控制。
数据库服务则为控制功能模块服务,它将数据存储到数据库中,需要的时候则可以提取出来。
注塑机端应用分为:上位机应用,下位机应用其中,上位机应用主要作用是采集下位机的数据,经过处理后通过通讯模块给应用程序控制模块进行相应的分析,然后接受控制模块的输出指令,传递给下位机。
下位机的主要作用是通过a/d模块采集料筒的实际温度,然后传递给上位机。再接受上位机的控制指令,对料筒进行是否加热的指令。
由于采用了c/s结构,本文中注塑机端最多可以接连255个客户端。
i)总体结构
设bp神经网络是一个采用三层bp结构,它有m个输入节点,其中,根据算法结构,m=3,q个隐含节点,3个输出节点。输入节点对应所选的系统运行状态量,如系统不同时刻和输入量和输出等,必要时进行归一化处理。输出节点分别对应pid控制器的三个参数kp、ki、kd,由于这三个参数都不能为负,所以输出层神经元激活函数一定要取非负的sigmoid函数。此处根据经验,当q值过小,则算法有可能失败,当q值过大,则算法速度太慢,同时占用资源过多,所以取q=5。
ii)学习算法请参看图1-4 bp神经网络学习算法
(a)、确定bp网络结构,即确定输入层节点数m和隐含层
点数q,并给出各层的加权系数的初值,选定学习速率η和惯性系数α。初值随机赋值,学习速率与惯性系数取习惯值,此时k=1。
(b)、采样得r(k)和y(k),计算该时刻误差e(k)=r(k)-y(k)
(c)、计算神经网络各层神经元得输入、输出,nn得输出即为pid控制器得三个可调参数kp、ki、kd。
(d)、根据增量式算法计算pid得输出u(k)。
(e)、进行神经网络得学习,通过数据库的存储读取,离线调整加权系数,实现pid控制器参数得自适应调整置,重复步骤(b)-(e)。
(f)、置k=k+1,返回到b步骤
在仿真中,比较常规pid与bpn-pids系统仿真。从中可以得知通过优化和混合仿真传统pid控制器能够获得很好的系统性能,bpn-pids获得了平滑的变换,但存在静态误差。当模型参数变化时,比较两者的鲁棒性,显示了当时延增大时,传统pid出现了振荡。传统pid控制在注塑机温度控制系统中能达到较好的控制性能和控制精度。但是,当系统的参数发生变化时,常规pid的鲁棒性就很差了。而神经pid虽然存在静态误差,但仍然有很稳定的平滑性。bpn-pids同样也能获得更为平滑的过渡过程,但是系统存在着静态误差。bpn-pids具有自学习和自调整的能力,当模型参数改变时,bpn-pids仍然有平滑的过渡过程,这就证明bpn-pids的鲁棒性比传统pid更强,适应能力更强。通过matlab实现了bpn-pids算法,解决了普通pid控制方法中的非确定性,非固定的问题,通过bp神经网络的在线自学习能力,为今后不同材料,不同模具的应用达到了良好,健壮的温度控制。 从图1-5信号跟踪图中可以看出:控制变量u变化规则,扰动较小,跟踪曲线光滑,跟踪误差小,达到稳定状态后,误差波动小。
图1-6误差曲线图为系统的误差曲线,可以看出,系统跟踪误差非常小大约在(0.008~-0.008 内),跟踪效果很理想。
图1-7 pid参数变化图反映了整个过程中参数kp,ki,kd 随时间变化的情况,可以看出, kp,ki,kd 在不断调整,从而使控制效果最佳。
本文以基于神经网络的解耦控制和pid控制作为研究的出发点,经过查阅资料、理论研究以及实际测试,取得的研究结论可简要的归纳如下:
(1)就基于神经网络的参数自适应pid控制算法进行了分析研究。利用神经网络所具有的任意性表达能力,通过对系统的学习来实现具有最佳组合的pid控制。避免了凭经验选取pid控制参数的不确定性,而且可以实现控制器参数的在线调整和整定。算法主要由两个部分组成:
a.经典的pid控制器,控制算法为经典增量式。直接对被控对象进行闭环控制,而且三个参数为在线调整方式。
b.神经网络,根据系统的运行情况,根据学习算法,在线调整pid控制的参数使得给定性能指标最优,输出层神经元的输出状态读对应于pid控制器的三个可调参数。
(2)给出了一种基于神经网络的分散解耦算法bpn-pids算法。这种分散解耦算法从本质上仍属于串联解耦的一种特殊情况,但他与串联解耦又有所不同。
(3)将基于神经网络的参数自适应pid控制算法与分散解耦算法结合,并能过matlab软件中实现了bpn-pids算法,并实现了在线的整定的算法,既避免了当单独采用自适应pid算法时,如多变量被控对象耦合严重,则控制效果不佳的问题;又避免了当采用分散解耦算法时,如出现多变量被控对象模型参数发生变化,原有的控制器参数不能适应变化后的对性的问题。将该算法应用与料筒的温度控制,结果表明可以取得较为满意的控制效果。
本文工作对具有多变量强耦合时变特性的控制系统的设计与实现具有较好的参考价值。
参考文献
[1](美)martin t.hagan,等.神经网络设计[m].机械工业出版社,2002)9).
神经网络的实现范文3
关键词:神经网络;非线性;控制
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2015)27-0139-03
Abstract: In this paper, one for uncertain nonlinear systems adaptive neural network control program common, of which only a neural network controller and at the same time as the identifier, the controller uses the generalized backpropagation learning algorithm (GBP) as controllers learning algorithm to achieve a unified learning error and control error learning process controller is to control law to control update algorithm update process, no additional control algorithms. The control scheme is simple algorithm, control speed, real-time, is a highly non-linear neural network control scheme.
Key words: neural network; nonlinear; control
神经网络的应用相当广泛,一般常用于优化、决策、分类问题以及预测等方面。因为神经网络是一种具利用大量的运算单元(神经元),以平行且分散的方式进行运算,具有学习、回想与归纳推演的能力,所以神经网络技术在非线性不确定系统的识别和控制方面得到应用。
根据神经网络的特点,提出来一种对传统神经网络改进的结构,通用非线性神经自适应控制可以在传统的神经网络基础上进行了改进,不需要独立的识别器,集成了识别器和控制器,减少了控制误差,系统的闭环控制稳定系数提高,控制器采用了广义的反向传播学习方法,使神传统经网络的算法和处理速度得到提升。
1 传统神经网络 BP 算法与广义反传控制
神经网络是一种并行分布处理数据的处理器,具有适应环境变化对突发变化的情况可以随机变化。此外,在一个动态环境中,突触权重可以根据自身的设计进行改变。多样化的神经网络的能力都来自其适应能力的突触权重,如学习能力,识别能力的自适应控制能力[1]。神经网络的学习算法决定着突触权值的学习适应能力,神经网络较为传统的算法就是BP算法,BP算法的识别过程如图1所示。
所以BP神经网络的学习过程是对神经元的修正和积累,可以将神经网络与未知系统出的误差降到最低,从而对数据的处理近似到精确值。
广义反传控制是对BP神经网络的算法的一个扩展,对传统的BP神经网络算法中的非线性未知系统包含在误差反传过程中,广义反传算法GBP可以自适应控制,在控制过程中不需要传统的识别功能,在控制过程即可对其识别,减少了单独识别过程,广义反传控制过程如图2所示。
2 广义反传控制算法
为简化起见,此处只考虑单输入单输出系统,相应的情况很容易扩展到多输入多输出系统。对于公式(8)式,表示我们把被控的未知系统看成是一个复杂的单神经元,权值固 定为1:对于GBPNNC隐藏层的神经元,局域梯度的计算规则和突触权值的更新规则与经典的BP学习算法是一致的,为了保证输入至未知系统的输入的有界性,我们给出了适用于非线性系统的GBP控制律,由以下的规则构成:
规则1:由GBPNNC和被控系统构成的整个系统可以看成一个整体的神经网络,被控系统被看成为一个复杂神经元,被当做整个神经网络的输出层,整个神经网络由GBPNNC以及未知系统神经元构成,GBPNNC的突触权值更新规则遵守GBP算法,即GBPNNC的突触权值更新规则由式公式(3))确定,当神经元为GBPNNC输出层神经元时,局域梯度公式(3)按公式(8)计算,其他情况按公式(5)计算[3]。
3 GBP 控制方案的收敛性与稳定性分析
GBP控制方案是基于GBP学习算法的,从更新规则(3.3)可以看出,为了保证控制方案的收敛性和稳定性,合适的学习率是必需的。本节将基于Lyapunov函数方法导出一种自适应的学习率。
4 仿真与结果
GBP控制方案是一种通用的神经网络控制方案,因为未知系统可以被看成是一个黑箱,象[中一样,对于被控非线性系统没有阶数的限制。因此它可以应用于单输入单输出或多输入多输出系统,连续系统或离散系统。为了演示基于GBP算法的建议方案的控制性能,我们给出了一个仿真例子。
考虑未知系统方程(1)的非线性系统的控制:
在图3中,实线为输出层神经元的学习率变化情况,虚线为隐藏层和输入层神经元的学习率变化情况,从图3可以得出,通过改变传统神经网络的算法,可以缩短误差和计算时间,提高了运算效率。在图4中可以看出,GBPNNC控制方法与直接逆神经控制方法进行的比较,自适应学习率的GBPNNC控制方法优于固定学习率的GBPNNC方法,本文提出的这种控制方法减少了控制误差和提高了收敛速度。
5 结语
本文提出了一种基于神经网络的通用非线性神经自适应控制方案,该方案是在传统的BP算法上进行了改进,得到广义反传GBP算法,将识别和控制在一定程度上进行了统一,控制误差得到了降低,该方案操作简单,实时性能好,收敛速度快,在非线性不确定控制方面起到了一定的效果。
参考文献:
[1] 古勇, 苏宏业, 诸健. 循环神经网络建模在非线性预测控制中的应用[J]. 控制与决策, 2000, 15(2): 254 -256.
[2] 陈增强, 赵天航, 袁著祉. 基于Tank-Hopfield 神经网络的有约束多变量广义预测控制[J].控制理论与应用, 1998, 15(6): 847 -852.
神经网络的实现范文4
关键字:木材表面缺陷,神经网络,BP网络
Abstract: from now neural network in pattern recognition of the development perspective, in large network structure optimization problem and network learning problems is still open to solve and improve. Therefore, to study various neural network in the wood surface defect recognition of the practicability and accuracy, wood surface defect recognition to promote the study of the method, has very important practical significance.
Key word: wood surface defect, neural network, and BP network
中图分类号:F762.4 文献标识码:A 文章编号:
随着科学技术的发展,神经网络理论作为一门新兴学科,近年来被广泛应用于木材表面缺陷的识别分类中,以达到神经网络具有的实时性、容错性以及学习性等特点。然而,由于木材表面缺陷种类繁多,随机性比较强,这些都给分类器提出了很高的要求。现阶段,人们普遍采用都是基于误差逆传播算法(BP)的神经网络,然而BP网络的缺点是对干扰量非常敏感、隐含层节点数需要经过多次尝试、学习速度慢且易陷入局部极小点。
1.误差逆传播神经网络(BP网络)
按照误差逆传播学习算法进行训练的多阶层神经网络被直接称为误差逆传播神经网络,即BP网络。BP网络是一种具有三层神经元的阶层神经网络,不同阶层神经元之间实现权重连接,而每层内各个神经元之间不连接。
2.木材缺陷特征提取
⑴ 划分缺陷区域并确定缺陷的尺寸和位置
在二值化图像中,相互连接的黑像素的集合称为一个区域。在这部分程序设计中,通过对图像内每个区域进行标记操作(标号),求得这样区域的数目(也就是在这幅二值图像中存在的缺陷数),进而计算每个缺陷的边界,再按照求得条件进行区域划分,把每个缺陷均划在一个区域中,使一幅图像分成多幅图像。然后分别对每个小幅图像进行计算,确定缺陷的位置及尺寸。
⑵ 根据缺陷位置及尺寸提取灰度特征
根据M[][]数组中的缺陷位置数据,从二值化前的灰度图像中提取缺陷的灰度特征,由此依次地得到缺陷特征数组BB[Rmax-Rmin][Lmax-Lmin]。其中缺陷部分为具体的灰度值,其它均为0。
3.BP网络设计
BP神经网络是目前所有神经网络中算法最为成熟,应用最为广泛的一种神经网络,且具有简单、易于实现等特点。
⑴ 输入层和输出层的设计
BP神经网络的输入,输出层维数完全根据使用者的要求来设计。本实验研究对象为木材缺陷图像,输入为表征木材图像缺陷特征的特征向量,在图像处理过程中,我们提取了缺陷的3个特征数据:缺陷灰度均值、缺陷灰度方差和缺陷形状。
如果把它们作为网络的输入,则网络的输入层的单元个数便确定为3个,根据所达到的识别要求,对木材的十种缺陷进行有效识别,选择输出层单元的个数十个,即每个单元的输出代表一种缺陷类型,这样便确定了网络的输入和输出层单元数目,再根据这两个数据确定中间层(隐层)单元数。
⑵ 隐层的设计
1989年,RobertHeeht-Nielson证明了对于任意在闭区间内的一个连续函数都可以用含一个隐层的BP神经网络来逼近,因而一个单隐层的BP神经网络可以完成任意的n维空间到m维空间的映射,隐层神经元数目选择是一个十分复杂的问题,往往需要根据设计者的经验和多次试验来确定,不存在一个理想的解析式来计算。
⑶ 初始值的选取
由于系统是非线性的,初始值对于学习能否达到局部最小和是否能够收敛的结果关系很大。一个重要的要求是:初始值在输入累加时使每个神经元的状态值接近于零,权值一般取随机数,要比较小。输入样本也同样希望进行归一化处理,使那些比较大的输入仍落在传递函数梯度大的地方。
⑷ 传递函数的选择
BP神经网络传递函数必须是可微的,根据网络的要求和所要达到的网络输出目的,选择网络中间层的传递函数为s形函数,它主要根据值的大小作出运算和判断,它的输出性质与所要求的网络输出具有相同的性质。
⑸ 网络学习算法的构成
木材缺陷的识别应用BP神经网络模型,网络训练采用梯度下降法,使输出误差最小,直到满足给定的精度要求。利用图像处理模块部分构成网络的输入特征量,即把缺陷的灰度均值、灰度方差和形状的长宽比作为输入向量{xl、x2、x3)选择值。这一步也就是向神经网络输入的待识别图像的数字特征通过计算机利用一定的算法对这些数字化特征进行分类。当神经元的非线性函数是s型时,由神经元组成的前传型网络的传递函数是连续可微的,故误差反向传播算法可以用LMS法则进行。
⑹识别网络的系统模型及构成
板材表面特征通常是表现为存在表面缺陷和无表面缺陷两种情况,所以适合选用两级神经网络板材表面缺陷检测模型。一级神经网络用于检测图像是否存在缺陷,如果存在缺陷,则图像存入缓冲区,利用二级神经网络对缓冲区的图像进行分析处理,如果没有缺陷,则不保存图像,直接输出检测结果;二级神经网络根据缺陷图像特征参数对缺陷进行分类,确定图像中每个缺陷的位置。
将人工神经网终与有效的特征提取结合起来,有可能获得更为满意的识别效果。根据图像处理模块分析提取反映缺陷形态的特征向量,这些特征向量既可直接输入神经网络的输入节点,作为网络训练或形态识别的参数,也可导入形态识别特征数据库。另外,为了提高网络的自适应性,进一步完善识别诊断模型,还可在原有的训练的网络基础上,对神经网络模型进行再学习。
4.识别结果与讨论
训练后的BP网络是否满足需要,必须经过检验才能确定。验证网络的正确性一般采用与实际样本数据相比较的方法,即先把验证样本的数据经初始化后输入模型号,经BP网络模型计算,输出相应数据,然后将对照样本的实际值与网络输出值相比较,若误差在允讲范围内,此网络是可用的,否则要重新训练。
5.结束语
神经网络算法识别给传统模式识别法带来了巨大的挑战。它具有记忆、学习和算法多样等功能,在识别中能够得到非常准确的识别结果,所以神经网络识别在对于板材表面缺陷识别这一方面具有可行性和应用价值。由于实验尚处于对神经网络开发的初级阶段,所选择的网络算法((BP算法)是神经网络算法中比较成熟的算法,它具有构造、学习等比较容易的优点,但它的一些不可克服的缺点却影响了它在应用中效果。但是这些缺点是可以克服的,神经网络识别的强大优势和识别效果是非常吸引人的。应用一些新型的网络算法,在多次实验研究的基础上,可以根据对板材表面缺陷识别的一些特有的要求来构造有利于这一识别的新型网络,那么神经网络方法对表面缺陷的识别即可达到优于其它传统识别方法的性能。所以,神经网络算法上的改进是今后研究木材表面缺陷神经网络识别首先解决的工作。
参考文献:
[1]王业琴等 计算机视觉木材表面色差检测的研究[J] 林业科技 2005
[2]赵茂程等 基于BP网络的树形识别系统研究[J] 林业科学 2004
神经网络的实现范文5
1986年,rumelhart提出了反向传播学习算法,即bp(backpropagation)算法。反向传播bp(back propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一[1]。这种算法可以对网络中各层的权系数进行修正,故适用于多层网络学习。bp算法是目前应用最广泛的神经网络学习算法之一,在自动控制中是最有用的学习算法,它含有输人层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层。在隐层中的神经元也称隐单元。隐层虽然和外界不连接,但是,它们的状态影响着输入输出之间的关系。也就是说,改变隐层的权系数,可以改变整个多层神经网络的性能[2]。
1bp 神经网络模型
bp 神经网络模型由一个输入层、一个输出层以及一个或多个隐含层构成,同一层中各神经元之间相互独立。输入信号从输入层神经元开始依次通过各个隐含层神经元,最后传递到输出层神经元, 图1给出了包含一个隐含层的bp网络模型结构,隐含层神经元个数为m。理论研究表明:具有一个输入层,一个线性输出层以及sigmoid 型激活函数的隐含层bp 网络能够以任意精度逼近任何连续可微函数[3]。
三层感知器中,输入向量为x=(x1,x2…xi…xn)t,图1中x0=-1是为隐层神经元引入阈值而设置的,隐层输入向量为y=(y1,y2…yj…ym,)t,图中y0=-1是为输出层神经元引入阈值而设置的;输出层输出向量o=(o1,o2, …,ok,ol)t,期望输出向量为d=(d1,d2, …,dk,dl)t,输入层到隐层之间的权值矩阵用v表示,v=(v1,v2, …,vj, …vm)t,隐层到输入层之间的权值矩阵用w表示,w=(w1,w2, …,w,k …wl)t,下面分析各层信号之间的关系[4]。
图1三层bp网络
对于输入层:
ok=f(netk) k=1,2, …,l,netk=∑mj=0wjkyj k=1,2, …,l;
对于隐层:
yj=f(netj)j=1,2, …,m,netj=∑ni=0vijxij=1,2, …,m;
以上两式中,激活函数都是sigmoid函数。
f(x)=11+e-x,f(x)具有连续、可导的特点且f’(x)= f(x)[1- f(x)]。
根据以上公式,我们可以推导出权值调整量δwjk和δvjk分别是:
δwjk=ηδokyj=η(dk-ok)ok(1-ok)yj,δvij=ηδyjxi=η(∑lk=1δokwjk)yj(1-yj)xi
2智能公交实时调度模型总体设计
公交公司的行车计划一般在年初就制定完成,调度员根据行车计划进行调度,遇到节假日、雨天等突况时,就凭调度员的工作经验调度。因此,可以考虑使用bp神经网络算法,在智能公交实时调度中加入误差反向传播算法,利用误差反向传播算法超强的学习能力和泛化能力,通过对公交海量历史调度数据的学习,建立公交车到达目的站点的预测模型。通过实时gps数据,就可以预测车辆到达目的地的大概时间,为建立智能公交调度提供极大的方便。智能公交实时调度模型如图2所示。
图2智能公交实时调度模型
从图2可以看出,智能公交实时调度模型分为3个主要模块。
(1)数据处理分析模块。智能公交实时调度模型的基础模块,数据来源于两个部分:一是公交历史行车数据,包括发车时间、天气等数据;二是gps定位系统采集的实时数据,主要是各个时刻采集的运行数据。该模块根据各预测模型的需要,选择合理的数据输入,并对数据进行处理。
(2)预测模型模块。通过对现有数据的分析、预测,得到车辆到达调度站的运行时间预测结果。
(3)智能实时调度模块。输入预测模型可以得到车辆运行时间,根据公交历史调度计划以及公交客流数据,可以适当改变当前调度计划,临时下达调度指令,为建立与实际客流相结合的调度方法提供决策支持。
(4)基于bp神经网络的预测模型。公交车辆的运行时间总的来说还是比较固定的,但是有时候会随着道路拥挤情况、节假日、天气情况等有所改变。由于神经网络具备以任意精度逼近连续函数功能,具有较强的自我学习能力和泛化能力,能够充分体现输入数据与输出数据之间复杂的映射关系。因此,本文采用bp神经网络来预测车辆到达时间。
2.1输入变量对公交运行时间的影响
把公交车运行时间分
为几个阶段,车辆到达目的地所需要的时间往往与该公交车处于的阶段有着某种必然的联系,根据车辆实时gps数据及车辆运行过程中所处的时间,设ti为公交车实时时间,所以ti在那个阶段对车辆运行有直接影响, ti可以根据gps数据实时取得。
车辆位置:车辆在运行过程中所处的位置对公交车到达目的站有着一定的影响,根据gps实时数据,可以计算出车辆离终点站有多少距离,将车辆在ti时刻距调度站的距离作为影响因素。
天气情况:天气的好坏对公共汽车的运行产生比较大的影响,一般情况下,公交车在晴天的运行时间要比雨天少,车速比雨天快。
星期情况:从周一到周日,不同日子有着不同的客流,所以星期情况对公交的运行产生一定的影响。
节日:重大节日客流量明显增多,车辆的运行时间也会有所延长。
2.2变量获取
bp神经网络需要大量数据作为输入、输出样本,因此在构建bp神经网络前,首先要做的工作就是获取这些数据。利用先进的信息技术,可以获取公交车辆运行的gps数据,而天气、星期情况、是否节假日这些变量则可以在大量的历史数据中获得。
2.3基于神经网络的车辆预测模型
预测模型将采用三层bp神经网络,即一个输入层,一个隐层以及一个输出层,输入层一共有5个变量,分别是时间、车辆位置、天气情况、星期情况以及节假日。隐含层节点数目一共有11个节点。输出层为1个节点,采用有导师的学习方法。至此本文建立的bp网络结构为5×11×1,bp网络结构如图3所示。
图3bp神经网络结构
bp神经网络的车辆运行时间测算模型如图4所示。
其中:t 为当前时刻,w(t-t),当前时刻t之前t时刻神经网络输入层与隐层以及隐层与输出层之间的权值矩阵。
f(t):车辆从起始站到当前时刻车辆的运行时间。
f’(t):预测样本的输出时间。
xi(t):t时刻的第i个输入向量,i∈[0,1],其中xi为车辆在t时刻到达调度站的距离的输入向量,x2为天气情况输入向量,x3为车辆运行所处的星期输入向量,x4为车辆运行当天是否节日的输入向量,x5为gps采集数据的时刻向量。
图4bp神经网络的车辆运行时间测算模型
2.4样本数据取值及归一化方法
(1)gps定位数据。在车辆运行过程中,对车载gps数据进行采集,采集完成后通过一定的方法进行计算,从而得出车辆离到达站的距离,设该距离为一对一使用归一化处理,使得转换后的数值就落在(0,1)上。
(2)天气情况。在一段时间内,公交车会碰到不同的天气,不同的天气对公交的运行产生不同的影响。我们把天气进行分类,一共分为7种状况,分别是大雨、小雨、雪、大雾、小雾、晴天和阴天,用不同的数字来表示这7种天气情况。
(3)星期情况。对于不同的星期采用不同的分类方法表示,从星期一到星期日也采用不同的数字表示。
(4)节假日。节假日可以用布尔变量来表示,true是节假日,false为非节假日。
3结语
国内大多数公交调度优化研究都是着眼于静态调度,而本文将研究重点放在了实时调度方面,在智能公交实时调度中加入bp神经网络技术,用误差反向传播算法超强的学习能力和泛化能力,通过对公交海量历史调度数据的学习,建立公交车到达目的站点的预测模型。通过实时gps数据,就可以预测车辆到达目的地的大概时间,为建立智能公交调度提供极大的方便。
参考文献参考文献:
\[1\]李翔,朱全银.adaboost算法改进bp神经网络预测研究[j].计算机工程与科学,2013(8).
神经网络的实现范文6
关键词:卷积神经网络 现场可编程门阵列 并行结构
中图分类号:TP183 文献标识码:A 文章编号:1007-9416(2015)12-0000-00
1 引言
卷积神经网络(Convolutional Neural Network, CNN)具有良好的处理能力、自学能力及容错能力,可以用来处理复杂的环境信息,例如,背景情况不明,推理规则不明,样品存有一定程度的缺陷或畸变的情况。所以,卷积神经网络被广泛应用于目标检测、物体识别和语音分析等方面[1]。现场可编程门阵列(Field Programmable Gate Array, FPGA),作为可编程使用的信号处理器件,其具有高集成度、运行高速、可靠性高及采用并行结构的特点,易于配合CNN处理数据。
2 国内外研究现状
2.1 神经网络的模型结构
根据研究角度、数据传递方式、数据处理模式、学习方法等的不同,多种神经网络模型被构建出来。目前主要有四种模型被广泛应用中[2][3]:
(1)前馈型神经网络。此类神经元网络是由触突将神经原进行连接的,所以网络群体由全部神经元构成,可实现记忆、思维和学习。此种类型的网络是有监督学习的神经网络。(2)递归型神经网络。此种神经网络又称为反馈网络,以多个神经元互相连接,组织成一个互连的神经网络,使得电流和信号能够通过正向和反向进行流通。(3)随机型神经网络。此种神经网络的运行规律是随机的,通过有监督学习方法进行网络训练。(4)自组织竞争型神经网络。此种神经网络通过无监督的学习方法进行网络训练,一般具有两层网络结构,输入层和竞争层。两层间的各神经元实现双向全连接。
2.2 神经网络的学习方法
神经网络的学习方法用来解决调整网络权重的问题,是指完成输入特征向量映射到输出变量之间的算法,可以归纳为三类[4-7]:
(1)有监督的学习。在学习开始前,向神经网络提供若干已知输入向量和相应目标变量构成的样本训练集,通过给定输入值与输出期望值和实际网络输出值之间的差来调整神经元之间的连接权重。(2)无监督的学习。此种学习方法只需要向神经网络提供输入,不需要期望输出值,神经网络能自适应连接权重,无需外界的指导信息。(3)强化学习。此种算法不需要给出明确的期望输出,而是采用评价机制来评价给定输入所对应的神经网络输出的质量因数。外界环境对输出结果仅给出评价结果,通过强化授奖动作来改善系统性能。此种学习方法是有监督学习的特例。
2.3 卷积神经网络的结构
卷积神经网络为识别二维或三维信号而设计的一个多层次的感知器,其基本结构包括两种特殊的神经元层,一为卷积层,每个神经元的输入与前一层的局部相连,并提取该局部的特征[8];二是池化层,用来求局部敏感性与二次特征提取的计算层[8]。作为部分连接的网络,最底层是卷积层(特征提取层),上层是池化层,可以继续叠加卷积、池化或者是全连接层。
3 FPGA实现神经网络的并行体系结构
(1)卷积神经网络的计算架构。卷积神经网络可以使用“主机”与“FPGA”相结合的体系模型,主机用来控制计算的开始和结束,并在神经网络前向传播计算过程中,提供输入图像等数据。主机与FPGA之间的通信可以通过标准接口,在主机进行任务分配的过程中可以对FPGA上的卷积神经网络进行硬件加速。当卷积神经网络开始启动计算,通过标准接口接收到主机传输的图像时,FPGA开始进行计算,并且使用FPGA中的存储器来存储卷积核权值。FPGA将会先完成卷积神经网络前向传播过程的计算,然后将其最后一层计算得到的结果输出给主机。(2)卷积神经网络并行体系架构。一、单输出并行结构:每次计算一个输出图像,其中会将多个输入图像和多个卷积核基本计算单元同时进行卷积运算,然后将全部卷积运算的结果与偏置值进行累加,再将结果输入非线性函数和自抽样子层进行计算。二、多输出并行结构:若卷积神经网络的计算单元中含有多个单输出的并行结构,那么输入数据可同时传送到多个单输出计算单元的输入端,从而组成多个单输出计算单元组成的并行结构。在卷积神经网络的并行计算结构中,每个卷积核计算单元在进行卷积操作时都要进行乘加运算,所以,有必要将单个的卷积运算拆分实现并行化,并且可以尝试将同一层内的多个卷积运算进行并行化。
4 结语
本文对卷积神经网络进行了介绍,总结了国内外的研究现状,结合卷积神经网络运算的特点与FPGA的快速计算单元数量及功能方面的优势,尝试阐述了在FPGA映射过程的卷积神经网络的并行体系结构。
参考文献
[1] Fan J,Xu W,Wu Y,et al. Human tracking using convolutional neural networks[J].IEEE Transactions on Neural Networks,2010(10):1610-1623.
[2] 杨治明,王晓蓉,彭军.BP神经网络在图像分割中的应用.计算机科学[J].2007(03):234-236.
[3] Simon Haykin . Neural networks ,a comprehensive foundation[M].second edition,Prentice Hall,1998.
[4] Herta J , et al.Introduction to Theory of Neural Compution[M].Sant Fee Complexity Science Series,1991.156.
[5] 戴奎.神经网络实现技术[M].长沙:国防科技大学出版社,1998.
[6] 焦李成.神经网络系统理论[M].西安:西安电子科技大学出版社,1996.