当前位置:文档之家› BP神经网络设计

BP神经网络设计

出值将会限制在一个较小的范围内(0,1);而采用线性传输函数 则可以取任意值。
在确定了BP网络的结构后,要通过输入和输出样本集对网络进
行训练,以及对网络的阈值和权值进行学习和修正,以使网络实现 给定的输入输出映射关系。
三.BP神经网络的工作原理
BP网络的学习过程包含两个过程,即正向传播和反向传播。 (1)正向传播。输入已知学习样本,通过设置的网络结构和前一次
迭代的权值和阈值,从网络的第一层向后计算各神经元输出。
(2)反向传播:反向传播时,对权值和阈值进行修改:从最后一层 向前计算各权值和阈值对总误差的影响(梯度),据此对各权值和阈
值进行修改。
以上两个过程反复交替,直到达到收敛为止
三.BP神经网络的工作原理
由于误差逐层往回传递,以修正层与层间的权值和阈值,所以 称该算法为误差反向传播(back propagation)算法,这种误差反
线性函数( purelin )。其输出为
a log sig (Wp b)
BP 网络一般为多层神经网络。由 BP 神经网络构成的二层网络如图
1.2所示。
三.BP神经网络的工作原理
三.BP神经网络的工作原理
BP网络的信息从输入层流向输出层,因此是一种多层前馈神经 网络。
如果多层BP网络的输出层采用S形传输函数(如 log sig ),其输
六. BP网络应用于模式分类
%构建训练样本中的目标向量t t=[0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1; 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0; 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0; 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0]; %创建一个BP网络,隐含层有12个神经元,传递函数为tansig %中间层有4个神经元,传递函数为logsig,训练函数为trainlm net=newff(minmax(p),[12,4],{'tansig','logsig'},'trainlm'); %训练次数 默认为100 net.trainParam.epochs=500; %训练的目标 默认为0 net.trainParam.goal=0.01; %神经网络训练 net=train(net,p,t); %测试样本进行分类 p_test=[1702.8 1877.93 867.81 1831.49 460.69 2374.98 2271.89 1783.64 198.83 1494.63 1597.03 1598.93 1243.13 2336.31 354 2144.47 426.31 1507.13 343.07 2201.94 2232.43 1580.1 1962.4 1495.18 1125.17 24.22 1269.07 1802.07 1817.36 1860.45;
六. BP网络应用于模式分类
1639.79 1860.96 2334.68 1713.11 3274.77 3346.98 3482.97 1597.99 3250.45 2072.59 1921.52 1921.08 1814.07 2640.26 3300.12 2501.62 3105.29 1556.89 3271.72 3196.22 3077.87 1752.07 1594.97 1957.44 1594.39 3447.31 1910.72 1725.81 1927.4 1782.88; 2068.74 1975.3 2535.1 1604.68 2172.99 975.31 946.7 2261.31 2445.08 2550.51 2126.76 1623.33 3441.07 1599.63 2373.61 591.51 2057.8 1954.51 2036.94 935.53 1298.87 2463.04 1835.95 3498.02 2937.73 2145.01 2701.97 1966.35 2328.79 1875.83]; y=sim(net,p_test);
1.网络创建及重要代码介绍 (1)网络的构建:
首先需要构造一个网络构架,函数newff()就是构建神经网的。 下面具体介绍
参数的选择。 网络层数:选用两层BP网络即可。 输入层节点数m:其节点数取决于矢量的维数。 输出层节点数 n:输出层的节点数取决于两个方面,输出数据类型和表示该类 型所需数据大小。当BP网络用于模式分类时,则输出层的节点数可根据待分类 模式数来确定。 隐含层结点数:对于用于模式识别 /分类的 BP网络,隐层节点数可以参照以下 公式进行设计:
%构建训练样本中的输入向量p p=[1739.94 373.3 1756.77 864.45 222.85 877.88 1803.58 2352.12 401.3 363.34 1571.17 104.8 499.85 2297.28 2092.62 1418.79 1845.59 2205.36 2949.16 1692.62 1680.67 2802.88 172.78 2063.54 1449.58 1651.52 341.59 291.02 237.63;1675.15 3087.05 1652 1647.31 3059.54 2031.66 1583.12 2557.04 3259.94 3477.95 1731.04 3389.83 3305.75 3340.14 3177.21 1775.89 1918.81 3243.74 3244.44 1867.5 1575.78 3017.11 3084.49 3199.76 1641.58 1713.28 3076.62 3095.68 3077.78;2395.96 2429.47 1514.98 2665.9 2002.33 3071.18 2163.05 1411.53 2150.98 2462.86 1735.33 2421.83 2196.22 535.62 584.32 2772.9 2226.49 1202.69 662.42 2108.97 1725.1 1984.98 2328.65 1257.21 3405.12 1570.38 2438.63 2088.95 2251.96];
各有特点,但是没有一种函数能适应所有情况下的训练过程。代码如下: net=newff(minmax(p),[12,4],{'tansig','logsig'},'trainlm'); (2)网络的初始化: 网络的输入向量:p (a , a ,..., a ) 。
k 1 2 n
网络的目标向量:t ( y , y ,..., y )
试网络的逼近能力,然后逐渐增加结点数,直到测试的误差不再有明
显的较小为止;另一种方法是先设置较多的结点,再对网络进行训练, 从而得到一个适合规模的网络结构。
一般采用单隐层的BP网络就可以实现较好的训练效果。
五. BP网络的建立及执行
2.确定网络的初始权值
BP网络的各层初始权值一般选取一组较小的非零随机数。为了避免出现局部 极值问题,可选取多组初始权值,最后选用最好的一种。
S nma
1
其中,m为输入层结点数;n为输出层结点数;a为1~10之间的常数。
六. BP网络应用于模式分类
传输函数:BP网络中的传输函数通常采用S(sigmoid )形函数,在某些特定情 况下还可能采用纯线性(pureline)函数。
训练函数:BP神经网络的训练函数有 traingd , traindm, traindx 等,每种训练函数
, BP 网 络 广 泛 应 用 于 函 数 逼 近 、 模 式 识 别 / 分 类 、 数 据 压 缩 等 , 80%~90% 的人工神经网络模型是采用 BP 网络或它的变化形式,它也是
前馈网络的核心部分,体现了人工神经网络最精华的部分。
三.BP神经网络的工作原理
三.BP神经网络的工作原理
BP 神经元与其他神经元类似,不同的是 BP神经元的传输函数为非 线性函数,最常用的函数是 log sig 和 tan sig 函数,有的输出层也采用
3.产生训练样本
建立样本数据之前,首先要收集大量的原始数据,并在大量的原始数据中确 定出最主要的输入模式,分析数据的相关性,选择其中最主要的输入模式,并确 保所选择的输入模式互不相同。 在确定了最重要的输入模式后,需要进行尺度变换和预处理。使得经变换后
的数据对神经网络更容易学习和训练。 确定样本大小,样本大小取决于许多因素,如网络的大小、网络测试的需要
k 1 2 q

网络初始化程序:net=init(net)。
六. BP网络应用于模式分类
(3)训练参数初始化: 代码如下: max_epoch=x; %最大训练次数x err_goal=E ; %期望误差 (4)网络训练: net=train(net,p,t); (5)网络仿真: y=sim(net,p_test); (6)结果对比:
用于模式分类。
1 ,它主要
BP神经网络的神经元变换函数采用S形函数时,系统的输出量将为
0~1之间的连续量,它可实现从输入到输出的任意非线性映。
二.BP神经网络简介
BP 神经网络即反向传播网络,这是由于该算法连接权的调整采用
的是反向传播(Back Propagation)。在人工神经网络的实际应用中
2.BP网络的主要缺点如下:
收敛速度慢 容易陷入局部极值点
难以确定隐含层和隐含层结点的个数
五. BP网络的建立及执行
1.建立BP网络 首先需要选择网络的层数和每层的结点数。
相关主题