با سلام . می خواهم با استفاده از matlab یک شبکه عصبی را به صورت آنلاین آموزش دهم و مشکل overfitting را در آن بررسی کنم. برنامه به این صورت است که ابتدا تابعی تعریف شده به نام z(m)و می خواهیم ای تابع در بازه ی [0.20] شبکه overfitt شود . یعنی 1000نقطه در این بازه و 100 نقطه در بازه [20,100] آموزش ببیند . لطفآ در قسمت adapt کردن شبکه به من کمک کنین . سورس برنامه به صورت زیر است.
لینک دانلود برنامه ==> http://www.justupit.com/get.php?id=7aa6a870e4984d1d55db648670119cec
m=[0:1:100];
j=[0:1:100];
x1=[0:1:25];
y1=[0:1:25];
x2=[25:1:100];
y2=[25:1:100];
x=[x1,x2];
y=[y1,y2];
in=[];
m=0;
z(1)=1000;
for i=2:length(x)
for j=1: length(y)
m=m+1;
in=[in;x(i) y(j)];
%z(m)=10*sec(y(j))+700*exp(-x(i)^2)+y(j)^2+10*(x(i)+5)^2-y(j)^2;
if y(j)<=20
z(m)=10*sec(y(j))+700*exp(-x(i)^2)+y(j)^2+10*(x(i)+5)^2-y(j)^2;
% z(m)=z(m)/4;
% if y(j)>10
% z(m)=z(m)+50*cos(x(i))^3+1000*(log(x(i)+y(j))+y(j) ^3)-(90000*(x(i)^2+y(j)^2));
%elseif y(j)>20
% z(m)=1/z(m)*cos(x(i));
elseif y(j)>20
z(m)=sqrt(x(i)+y(i))*10000;
end
z2(i,j)=z(m);
end
end
in=in';
%nn=newff([0 100; 0 100],[10 1],{'tansig'},'traingd';
nn=newff([0 100; 0 100],[10 1]);
nn=init(nn);
for i=1:100
nn=adapt(nn,in(:,i),z(i));
% nn=adapt(nn,in(:,j),z(j));
%nn=train(nn,in(:,i),z(i));
end
outnn=sim(nn,in);
%e=outnn-z;
%se=sum(abs(e));
figure(1);
لینک دانلود برنامه ==> http://www.justupit.com/get.php?id=7aa6a870e4984d1d55db648670119cec
m=[0:1:100];
j=[0:1:100];
x1=[0:1:25];
y1=[0:1:25];
x2=[25:1:100];
y2=[25:1:100];
x=[x1,x2];
y=[y1,y2];
in=[];
m=0;
z(1)=1000;
for i=2:length(x)
for j=1: length(y)
m=m+1;
in=[in;x(i) y(j)];
%z(m)=10*sec(y(j))+700*exp(-x(i)^2)+y(j)^2+10*(x(i)+5)^2-y(j)^2;
if y(j)<=20
z(m)=10*sec(y(j))+700*exp(-x(i)^2)+y(j)^2+10*(x(i)+5)^2-y(j)^2;
% z(m)=z(m)/4;
% if y(j)>10
% z(m)=z(m)+50*cos(x(i))^3+1000*(log(x(i)+y(j))+y(j) ^3)-(90000*(x(i)^2+y(j)^2));
%elseif y(j)>20
% z(m)=1/z(m)*cos(x(i));
elseif y(j)>20
z(m)=sqrt(x(i)+y(i))*10000;
end
z2(i,j)=z(m);
end
end
in=in';
%nn=newff([0 100; 0 100],[10 1],{'tansig'},'traingd';
nn=newff([0 100; 0 100],[10 1]);
nn=init(nn);
for i=1:100
nn=adapt(nn,in(:,i),z(i));
% nn=adapt(nn,in(:,j),z(j));
%nn=train(nn,in(:,i),z(i));
end
outnn=sim(nn,in);
%e=outnn-z;
%se=sum(abs(e));
figure(1);