神经网络工具箱-matlab 详细解释
来源:互联网 发布:linux mv 编辑:程序博客网 时间:2024/06/06 09:00
先来一段整体的代码了解一下整体的架构:
<span style="font-size:18px;">input=img;bpnet=newff(minmax(input),[30 30],{'logsig', 'logsig'}, 'traingdx', 'learngdm');%建立BP神经网络, 12个隐层神经元,4个输出神经元%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数%learn属性 'learngdm' 附加动量因子的梯度下降学习函数 net.trainParam.epochs=1000;%允许最大训练步数2000步net.trainParam.goal=0.001; %训练目标最小误差0.001net.trainParam.show=10; %每间隔100步显示一次训练结果net.trainParam.lr=0.05; %学习速率0.05bpnet=train(bpnet,input,label);r=sim(bpnet,input);%预测的输出</span>
使用Matlab建立前馈神经网络主要会使用到下面3个函数:
newff :前馈网络创建函数
train:训练一个神经网络
sim :使用网络进行仿真
下面简要介绍这3个函数的用法。
(1) newff函数
<1>newff函数语法
newff函数参数列表有很多的可选参数,具体可以参考Matlab的帮助文档,这里介绍newff函数的一种简单的形式。
语法:net = newff ( A, B, {C} ,‘trainFun’)
参数:
A:一个n×2的矩阵,第i行元素为输入信号xi的最小值和最大值;
B:一个k维行向量,其元素为网络中各层节点数;
C:一个k维字符串行向量,每一分量为对应层神经元的激活函数;
trainFun :为学习规则采用的训练算法。
<2>常用的激活函数
常用的激活函数有:
a) 线性函数 (Linear transfer function)
f(x) = x 该函数的字符串为’purelin’。
b) 对数S形转移函数( Logarithmic sigmoid transfer function )
该函数的字符串为’logsig’。
c) 双曲正切S形函数 (Hyperbolic tangent sigmoid transfer function )
也就是上面所提到的双极S形函数。
该函数的字符串为’tansig’。
Matlab的安装目录下的toolbox\nnet\nnet\nntransfer子目录中有所有激活函数的定义说明。
<3>常见的训练函数
常见的训练函数有:
traingd:梯度下降BP训练函数(Gradient descent backpropagation)
traingdx :梯度下降自适应学习率训练函数
2. traingdm:动量批梯度下降函数,也是一种批处理的前馈神经网络训练方法,不但具有更快的收敛速度,而且引入了一个动量项,有效避免了局部最小问题在网络训练中出现.
3. trainrp:有弹回的BP算法,用于消除梯度模值对网络训练带来的影响,提高训练的速度.(主要通过delt_inc和delt_dec来实现权值的改变)
4. trainlm:Levenberg-Marquardt算法,对于中等规模的BP神经网络有最快的收敛速度,是系统默认的算法.由于其避免了直接计算赫赛矩阵,从而减少了训练中的计算量,但需要较大内存量.
5. traincgb:Plwell-Beale算法:通过判断前后梯度的正交性来决定权值和阈值的调整方向是否回到负梯度方向上来.
6. trainscg:比例共轭梯度算法:将模值信赖域算法与共轭梯度算法结合起来,减少用于调整方向时搜索网络的时间.
一般来说,traingd和traingdm是普通训练函数,而traingda,traingdx,traingd,trainrp,traincgf,traincgb,trainscg,trainbgf等等都是快速训练函数.总体感觉就是训练时间的差别比较大,还带有精度的差异.
all of the list:
trainb - 批具有重量与偏见学习规则的培训。
<4>网络配置参数
一些重要的网络配置参数如下:
net.trainparam.goal :神经网络训练的目标误差
net.trainparam.show : 显示中间结果的周期
net.trainparam.epochs :最大迭代次数
net.trainParam.lr : 学习率
net.trainParam.min_grad :最小梯度值
(2) train函数
网络训练学习函数。
语法:[ net, tr, Y1, E ] = train( net, X, Y )
参数:X:网络实际输入Y:网络应有输出tr:训练跟踪信息Y1:网络实际输出E:误差矩阵
(3) sim函数
语法:Y=sim(net,X)
参数:
net:网络
X:输入给网络的K×N矩阵,其中K为网络输入个数,N为数据样本数
Y:输出矩阵Q×N,其中Q为网络输出个数
- 神经网络工具箱-matlab 详细解释
- MATLAB神经网络工具箱函数
- Matlab 神经网络工具箱
- MATLAB神经网络工具箱产品描述
- matlab神经网络工具箱
- MATLAB神经网络工具箱函数
- MATLAB神经网络工具箱学习
- matlab的神经网络工具箱
- 【Matlab工具箱】线性神经网络
- MATLAB神经网络工具箱创建神经网络
- matlab神经网络工具箱创建神经网络
- matlab神经网络工具箱创建神经网络
- matlab神经网络工具箱创建神经网络
- matlab神经网络工具箱函数汇总
- Matlab神经网络工具箱应用简介
- matlab神经网络工具箱函数汇总
- matlab神经网络工具箱函数汇总
- matlab神经网络工具箱的使用
- C#开发工程师
- MYSQL小技巧(PHP)
- Http Session&Cookies
- ASP.NET 4.5 MVC 4 无法在Windows2008的IIS7.0上解决方案
- OpenCV 2之视频标注
- 神经网络工具箱-matlab 详细解释
- 使用SurfaceView实现系统信息显示
- 一点思考和新学年目标
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- velocity 语法总结
- poj 2352
- POJ 1269 Intersecting Lines(直线相交的判断)
- Matlab)实现HSV非等间隔量化--相似判断:欧式距离--输出图片-
- 增删改填