作业帮 > 综合 > 作业

求matlab大神解释一下net = newff(minmax(P_train),[17,3],{'tansig','l

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 11:19:15
求matlab大神解释一下net = newff(minmax(P_train),[17,3],{'tansig','logsig'},'traingdm');
minmax什么意思,另外这些括号里的参数什么意思麻烦解释一下. [17,3]什么意思,还有花括号里的?
Ptrain矩阵的size不同会有何影响?
P_pix=[175.8728234670.3809570960.270238095
149.50752491130.75581480.370238095
155.11044451450.9348177710.46547619
151.5008251950.6270592910.610714286
163.4778272600.367022250.754761905
219.5723116720.3279101970.257142857
176.3567251190.6747687110.351190476
139.76219881851.3236769420.489285714
162.38371911260.7759398580.642857143
175.2430455700.3994452380.742857143
207.9933893980.4711688210.280952381
140.03570971160.8283601390.357142857
139.36462971310.9399802540.48452381
138.18284991250.9045985090.632142857
175.5874268670.3815762960.741666667
169.0473307720.425916220.25952381
142.19089281260.8861327020.371428571
148.9825681280.8591609190.50952381
148.5960.6464646460.60952381
167.002994680.4071783290.742857143]
理论上的输出应是
t=[1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1;1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1;1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1;1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1]
怎么做BP网络用前15组模拟后5组?
minmax(P_train)得到矩阵P_train的最小和最大值(找到每行的最小和最大,有多少行就有多少对最小和最大);
[17,3]意思是在隐层建立17个神经元,输出层建立一个神经元;
'tansig','logsig'},'traingdm'是神经网络的一些算法;
做BP网络的话,大概要用到
newff,建立BP
init 网络初始化
train 网络训练
sim 仿真
记得还要数据归一化啊
再问: 能给上面的数据给个代码么?谢谢啊
再答: P_pix=[ 175.8728234 67 0.380957096 0.270238095 149.5075249 113 0.7558148 0.370238095 155.1104445 145 0.934817771 0.46547619 151.5008251 95 0.627059291 0.610714286 163.4778272 60 0.36702225 0.754761905 219.5723116 72 0.327910197 0.257142857 176.356725 119 0.674768711 0.351190476 139.7621988 185 1.323676942 0.489285714 162.3837191 126 0.775939858 0.642857143 175.2430455 70 0.399445238 0.742857143 207.9933893 98 0.471168821 0.280952381 140.0357097 116 0.828360139 0.357142857 139.3646297 131 0.939980254 0.48452381 138.1828499 125 0.904598509 0.632142857 175.5874268 67 0.381576296 0.741666667]; t=[1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1;1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1;1 0 0;1 1 0; 0 1 0; 0 1 1; 0 0 1]; t_train=t'; P_train=P_pix'; P_min_max=minmax(P_train); for n1=1:15 P_train(1,n1)=(P_train(1,n1)-P_min_max(1,1))/(P_min_max(1,2)-P_min_max(1,1)); P_train(2,n1)=(P_train(2,n1)-P_min_max(2,1))/(P_min_max(2,2)-P_min_max(2,1)); end net = newff(minmax(P_train),[17,3],{'tansig','logsig'},'trainbfg'); net=init(net); net.trainparam.epochs=5000; net.trainparam.show=1000 net.trainparam.goal=1e-7; net=train(net,P_train,t_train); P_pix_n=[169.0473307 72 0.42591622 0.25952381 142.1908928 126 0.886132702 0.371428571 148.982568 128 0.859160919 0.50952381 148.5 96 0.646464646 0.60952381 167.002994 68 0.407178329 0.742857143]; P_pix_n=P_pix_n'; for n1=1:5 P_pix_n(1,n1)=(P_pix_n(1,n1)-P_min_max(1,1))/(P_min_max(1,2)-P_min_max(1,1)); P_pix_n(2,n1)=(P_pix_n(2,n1)-P_min_max(2,1))/(P_min_max(2,2)-P_min_max(2,1)); end sim(net,P_pix_n) 结果是 ans = 1.0000 0.9789 0.0002 0.0000 0.0000 0.0282 1.0000 1.0000 0.9999 0.0000 0.0000 0.0000 0.0056 0.9998 1.0000 要再精确的话,我能想到的就是慢慢试了