matlab 求解器 不收敛,Matlab bp神经网络不收敛问题

该博客探讨了使用MATLAB实现BP神经网络的过程,包括数据预处理、网络结构设定、训练参数配置以及训练过程。作者遇到的问题是网络训练无法达到期望的目标精度,只达到了0.06,而目标是0.001。博客讨论了数据是否需要归一化以及网络不收敛对仿真结果的影响。
摘要由CSDN通过智能技术生成

clc;

clear;

close all;

p=[0.8379 0.2299;0.7817 0.2291;0.6746 0.2293;0.8152 0.1928;

0.9209 0.2255;0.9032 0.2224;0.7914 0.2031;0.7278 0.4586;

0.8755 0.4305;0.4797 0.4797;0.893 0.2783;0.9461 0.4346;

0.9294 0.1979;0.7871 0.2291;0.954 0.2069;0.5846 0.1907;

0.8733 0.2094;0.9472 0.2129;0.87 0.2546;0.8355 0.2243;

0.8379 0.2299;0.7817 0.2291;0.6746 0.2293;0.8152 0.1928;

0.9209 0.2255;0.9032 0.2224;0.7914 0.2031;0.7278 0.4586;

0.8755 0.4305;0.4797 0.4797;0.893 0.2783;0.9461 0.4346;

0.9294 0.1979;0.7871 0.2291;0.954 0.2069;0.5846 0.1907;

0.8733 0.2094;0.9472 0.2129;0.87 0.2546;0.8355 0.2243;

0.4137 0.3862;0.6603 0.3699;0.4708 0.3139;0.9384 0.7474;

0.8653 0.5496;0.4492 0.229;0.8342 0.5839;0.4744 0.3717;

0.6736 0.5485;0.3659 0.2403;0.6749 0.2717;0.6828 0.2255;

0.9772 0.5605;0.5663 0.2436;0.9367 0.3643;0.6452 0.2783;

0.9602 0.8461;0.6784 0.7901;0.8497 0.6178;0.8834 0.5779;

0.7137 0.6237;0.9516 0.471;0.6869 0.3881;0.6451 0.2736;

0.4929 0.3718;0.5902 0.3727;0.9688 0.4242;0.7921 0.4435;

0.8748 0.5252;0.9528 0.4612;0.9494 0.347;0.6516 0.5812;

0.877 0.5389;0.4267 0.3725;0.4294 0.2265;0.6541 0.2149;

0.4804 0.3735;0.5885 0.2301;0.2928 0.2668;0.8293 0.3836;

0.1913 0.2141;0.2241 0.2251;0.2188 0.2278;0.2481 0.2155;

0.4511 0.2155;0.2125 0.1714;0.2223 0.2119;0.222 0.2175;

0.2239 0.23;0.2031 0.2061;0.222 0.1966;0.6182 0.3401;

0.2291 0.2282;0.2247 0.1912;0.872 0.5861;0.2287 0.1838;

0.1829 0.205;0.2245 0.2273;0.5112 0.2404;0.2134 0.2123;

0.2115 0.2109;0.5599 0.2218;0.4154 0.194;0.2589 0.2272;

0.6611 0.8512;0.2392 0.1886;0.9458 0.7121;0.9439 0.8355;

0.8524 0.6053;0.8941 0.8584;0.4315 0.2148;0.8738 0.543;

0.878 0.5352;0.8631 0.6247;0.9563 0.3449;0.4801 0.2883;

0.9466 0.2187;0.8652 0.2354;0.9469 0.3774;0.4143 0.2021];

% T 为目标矢量

t1=[1 0 0 0 0 0];

t1=repmat(t1,20,1);

t2=[0 1 0 0 0 0];

t2=repmat(t2,20,1);

t3=[0 0 1 0 0 0];

t3=repmat(t3,20,1);

t4=[0 0 0 1 0 0];

t4=repmat(t4,20,1);

t5=[0 0 0 0 1 0];

t5=repmat(t5,20,1);

t6=[0 0 0 0 0 1];

t6=repmat(t6,20,1);

t=[t1; t2; t3; t4 ;t5 ;t6 ];%  定义训练样本

% P 为输入矢量

P=p'

% T 为目标矢量

T=t'

size(P)

size(T)

% size(P)

% size(T)

%  创建一个新的前向神经网络

net=newff(minmax(P),[20,6],{'tansig','purelin'},'trainlm')%  当前输入层权值和阈值

inputWeights=net.IW{1,1}

inputbias=net.b{1}

%  当前网络层权值和阈值

layerWeights=net.LW{2,1}

layerbias=net.b{2} %  设置训练参数

net.trainParam.show =500;

net.trainParam.lr = 0.05;

net.trainParam.mc = 0.9;

net.trainParam.epochs = 10000;

net.trainParam.goal = 1e-3; %  调用 TRAINGLM 算法训练 BP 网络

[net,tr]=train(net,P,T); %  对 BP 网络进行仿真

A = sim(net,P)

我的目标是0.001他只能达到0.06,怎么办?数据范围都在0-1之间要不要归一化?网络不收敛会不会影响仿真?谢谢,在线等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值