就想回个帖 发表于 2011-4-14 15:08

请问关于用梯度下降法训练BP网的MATLAB程序

我刚接触MATLAB不太久,现在想编写一个单隐层,输入节点,隐层节点,输出节点分别为5,11,1的梯度下降法训练BP网络的程序,想用3组数据训练,输入分别为{16.5 174 23000 45.23 32}、{21.3 178 20000 39.33 31.6}、{21.6 170 25000 49.16 33.1}对应输出为{80}、{40}、{55}我想应用的程序如下:
close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 pause

%
敲任意键开始 clc %
定义训练样本 % P 为输入矢量 P=[];% T 为目标矢量 T=[]; pause; clc %
创建一个新的前向神经网络 net=newff(minmax(P),,{'tansig','purelin'},'traingdm')%
当前输入层权值和阈值 inputWeights=net.IW{} inputbias=net.b{1} %
当前网络层权值和阈值 layerWeights=net.LW{} layerbias=net.b{2} pause clc %
设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-3; pause clc %
调用 TRAINGDM 算法训练 BP 网络 =train(net,P,T); pause clc %
对 BP 网络进行仿真 A = sim(net,P) %
计算仿真误差 E = T - A MSE=mse(E) pause clc echo off

但是我将我的矩阵维数不对,我对MATLAB不是很熟,这个程序也是从书上看到的,对于好多函数的作用及用法都不清楚,希望大家不吝赐教,如果能实时指导我给我点解答就更好了,我的QQ 521521490.新人刚来,如果有什么违规先说声抱歉。

ChaChing 发表于 2011-4-15 00:05

回复 1 # 就想回个帖 的帖子

1.函数的作用及用法不清楚, 就看help并练习其中例子
2.给齐报错讯息, 方便别人愿意出手
页: [1]
查看完整版本: 请问关于用梯度下降法训练BP网的MATLAB程序