Modelado matemático de Matlab: aplicación clásica de redes neuronales: aproximación de funciones no lineales

Tabla de contenido

Código: primero dibuje la función que se va a aproximar y luego use la red neuronal no entrenada para aproximarla

Siguiente paso: aumentar el valor de n (la cantidad de capas ocultas en la red neuronal)

 Cambie el parámetro de frecuencia k de la siguiente manera:


Objetivo: diseñar una red de BP para aproximar funciones no lineales

Código: primero dibuje la función que se va a aproximar y luego use la red neuronal no entrenada para aproximarla

clear all
clc
k=2;
p=[-1:0.05:9];
t=1+sin(k*pi/2*p);
%%%%开始建立一个网络结构%%%%
n=5;
net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,p);%用sim 观察网络的输出
figure;
plot(p,t,'-',p,y1,':');
title('没有训练的输出结果');
xlabel('时间');
ylabel('仿真输出--原函数--');

Observe el efecto, el efecto de aproximación no es bueno.

Aproximación de funciones no lineales con redes neuronales entrenadas

clear all
clc
k=2;
p=[-1:0.05:9];
t=1+sin(k*pi/2*p);
%%%%开始建立一个网络结构%%%%
n=3;
net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,p);%用sim 观察网络的输出
%%%先训练网络,再仿真%%%
net.trainParam.epochs=200;
net.trainParam.goal=0.2;
net=train(net,p,t);
y2=sim(net,p);
figure;
plot(p,t,'-',p,y1,':',p,y2,'--');
title('训练的输出结果');
xlabel('时间');
ylabel('仿真输出');

':' no está entrenado, '--' está entrenado

 La aproximación de la red neuronal entrenada es significativamente mejor que la no entrenada.

Siguiente paso: aumentar el valor de n (la cantidad de capas ocultas en la red neuronal)

Cuando n=5:

clear all
clc
k=2;
p=[-1:0.05:9];
t=1+sin(k*pi/2*p);
%%%%开始建立一个网络结构%%%%
n=5;
net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,p);%用sim 观察网络的输出
%%%先训练网络,再仿真%%%
net.trainParam.epochs=200;
net.trainParam.goal=0.2;
net=train(net,p,t);
y2=sim(net,p);
figure;
plot(p,t,'-',p,y1,':',p,y2,'--');
title('训练的输出结果');
xlabel('时间');
ylabel('仿真输出');

 El efecto de aproximación es mejor que n=3

n=20

clear all
clc
k=2;
p=[-1:0.05:9];
t=1+sin(k*pi/2*p);
%%%%开始建立一个网络结构%%%%
n=20;
net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,p);%用sim 观察网络的输出
%%%先训练网络,再仿真%%%
net.trainParam.epochs=200;
net.trainParam.goal=0.2;
net=train(net,p,t);
y2=sim(net,p);
figure;
plot(p,t,'-',p,y1,':',p,y2,'--');
title('训练的输出结果');
xlabel('时间');
ylabel('仿真输出');

 Muestra que aumentar n (el número de capas ocultas) puede aumentar el valor preciso de la predicción de la red neuronal BP.

 Cambie el parámetro de frecuencia k de la siguiente manera:

k=2,n=3 y k=2,n=10

k=3,n=3 y k=3,n=10

k=6,n=3 yk=6,n=10

 Muestra que existe en diferentes frecuencias, aumenta la capa oculta y aumenta el efecto de aproximación de la red neuronal BP.

Supongo que te gusta

Origin blog.csdn.net/qq_54508596/article/details/127139482
Recomendado
Clasificación