1.人工神经网络简介
近代神经生理学和神经解剖学的研究结果表明,人脑是由约一千多亿个神经元交织在一起的、极其复杂的网状结构,能完成智能、思维、情绪等高级精神活动。人工神经网络(简称NNS),是以计算机网络系统模拟生物神经网络的智能计算系统,是对人脑或自然神经网络的若干基本特性的抽象和模拟。常用的神经网络模型主要有:前馈网络、反馈网络、自组织网络。人工神经网络在经济分析、市场预测、金融趋势、化工最优过程、航空航天器的飞行控制、医学、环境保护等领域都有广阔应用的前景。
1.1 人工神经元模型
人工神经网络有许多种类型,但其基本单元—人工神经元是基本相同的。人工神经元是生物神经元的简单的模仿、简化和抽象,是一个极其简单的计算单元(函数)。如图1是一个典型的人工神经元模型:
x1 x2 ? w1 ? y wn xn 图1 人工神经元模型
神经元实现了R?R的极其简单的非线性函数:
n1?n?if x?0?1, ?, f(x)???y?f?wx???fWx???ii??0, otherwise ??i?1??其中xi—输入,Input(来自其它神经元的信号);
y—输出,output (轴突上的电信号);
wi—权值,weight (突触的强度);
? —阈值、门限,threshold;
f—激励函数、传输函数,activation function, transfer function.
人工神经元依连接方式不同构成不同的神经网络模型。
1.2 前向型神经网络
将多个神经元有机地连接成一个整体,各神经元接受前一层的输入,并
1
输出给下一层,没有反馈,就构成了前向型神经网络。图2是一个多输入、单输出三层前向神经网络的拓扑结构。
x1 ?xi ?xn ? pwij ?v1 vvk vp y?? 输入层 隐含层 输出层 图2 三层前向型神经网络
神经网络的输入为实向量x?(x1,x2,?,xn)?Rn,
wij?R(i?1,2,?,p;j?1,2,?,n)是输入层神经元j与隐含层神经元i之
间的连接权值,vi?R(i?1,2,?,p)为隐含层神经元i与输出层的连接权值,?i?R(i?1,2,?,p)是隐含层神经元i的阈值。设输入层与输出层神经元都是线性的,隐含层有p个神经元,传输函数为?(?),网络的输出结果为y??v??(?wii?1j?1前向型网络可以视为从输入到输出的高度非线性映射。理论上,对于一个三层和三层以上的前向型网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。
2. BP网络
2.1 BP神经网络模型
BP神经网络是一种前向型神经网络,BP网络的传输函数?(?)经常采用S型和线性函数:
?p nij?xj??i)。
2
(x)?(1) 对数S型的函数:logsig1; ?x1?eex?e?x(2) 双曲正切S型函数:tansig(x)?x;
e?e?x(3) 线性函数:purelin(x)?x.
BP网络可用于函数逼近、模式识别、分类、数据压缩等。
2.2 BP网络学习规则
BP网络的学习为有监督的学习,即给定一组样本数据,计算网络输出,由目标输出和网络输出定义误差函数E(w,b),网络根据优化学习规则搜索误差极小值时的连接权和阈值,实现对样本数据的正确模拟。具体学习过程主要由以下四部分组成:
1)输入样本顺传播:随即选取网络参数值,输入样本求出它所对应的网络输出。
2)输出误差逆传播:当这些实际的输出值与期望输出值不一样时,或者说其误差大于所限定的数值时,将输出误差由输出层经中间层传向输入层,逐层进行校正,完成对网络参数的更新。
3)循环记忆训练:为使网络的输出误差尽可能的小,对于BP网络输入的每一组训练样本,一般要经过数百次甚至上万次的反复循环记忆训练,才能使网络记住这一样本模式。
这种循环记忆训练实际上就是反复重复上面介绍的输入模式正向传播和输出误差逆传播过程。
4)学习结束的检验:当每次循环记忆结束后,都要进行学习是否结束的检验。检验的目的主要是检查输出误差是否已经符合要求。如果小到了允许的程度,就可以结束整个学习过程,否则还要进行循环训练。
2.3 BP网络的训练
对BP网络进行训练时,首先要提供一组训练样本,其中每个样本由输入样本和输出对组成。当网络的所有实际输出与其目标输出一致时,表明训练结束。否则,通过修正权值,使网络的实际输出与目标输出一致。
实际上针对不同具体情况,BP网络的训练有相应的学习规则,即不同
3
的最优化算法,沿减少目标输出与实际输出之间误差的原则,实现BP网络的函数逼近、向量分类和模式识别。
首先:网络初始化,构造合理的网络结构。其次,利用相应的BP网络学习规则对网络进行训练,求得权值修正后的误差平方和。最后,检查网络误差平方和是否降低到期望误差之下,若是,训练结束,否则继续。训练流程图如下:
开 始 批量输入学习样本并且对输 入和输出量进行归一化处理 参数初始化:最大训练次数,学习精度,隐节点数,初始权值、阈值,初始学习速率等 计算各层的输入和输出值 Yes 计算输出层误差E(q) Yes E(q)<ε N 修正权值和阈值 结 束
图3 BP算法程序流程图
2.4 基于MATLAB的BP神经网络工具箱函数
4
BP网络的常用函数如表1.1所示。
表1.1 BP网络的常用函数表
函数名称 newcf Newff logsig 传递函数 tansig purelin learngd 学习函数 learngdm trainbp 训练函数 trainlm sim 仿真函数 性能函数 mse msereg plotperf 显示函数 plotes plotep errsurf 1) newff
该函数用于创建一个BP网络。调用格式为: net=newff
net=newff(PR,[S1 S2..SN1],{TF1 TF2..TFN1},BTF,BLF,PF) 其中,
net=newff;用于在对话框中创建一个BP网络。 net为创建的新BP神经网络; PR为网络输入向量取值范围的矩阵;
[S1 S2…SNl]表示网络隐含层和输出层神经元的个数; {TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;
5
函数类型 前向网络创建函数 函数用途 创建级联前向网络 创建前向BP网络 S型的对数函数 S型的正切函数 纯线性函数 基于梯度下降法的学习函数 梯度下降动量学习函数 BP训练方法 Levenberg-Marquardt 训练方法 仿真网络 均方误差函数 均方误差规范化函数 绘制网络的性能 绘制一个单独神经元的误差曲面 绘制权值和阈值在误差曲面上的位置 计算单个神经元的误差曲面
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库智能计算:神经网络在线全文阅读。
相关推荐: