1、matlab神经网络工具箱训练出来的函数,怎么输出得到函数代码段
这样:
clear;
%输入数据矩阵
p1=zeros(1,1000);
p2=zeros(1,1000);
%填充数据
for i=1:1000
p1(i)=rand;
p2(i)=rand;
end
%输入层有两个,样本数为1000
p=[p1;p2];
%目标(输出)数据矩阵,待拟合的关系为简单的三角函数
t = cos(pi*p1)+sin(pi*p2);
%对训练集中的输入数据矩阵和目标数据矩阵进行归一化处理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神经网络
net = newff(pn, tn, [200,10]);
%每10轮回显示一次结果
net.trainParam.show = 10;
%最大训练次数
net.trainParam.epochs = 5000;
%网络的学习速率
net.trainParam.lr = 0.05;
%训练网络所要达到的目标误差
net.trainParam.goal = 10^(-8);
%网络误差如果连续6次迭代都没变化,则matlab会默认终止训练。为了让程序继续运行,用以下命令取消这条设置
net.divideFcn = '';
%开始训练网络
net = train(net, pn, tn);
%训练完网络后要求网络的权值w和阈值b
%获取网络权值、阈值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %输入层到隐层1的权值
b1 = net.b{1} ; %输入层到隐层1的阈值
w2 = net.lw{2,1}; %隐层1到隐层2的权值
b2 = net.b{2} ; %隐层1到隐层2的阈值
w3 = net.lw{3,2}; %隐层2到输出层的权值
b3 = net.b{3} ;%隐层2到输出层的阈值
%在默认的训练函数下,拟合公式为,y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
%用公式计算测试数据[x1;x2]的输出,输入要归一化,输出反归一化
in = mapminmax('apply',[x1;x2],inputStr);
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用bp神经网络验证计算结果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);
扩展资料:
注意事项
一、训练函数
1、traingd
Name:Gradient descent backpropagation (梯度下降反向传播算法 )
Description:triangd is a network training function that updates weight and bias values according to gradient descent.
2、traingda
Name:Gradient descent with adaptive learning rate backpropagation(自适应学习率的t梯度下降反向传播算法)
Description:triangd is a network training function that updates weight and bias values according to gradient descent with adaptive learning rate. it will return a trained net (net) and the trianing record (tr).
3、traingdx (newelm函数默认的训练函数)
name:Gradient descent with momentum and adaptive learning rate backpropagation(带动量的梯度下降的自适应学习率的反向传播算法)
Description:triangdx is a network training function that updates weight and bias values according to gradient descent momentum and an adaptive learning rate.it will return a trained net (net) and the trianing record (tr).
4、trainlm
Name:Levenberg-Marquardt backpropagation (L-M反向传播算法)
Description:triangd is a network training function that updates weight and bias values according toLevenberg-Marquardt optimization. it will return a trained net (net) and the trianing record (tr).
注:更多的训练算法请用matlab的help命令查看。
二、学习函数
1、learngd
Name:Gradient descent weight and bias learning function (梯度下降的权值和阈值学习函数)
Description:learngd is the gradient descent weight and bias learning function, it will return the weight change dW and a new learning state.
2、learngdm
Name:Gradient descent with momentum weight and bias learning function (带动量的梯度下降的权值和阈值学习函数)
Description:learngd is the gradient descent with momentum weight and bias learning function, it will return the weight change dW and a new learning state.
注:更多的学习函数用matlab的help命令查看。
三、训练函数与学习函数的区别
函数的输出是权值和阈值的增量,训练函数的输出是训练好的网络和训练记录,在训练过程中训练函数不断调用学习函数修正权值和阈值,通过检测设定的训练步数或性能函数计算出的误差小于设定误差,来结束训练。
或者这么说:训练函数是全局调整权值和阈值,考虑的是整体误差的最小。学习函数是局部调整权值和阈值,考虑的是单个神经元误差的最小。
它的基本思想是学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
反向传播时,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
谷歌人工智能写作项目:小发猫
2、如何使用matlab编写多输入单输出BP神经网络 20
在你的代码基础上说了参考:一个技术宅的学习笔记。
clc;clear;
close all;
p=load('originaldata.txt');%你问题最后说的数据文件名跟这个不同。
p1=p';
t=[1];% 这个输出(Targets)应该和输入数据对应,输入数据有10个,输出应该也是10个
所以改为 t是一个1x10的行向量,每个元素对应10个输入数据的输出。不知道你的训练数据的输出是不是都是1?我试了试假设你的数据的输出都是1,所以t=ones(1,10),可以运行。
3、如何利用matlab进行神经网络预测
matlab 带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子。
核心调用语句如下:
%数据输入
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP网络训练
% %初始化网络结构
net=newff(inputn,outputn,[8 8]);
net.trainParam.epochs=100;
net.trainParam.lr=0.01;
net.trainParam.goal=0.01;
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);
%% 结果分析
4、matlab的遗传算法 如何调用已经训练好的神经网络输出
遗传算法优化的BP神经网络建模借鉴别人的程序做出的仿真,最近才有时间整理。
目标:
对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。由于BP神经网络初始神经元之间的权值和阈值一般随机选择,因此容易陷入局部最小值。本方法使用遗传算法优化初始神经元之间的权值和阈值,并对比使用遗传算法前后的效果。
步骤:
未经遗传算法优化的BP神经网络建模
1、 随机生成2000组两维随机数(x1,x2),并计算对应的输出y=x1^2+x2^2,前1500组数据作为训练数据input_train,后500组数据作为测试数据input_test。并将数据存储在data中待遗传算法中使用相同的数据。
2、 数据预处理:归一化处理。
3、 构建BP神经网络的隐层数,次数,步长,目标。
4、 使用训练数据input_train训练BP神经网络net。
5、 用测试数据input_test测试神经网络,并将预测的数据反归一化处理。
6、 分析预测数据与期望数据之间的误差。
遗传算法优化的BP神经网络建模
1、 读取前面步骤中保存的数据data;
2、 对数据进行归一化处理;
3、 设置隐层数目;
4、 初始化进化次数,种群规模,交叉概率,变异概率
5、 对种群进行实数编码,并将预测数据与期望数据之间的误差作为适应度函数;
6、 循环进行选择、交叉、变异、计算适应度操作,直到达到进化次数,得到最优的初始权值和阈值;
7、 将得到最佳初始权值和阈值来构建BP神经网络;
8、 使用训练数据input_train训练BP神经网络net;
9、 用测试数据input_test测试神经网络,并将预测的数据反归一化处理;
10、 分析预测数据与期望数据之间的误差。
5、matlab神经网络工具箱怎么输出得到函数代码段?
神经网络训练出来的是权值矩阵,我想你是想在matlab外用训练好的神经网络。首先你要在外部实现神经网络算法,之后你把神经网络训练出来的权值矩阵读取到你在外部实现的神经网络算法中,然后你就可以使用这个神经网络了。
MATLAB
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
6、MATLAB中利用RBF神经网络得到的输出结果中neurons = 0,2,3,4……是表示什么意思?
MATLAB中利用RBF神经网络得到的输出结果中neurons = 0,2,3,4……的意思是神经元的阶数neurons=0,表示神经元为0阶数,均方误差MSE=0.22...
neurons=2,表示神经元为2阶数,均方误差MSE=0.10...
neurons=3,表示神经元为3阶数,均方误差MSE=0.04...
。。。
当神经元的阶数越高,其均方误差MSE也就越小。
7、matlab 实现神经网络 5
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
8、matlab BP神经网络多输出怎么实现。比如输出层有4个节点,输出向量和训练函数该怎么写?
输出的数量取决于你的target怎么设置,比如你的输入是一个5行n列的数据,输出是一个4行n列的数据,你用这个数据初始化并且训练神经网络,得到的当然是5个输入值4个输出值的神经网络。
函数怎么写的话,去看matlab 帮助,搜索newff,你就能看到用法了。