-
2021-09-10 10:16:59
matlab神经网络工具箱
matlab拥有着很多实用的工科计算工具,其中就包含了神经网络工具箱。利用matlab,可以很容易地搭建一个实用的神经网络。
启动神经网络工具箱
nnstart
输入后,会出现窗体,点击对应的窗体即可启动相关的训练程序。
其中包含
- nftool(Neural network fitting tool,神经网络拟合工具) 常用于线性拟合
- nprtool(Neural network pattern recognition tool,神经网络模式识别工具) 常用于分类问题(有标签)
- nctool(Neural network classification or clustering tool,神经网络分类与聚类工具) 用于聚类问题(无标签)
- ntstool(Neural network time series tool,神经网络时序拟合工具) 带有记忆功能的拟合工具
启动后按照指引,可以执行对应的功能。
神经网络拟合数据
据证明,简单的神经网络可以拟合任何实际的函数。
LM算法(Levenberg-Marquardt)适合于大多数的问题,但对于有小噪声干扰的数据,贝叶斯正则化算法(Bayesian Regularization)可以通过长时间的运算以获得更好的拟合效果。对于大规模的问题,量化共轭梯度法(Scaled Conjugate Gradient)更推荐适用,因为其梯度计算比实用雅各比行列式能节约更多的内存。
神经网络模式分类
神经网络在分类问题上也很实用。
对于分类问题来说,其数据格式应该是这样的:
- 二分类
inputs = [0 1 0 1; 0 0 1 1]; targets = [1 0 0 1; 0 1 1 0];
- 三分类
inputs = [0 0 0 0 5 5 5 5; 0 0 5 5 0 0 5 5; 0 5 0 5 0 5 0 5]; targets = [1 0 0 0 0 0 0 0; 0 1 1 1 1 1 1 0; 0 0 0 0 0 0 0 1];
输入为MxN维矩阵,对于K分类问题,输入应该为MxK维矩阵。对输出来说,每个分类的列都应该只包含一个1,其余为0。
自组织映射聚类
聚类问题是神经网络的一个出色的应用,通过相似性对数据进行分组。
动态时序神经网络
动态神经网络适用于时序预测。
网络参数
为了验证网络效果,我们需要对生成的网络参数进行分析。
Performance(误差函数)
- mse(Mean squared normalized error performance function,归一化均方误差函数) 表现数据与预测值直接的距离和,越小越好。
Regression(相关性)
表现为系统输出与数据之间的关联性,越接近于1表现越好。
Training State(训练状态)
- Gradient梯度
- Mu学习率
- Validation Checks失败检验次数
Error Histogram(误差直方图)
横坐标为目标值-输出值,纵坐标为出现的次数。
Confusion(混乱型)
表现不同数据集中的分类的精确性,横坐标为目标分类,纵坐标为系统训练的输出分类。
红色表示错误分类,绿色表示正确分类。高亮块表示当前训练得到的精确度,右下角表示总体精确度。
Receiver Operating Characteristic(认知工作特性)
表现不同数据集中的ROC特性,对于完美的测试结果,应该贴合在左上边框,表现为全敏感性和全特异性。
参考文献
本文首载自RuaBlog,欢迎访问我的博客。
matlab官方文档
更多相关内容 -
MATLAB 神经网络工具箱函数.pdf
2021-06-06 12:07:21MATLAB 神经网络工具箱函数 -
将matlab神经网络工具箱代码导出-Resnet18:Resnet18
2021-06-12 10:26:06将matlab神经网络工具箱代码导出Resnet18 ResNet-18 是一个卷积神经网络,它在来自 ImageNet 数据库的超过一百万张图像上进行了训练。 结果,网络已经为各种图像学习了丰富的特征表示。 该网络可以将图像分为 1000 ... -
基于MATLAB神经网络工具箱的BP神经网络的应用研究.pdf
2021-06-21 14:52:53本文详细研究了基于MATLAB 2018工具箱的BP神经网络模型的建立和仿真过程,介绍了BP神经网络的原理及具体推导,并应用在江苏省教育厅高校哲学社会科学研究项目中,借助智能算法对指标体系的构成要素进行数据挖掘,所获取... -
将matlab神经网络工具箱代码导出-pyradbas:python的简单径向基函数网络
2021-06-12 10:26:02将matlab神经网络工具箱代码导出 -
基于MATLAB神经网络工具箱的BP网络实现-基于MATLAB神经网络工具箱的BP网络实现[1].pdf
2019-08-12 23:16:13基于MATLAB神经网络工具箱的BP网络实现-基于MATLAB神经网络工具箱的BP网络实现[1].pdf 基于MATLAB神经网络工具箱的BP网络实现,欢迎访问下载。 Figure14.jpg -
基于Matlab神经网络工具箱的电力负荷组合预测模型
2021-01-14 17:55:09通过网络训练自适应地调整各种预测模型的权重,同时,为了避免用常规语言建立人工神经网络负荷预测模型存在的模型结构复杂,训练时间长等缺点,利用Matlab神经网络工具箱建立组合预测模型,该模型不仅编程简单,而且... -
MATLAB神经网络工具箱
2017-11-08 16:19:49MATLAB神经网络工具箱 -
数学建模 MATLAB 神经网络工具箱函数_bp神经网络matlab工具箱
2020-03-17 21:42:00MATLAB 神经网络工具箱函数 说明本文档中所列出的函数适用于 MATLAB5.3 以上版本为了简明起见只列出了函数名 若需要进一步的说明请参阅 MATLAB 的帮助文档 1. 网络创建函数 newp newlind newlin newff newcf newfftd... -
基于MATLAB神经网络工具箱的线性神经网络实现.pdf
2021-07-03 16:08:07基于MATLAB神经网络工具箱的线性神经网络实现.pdf -
Matlab神经网络工具箱应用简介.pdf
2015-02-02 10:40:36Matlab神经网络工具箱应用简介.pdf -
Matlab神经网络工具箱教程-神经网络工具箱图文简介.rar
2019-08-13 12:13:51Matlab神经网络工具箱教程-神经网络工具箱图文简介.rar 神经网络工具箱教程 PPT: -
Matlab神经网络工具箱应用简介以及在Matlab里面的应用-matlab神经网络应用.rar
2019-08-13 00:46:08Matlab神经网络工具箱应用简介以及在Matlab里面的应用-matlab神经网络应用.rar Matlab神经网络工具箱应用简介 附件里为一个pdf文件,全面介绍了神经网络的基础知识。 以及神经网络工具箱的使用!,如下图所示... -
神经网络符号表达式:打印出一个 Matlab 神经网络工具箱对象的符号表达式-matlab开发
2021-06-01 16:59:17这允许您在不依赖神经网络工具箱的情况下使用神经网络模型。 注意我只为前馈网络 (MLP) 实现,并不支持所有可能的传递函数。 但是,这样做应该非常简单。 例子: >> net = newff([-1 1; -1 1],[3 1]); >> ... -
MATLAB神经网络工具箱函数
2018-03-07 21:10:56Matlab工具指导资料,MATLAB软件,神经网络工具箱函数 -
基于Matlab神经网络工具箱进行港口集装箱运量预测.pdf
2021-07-03 11:17:04基于Matlab神经网络工具箱进行港口集装箱运量预测.pdf -
基于MATLAB神经网络工具箱的核电厂故障诊断.pdf
2021-07-10 13:48:38基于MATLAB神经网络工具箱的核电厂故障诊断.pdf -
(2015b版)Matlab神经网络工具箱用户手册
2015-11-20 14:21:00搭配Matlab 2015b版本的神经网络工具箱用户手册,内容详实,是重要的参考资料 -
MATLAB神经网络工具箱的详细使用步奏讲课稿_matlabbp神经网络调用
2020-09-01 22:07:56在输入命令里面输入nntool就可以开始了 点击import之后就出现下面的具体的设置神经网络参数的对话界面 这是输入输出数据的对话窗 首先是训练数据的输入 然后点击new创建一个新的神经网络network1并设置其输入输出... -
丹麦博士MagnusNorgaard设计的Matlab神经网络工具箱-基于MATLAB的神经网络辨识与控制工具箱.pdf
2019-08-13 13:04:55丹麦博士MagnusNorgaard设计的Matlab神经网络工具箱-基于MATLAB的神经网络辨识与控制工具箱.pdf 丹麦博士Magnus Norgaard设计的神经网络工具箱 扩展了 matlab神经网络工具箱的功能,功能更加强大,共享两篇介绍... -
将matlab神经网络工具箱代码导出-romans_stack:这是EUH2020项目RoMaNs的视觉系统(物体检测和识别)
2021-06-12 10:26:22将matlab神经网络工具箱代码导出简要说明 ODR:○bject d etection和r ecognition框架。 相机:相机模拟器和配置。 dcnn :深度卷积神经网络架构和训练脚本。 matlab_toobox :用于数据预处理的 matlab 脚本。 先决... -
利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.docx
2022-05-28 08:25:55利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.docx利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.docx利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.docx利用MATLAB实现遗传算法和MATLAB神经... -
利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.pdf
2022-05-28 08:01:27利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.pdf利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.pdf利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用.pdf利用MATLAB实现遗传算法和MATLAB神经网络... -
MATLAB神经网络工具箱函数.pdf
2022-07-14 00:27:44MATLAB神经网络工具箱函数.pdfMATLAB神经网络工具箱函数.pdfMATLAB神经网络工具箱函数.pdfMATLAB神经网络工具箱函数.pdfMATLAB神经网络工具箱函数.pdfMATLAB神经网络工具箱函数.pdf -
MATLAB神经网络工具箱 BP神经网络函数化表示 BP神经网络梯度\求导函数
2022-05-08 15:39:50MATLAB神经网络工具箱 BP神经网络函数化表示 BP神经网络梯度\求导函数
前言
在学习编写ADP算法程序时,需要用到神经网络以及神经网络的梯度,原本想采用自编神经网络函数,但训练的特别麻烦,还需要写收敛算法,用牛顿方法或最小二乘方法,精度和效果也不好。所以,研究了一下如何利用MATLAB的神经网络工具箱进行训练,并且如何写出训练好的BP神经网络函数,以及如何写出其导数。
一、MATLAB神经网络工具箱的调用——BP神经网络
采用代码的方式创建神经网络。
数据集为x,写成行向量的形式(每个 x i x_i xi数据是列向量,以 [ x 1 , x 2 , . . . , x n ] [x_1,x_2,...,x_n] [x1,x2,...,xn]的形式拼在一起);
结果为u,也要写成行向量的形式。%% 搭建网络 net = newff(x, u, 8, {'tansig', 'purelin'},'trainlm'); % 建立BP神经网络,8个隐藏层节点,激活函数为tansig形式 %% 网络参数 net.trainParam.show = 10; % 每10轮回显示一次结果 net.trainParam.epochs = 5000; % 最大训练次数 net.trainParam.lr = 0.02; % 网络的学习速率 net.trainParam.goal = 1e-5; % 训练网络所要达到的目标误差 net.divideFcn = ''; % 网络误差如果连续6次迭代都没变化,则matlab会默认终止训练。为了让程序继续运行,用以下命令取消这条设置 %% 训练 net = train(net, x, u,'useGPU','only'); % 调用GPU加快训练速度
二、BP神经网络函数化表示
1.函数表示
设计的BP神经网络可以表示为如下形式
F N = W 2 tanh ( W 1 X + B 1 ) + B 2 {F_N} = {W_2}\tanh \left( {{W_1}X + {B_1}} \right) + {B_2} FN=W2tanh(W1X+B1)+B2
代码如下所示:
%% 从神经网络工具箱中获取训练好的参数 w1 = net.iw{1,1}; b1 = net.b{1}; w2 = net.lw{2,1}; b2 = net.b{2}; z_n = purelin(w2*tansig(w1*x_n + b1) + b2); % 神经网络拟合函数 记为(a)
可以注意到这里输入和输出分别是x_n和z_n,这是因为在新版的神经网络工具箱中会自动自动对输入和输出的数据进行归一化,x_n和z_n是归一化后的结果。
2.归一化的修正
归一化采用的是mapminmax()函数。
输入是x,归一化后的输出是y,归一化的区间是 [ − 1 , 1 ] [-1,1] [−1,1],归一化的公式如下所示:
y = ( y m a x − y m i n ) ∗ ( x − x m i n ) / ( x m a x − x m i n ) + y m i n ; y = (y_{max}-y_{min})*(x-x_{min})/(x_{max}-x_{min}) + y_{min}; y=(ymax−ymin)∗(x−xmin)/(xmax−xmin)+ymin;
在mapminmax()提供的参数中可以表示为:
x n = ( x − x o f f s e t ) ∗ k − 1 ; x_n = (x -x_{offset})*k - 1; xn=(x−xoffset)∗k−1;
所以将上面代码的最后一句(a)替换为进行归一化后的代码,如下所示:%% 这是只是求神经网络工具箱归一化的参数,并不作为训练的输入 [x_, inputStr1] = mapminmax(x); % 输入 [u_, outputStr1] = mapminmax(u); % 结果 %% 取出归一化的参数 k1 = inputStr1.gain; k2 = outputStr1.gain; off1 = inputStr1.xoffset; off2 = outputStr1.xoffset; %% 函数表达 x_n = (x - off1).*k1 - 1; z_n = purelin(w2*tansig(w1*x_n + b1) + b2); % 神经网络拟合函数 z = (z_n + 1)./k2 + off2;
这就实现了BP神经网络的函数化表示。
F N ′ = W 2 { W 1 [ 1 − tanh ( W 1 X + B 1 ) ⋅ × tanh ( W 1 X + B 1 ) ] } \begin{array}{rl} F_{N}^{\prime}=W_{2}\left\{W_{1}\left[1-\tanh \left(W_{1} X+B_{1}\right) \cdot \times \tanh \left(W_{1} X+B_{1}\right)\right]\right\} \end{array} FN′=W2{W1[1−tanh(W1X+B1)⋅×tanh(W1X+B1)]}三、BP神经网络梯度\求导函数
BP神经网络的梯度表达为:
F N ′ = W 2 { W 1 [ 1 − tanh ( W 1 X + B 1 ) ⋅ × tanh ( W 1 X + B 1 ) ] } \begin{array}{rl} F_{N}^{\prime}=W_{2}\left\{W_{1}\left[1-\tanh \left(W_{1} X+B_{1}\right) \cdot \times \tanh \left(W_{1} X+B_{1}\right)\right]\right\} \end{array} FN′=W2{W1[1−tanh(W1X+B1)⋅×tanh(W1X+B1)]}
但这里也要注意归一化,故修正为:
F N ′ = W 2 { ( W 1 ⋅ × K 1 T ) [ 1 − tanh ( W 1 X + B 1 ) ⋅ × tanh ( W 1 X + B 1 ) ] } \begin{array}{rl} F_{N}^{\prime}=W_{2}\left\{(W_{1}\cdot \times K_1^T)\left[1-\tanh \left(W_{1} X+B_{1}\right) \cdot \times \tanh \left(W_{1} X+B_{1}\right)\right]\right\} \end{array} FN′=W2{(W1⋅×K1T)[1−tanh(W1X+B1)⋅×tanh(W1X+B1)]}导数的拟合效果确实差了一些,在数据足够多的时候,还是比较接近的。
全部代码放在了文件全部的BP网络函数化的程序中。
总结
尝试了BP神经网络函数化表示,并推导出BP神经网络梯度\求导函数。
-
matlab神经网络工具箱简介
2021-10-08 18:02:26MATLAB神经网络工具箱介绍 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验...matlab神经网络工具箱简介
一、神经元模型
Neuron Model:多输入,单输出,带偏置。
输入:R维列向量
权值:R维行向量
求和单元:
传递函数:
输出:二、常用传递函数
阈值函数,在matlab中调用:hardlim
三、创建一个感知器
根据给定的样本输入向量P和目标向量T, 以及需分类的向量组Q, 创建一个感知器, 对其进行分类。
代码如下(示例):P=[-0.5 -0.6 0.7;0.8 0 0.1]; %已知样本输入向量 T=[1 1 0]; %已知样本目标向量 net=newp([-1 1;-1 1],1); %创建感知器 handle=plotpc(net.iw{1},net.b{1}); %返回划线的句柄 net.trainParam.epochs=10; %设置训练最大次数 net=train(net,P,T); %训练网络 Q=[0.6 0.9 -0.1;-0.1 -0.5 0.5]; %已知待分类向量 Y=sim(net,Q); %二元分类仿真结果 figure; %新建图形窗口 plotpv(Q,Y); %画输入向量 handle=plotpc(net.iw{1},net.b{1},handle) %画分类线
四、BP网络训练实例
采用动量梯度下降算法训练BP网络。训练样本。
代码如下(示例):%定义训练样本 p=[-1 -1 3 1;-1 1 5 -3]; t=[-1 -1 1 1]; %创建一个新的BP网络 net=newff(minmax(p),[3 1],{'tansig','purelin'},'traingdm'); %设置训练参数 net.trainParam.epochs=1000; net.trainParam.goal=0.001; net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.mc=0.9; %动量因子,缺省为0.9 net=train(net,p,t); % 训练网络 A=sim(net,p) %网络仿真
-
数学建模培训教程 MATLAB神经网络工具箱中的神经网络模型 共53页.ppt
2022-01-22 11:30:11MATLAB 7对应的神经网络工具箱的版本为Version 4.0.3,它以神经网络理论为基础,利用MATLAB脚本语言构造出典型神经网络的激活函数,如线性、竞争性和饱和线性等激活函数,使设计者对所选定网络输出的计算变成对激活函数... -
MATLAB神经网络工具箱中的神经网络模型-MATLAB神经网络工具箱中的神经网络模型.ppt
2019-08-13 10:34:39MATLAB神经网络工具箱中的神经网络模型-MATLAB神经网络工具箱中的神经网络模型.ppt MATLAB神经网络工具箱中的神经网络模型 -
MATLAB神经网络工具箱函数.zip_caseem5_matlab 工具书_matlab工具箱_神经网络函数
2022-07-15 21:12:05matlab 神经网络工具箱函数 常见工具箱函数