BP网络设计2要素:
1、精度
2、训练时间
1)循环次数
2)每次循环中计算所花费的时间
异或问题是不能用线性神经网络解决的,必须使用非线性,BP可以轻易解决这个问题
>> P=[0 0 1 1;0 1 0 1]
P =
0 0 1 1
0 1 0 1
>> T=[0 1 1 0]
T =
0 1 1 0
>> net=newff(minmax(P),[5 1],{'tansig','purelin'},'trainlm')
>> a=sim(net,P)
a =
0.0000 1.0000 1.0000 0.0000
2010b中这么用
>> P=[0 0 1 1;0 1 0 1]
P =
0 0 1 1
0 1 0 1
>> T=[0 1 1 0]
T =
0 1 1 0
>> net1=newff(P,T,5)
>> net1.divideFcn=''
>> net1=train(net1,P,T)
>> a=net1(P)
a =
-0.0000 1.0000 1.0000 -0.0000
>>
help newff
newff Create a feed-forward backpropagation network.
Obsoleted in R2010b NNET 7.0. Last used in R2010a NNET 6.0.4.
The recommended function is feedforwardnet.
Syntax
net = newff(P,T,S)
net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
Description
newff(P,T,S) takes,
P - RxQ1 matrix of Q1 representative R-element input vectors.
T - SNxQ2 matrix of Q2 representative SN-element target vectors.
Si - Sizes of N-1 hidden layers, S1 to S(N-1), default = [].
(Output layer size SN is determined from T.)
and returns an N layer feed-forward backprop network.
newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) takes optional inputs,
TFi - Transfer function of ith layer. Default is 'tansig' for
hidden layers, and 'purelin' for output layer.
BTF - Backprop network training function, default = 'trainlm'.
BLF - Backprop weight/bias learning function, default = 'learngdm'.
PF - Performance function, default = 'mse'.
IPF - Row cell array of input processing functions.
Default is {'fixunknowns','remconstantrows','mapminmax'}.
OPF - Row cell array of output processing functions.
Default is {'remconstantrows','mapminmax'}.
DDF - Data division function, default = 'dividerand';
and returns an N layer feed-forward backprop network.
The transfer functions TF{i} can be any differentiable transfer
function such as TANSIG, LOGSIG, or PURELIN.
The training function BTF can be any of the backprop training
functions such as TRAINLM, TRAINBFG, TRAINRP, TRAINGD, etc.
*WARNING*: TRAINLM is the default training function because it
is very fast, but it requires a lot of memory to run. If you get
an "out-of-memory" error when training try doing one of these:
(1) Slow TRAINLM training, but reduce memory requirements, by
setting NET.efficiency.memoryReduction to 2 or more. (See HELP TRAINLM.)
(2) Use TRAINBFG, which is slower but more memory efficient than TRAINLM.
(3) Use TRAINRP which is slower but more memory efficient than TRAINBFG.
The learning function BLF can be either of the backpropagation
learning functions such as LEARNGD, or LEARNGDM.
The performance function can be any of the differentiable performance
functions such as MSE or MSEREG.
Examples
[inputs,targets] = simplefitdata;
net = newff(inputs,targets,20);
net = train(net,inputs,targets);
outputs = net(inputs);
errors = outputs - targets;
perf = perform(net,outputs,targets)
Algorithm
Feed-forward networks consist of Nl layers using the DOTPROD
weight function, NETSUM net input function, and the specified
transfer functions.
The first layer has weights coming from the input. Each subsequent
layer has a weight coming from the previous layer. All layers
have biases. The last layer is the network output.
Each layer's weights and biases are initialized with INITNW.
Adaption is done with TRAINS which updates weights with the
specified learning function. Training is done with the specified
training function. Performance is measured according to the specified
performance function.
See also newcf, newelm, sim, init, adapt, train, trains
我们也可以使用feedforwardnet做为newff的替代
>> net2=feedforwardnet(2)
>> net2.divideFcn=''
>> net2=train(net2,P,T)
>> net2=train(net2,P,T)
a =
-0.0000 1.0000 1.0000 -0.0000
>> help feedforwardnet
feedforwardnet Feedforward neural network.
Two (or more) layer feedforward networks can implement any finite
input-output function arbitrarily well given enough hidden neurons.
feedforwardnet(hiddenSizes,trainFcn) takes a 1xN vector of N hidden
layer sizes, and a backpropagation training function, and returns
a feed-forward neural network with N+1 layers.
Input, output and output layers sizes are set to 0. These sizes will
automatically be configured to match particular data by train. Or the
user can manually configure inputs and outputs with configure.
Defaults are used if feedforwardnet is called with fewer arguments.
The default arguments are (10,'trainlm').
Here a feed-forward network is used to solve a simple fitting problem:
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,t,y)
See also fitnet, patternnet, cascadeforwardnet.
Reference page in Help browser
doc feedforwardnet
- 前向网络创建函数: newcf, newff, newfftd
- 激励函数: logsig, dlogsig, tansig, dtansig, purelin, dpurelin
- 学习函数: learngd, learngdm
- 性能函数: mse, msereg
BP网络创建函数
在介绍这类函数之前, 先给出在BP网络创建函数中可能用得到的变量及其含义:
- PR: 由每组输入元素的最大值和最小值组成的Rx2的矩阵;
- $$S_i$$: 第i层的长度, 共计N层;
- $$TF_i$$: 第$$i$$层的激励函数, 默认为"tansig";
- BTF: 网络的训练函数, 默认为"trainlm";
- BLF: 权值和阈值的学习算法, 默认为"learngdm";
- PF: 网络的性能函数, 默认为"mse"
函数newcf
这个函数用于创建级联前向BP网络, 调用格式为:
net=newcf
net=newcf(PR, [S1, S2...SN], {TF1 TF2 ... TFN}, BTF, BLF, PF)
其中, net=newcf用于在对话框中创建一个BP网络..
函数newff
这个函数用于创建一个BP网络, 其调用格式为:
net=newff
net=newff(PR, [S1, S2...SN], {TF1 TF2 ... TFN}, BTF, BLF, PF)
其中net=newff用于在对话框中创建一个BP网络.
函数newfftd
这个函数用于创建一个存在输入延迟的前向网络, 其调用格式为:
net=newfftd
net=newfftd(PR, [S1, S2...SN], {TF1 TF2 ... TFN}, BTF, BLF, PF)
其中, net=newfftd用于在对话框中创建一个BP网络.
神经元激励函数
激励函数是BP神经网络的重要组成部分, 必须是连续可微的. BP网络经常采用S型的对数或者正切函数和线性函数.
函数logsig
激励函数logsig为S型的对数函数, 语法格式:
A=logsig(N)
info=logsig(code)
其中, N为Q个S维的输入列向量; A为函数返回值, 位于区间(0,1)中; info依据code值的不同而返回不同的信息, 具体请help.
函数dlogsig
函数dlogsig为logsig的导函数, 使用格式为:
dA_dN=dlogsig(N,A)
其中, N为SxQ维网络输入; A为SxQ维网络输出; dA_dN为函数的返回值, 输出对输入的导数. 该函数使用的算法为$$d=a(1-a)$$. 示例: 假设一个BP网络某层有3个神经元, 其激励函数为S型的对数函数, 利用函数dlogsig进行计算, 其MATLAB代码为:
N=[1, 6, 2]'
A=logsig(N)
da_dn=dlogsig(N,A)
函数tansig
函数tansig为双曲正切S型激励函数, 其使用格式为: A=tansig(N) info=tansig(code) 其中, N为Q个S维的输入列向量; A为函数返回值, 位于区间(-1, 1)之间; info依据code不同返回不同的值, 具体请参考help文件. 该函数使用的算法为: $$!n=\frac{2}{[1+e{-2n}]-1}$$
函数dtansig
函数dtansig是tansig的导函数, 调用格式为:
dA_dN=dtansig(N,A)
其中, 参数的含义与dlogsig相同, 该函数使用的算法为$$d=1-a2$$
函数purelin
函数purelin为线性激励函数, 其使用格式为: A=purelin(N) info=purelin(code) 其中, N为Q个S维的输入列向量; A为函数返回值, A=N; info仍然是依据code值来返回不同的信息. 该函数使用的算法是$$purelin(n)=n$$
函数dpurelin
函数dpurelin是purelin的导函数, 其调用格式为: dA_dN=dpurelin(N,A) 其中, 参数的含义与函数dlogsig的相同
BP网络学习函数
函数learngd: 这是梯度梯度下降权值/阈值学习函数, 它通过神经元的输入和误差, 以及权值和阈值的学习速率计算权值或阈值的变化率. 函数learngdm: 这是梯度下降动量学习函数, 它利用神经元的输入和误差, 权值或者阈值的学习速率和动量常数计算权值或者阈值的变化率. 具体函数的使用请参考help文件.
BP网络训练函数
函数trainbfg: 这个函数为BFGS准牛顿BP算法函数. 除了BP网络之外, 该函数也可以训练任意形式的神经网络, 要求它的激励函数对于权值和输入存在导数. 函数traingd: 函数traingd是梯度下降BP算法训练函数. 函数traingdm: 为梯度下降动量BP算法训练函数. 类似其它的训练函数还有很多, 就不一一例举了, 请大家自行help之.
性能函数
函数mse和msereg, mse是均方误差性能函数, msereg是在函数mse基础上增加了一项网络权值和阈值的均方值,目的是使网络获得较小的权值和阈值, 从而迫使网络的响应变得更平滑.
分享到:
相关推荐
【作品名称】:基于matlab-bp神经网络的数字图像识别 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于matlab-...
matlab-BP神经网络的数据分类-语音特征信号分类matlab-BP神经网络的数据分类-语音特征信号分类matlab-BP神经网络的数据分类-语音特征信号分类matlab-BP神经网络的数据分类-语音特征信号分类matlab-BP神经网络的数据...
基于MATLAB-bp神经网络的数字图像识别源码+详细文档+全部数据(高分课程设计).zip基于MATLAB-bp神经网络的数字图像识别源码+详细文档+全部数据(高分课程设计).zip基于MATLAB-bp神经网络的数字图像识别源码+详细...
**MATLAB-BP神经网络算法实现** BP(Backpropagation)神经网络算法是人工神经网络中最常见的一种学习方法,主要用于训练多层前馈网络。它通过反向传播误差来调整网络权重,从而使得网络能够逐步逼近给定的训练数据...
课程设计 基于MATLAB-bp神经网络的数字图像识别源码+项目资料齐全+部署说明文档.zip课程设计 基于MATLAB-bp神经网络的数字图像识别源码+项目资料齐全+部署说明文档.zip课程设计 基于MATLAB-bp神经网络的数字图像识别...
本篇文章将详细介绍一个基于MATLAB实现的GA-BP神经网络算法的应用实例。该实例不仅提供了完整的MATLAB源代码,还包含了详细的中文注释,方便用户根据自己的数据进行调整。 #### 二、GA-BP神经网络算法介绍 **GA-BP...
【作品名称】: 基于matlab-bp神经网络的数字图像识别【课程设计】 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:...
在MATLAB中实现BP神经网络进行数字图像识别,通常会经过以下几个步骤: 1. **数据预处理**:首先,我们需要对图像数据进行预处理,包括灰度化、归一化、降噪等操作,以便提高神经网络的训练效果。 2. **构建神经...
1、资源内容:基于matlab-bp神经网络实现的数字图像识别+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况...
《基于改进MATLAB-BP神经网络算法的隧道岩爆预测模型》 隧道工程在地质条件复杂的地区进行时,常面临岩爆这一极具破坏性的自然灾害。岩爆是由于地应力释放导致岩石突然破裂并弹射的现象,对施工安全及工程进度构成...
基于MIV-BP神经网络的数据分类模型,平均影响值算法MIV特征提取结合BP神经网络(Matlab完整源码和数据) 基于MIV-BP神经网络的数据分类模型,平均影响值算法MIV特征提取结合BP神经网络(Matlab完整源码和数据) 基于...
标题中的“基于matlab-bp神经网络的数字图像识别”是一项使用MATLAB编程语言和反向传播(BP)神经网络技术进行数字图像识别的研究或项目。MATLAB是一种强大的数学计算和数据分析工具,常用于工程、科学和金融领域的...
LM-BP神经网络,全称为Levenberg-Marquardt Backpropagation神经网络,是一种结合了梯度下降法(Gradient Descent)与Levenberg-Marquardt算法的改进型反向传播神经网络。该网络在训练过程中,通过优化算法提高了...
matlab实现的数字识别。 最重要文件: build构造学习用数据矩阵; getfeature函数提取数字特征; training使用网络进行学习; recognize实现新数字的识别。 内涵大量测试用数据。
在BP神经网络的基础上结合GA或PSO,可以创建PSO-BP和GA-BP神经网络。这些网络利用优化算法的全局搜索能力,克服传统BP网络易陷入局部最优的问题,提升训练效果。PSO-BP利用粒子群优化搜索权重空间,而GA-BP则采用...
GA-BP神经网络应用实例完整的MATLAB程序
MATLAB实现PSO-BP粒子群优化BP神经网络多特征分类预测(完整源码和数据)数据为多特征分类数据,输入12个特征,分四类。运行环境MATLAB2018b及以上,程序乱码是由于版本不一致导致,可以用记事本打开复制到你的文件。
【标题】"GA-BP_GA-BP神经网络_matlab神经网络_matlab_" 提供了本次讨论的核心主题,即在MATLAB环境下实现GA-BP(遗传算法优化的反向传播)神经网络。GA-BP神经网络是将遗传算法(Genetic Algorithm, GA)与反向传播...