Professional Documents
Culture Documents
REDES NEURONALES
Dairy Gonzlez
Mara Lorbes
Sandra Gonzlez
ACTIVIDAD II
PARTE 1
load datos.mat
1. FUNCIN DESCONOCIDA SIN NORMALIZAR
mesh(x,y,z);
title('Superficie funcin desconocida')
2. FUNCIN DESCONOCIDA NORMALIZADA
%Normalizar intervalo [-1,1],min -690 max 200
minX=-690;
maxX=200;
xnor=-1+2*(x-minX)/(maxX-minX);
minY=-690;
maxY=200;
ynor=-1+2*(y-minY)/(maxY-minY);
figure
mesh(x,y,znor)
title('Superficie funcin desconocida normalizada')
3. GRAFICOS EN EL DOMINIO DE LA FUNCIN
3.a Entrada 1: Entrenamiento y prueba
figure
plot(ENTRADA1_ENT,TARGET1_ENT,'ko')
hold on
plot(ENTRADA1_PRU,TARGET1_PRU,'ro')
title('Entrada 1')
legend('ENTRADA1_ENT','ENTRADA1_PRU','location','best')
3.b Entrada 2: Entrenamiento y prueba
figure
plot(ENTRADA2_ENT,TARGET2_ENT,'ko')
hold on
plot(ENTRADA2_PRU,TARGET2_PRU,'ro')
title('Entrada 2')
legend('ENTRADA2_ENT','ENTRADA2_PRU','location','best')
PARTE 1
NORMALIZACION DE LOS DATOS DE ENTRADA
ni=2; %numero de entradas a la redes
Entrada 1
u_1=ENTRADA1_ENT;
u1=u_1';
umax1=max(u1);%vector que contiene los valos maximos de u
umin1=min(u1);%vector que contiene los valos mainimos de u
up_1=ENTRADA1_PRU;
up1=up_1';
upmax1=max(up1);%vector que contiene los valos maximos de u
upmin1=min(up1);%vector que contiene los valos mainimos de u
Entrada 2
u_2=ENTRADA2_ENT;
u2=u_2';
umax2=max(u2);%vector q contiene los valos maximos de u
umin2=min(u2);%vector q contiene los valos mainimos de u
up_2=ENTRADA2_PRU;
up2=up_2';
upmax2=max(up2);%vector q contiene los valos maximos de u
upmin2=min(up2);%vector q contiene los valos mainimos de u
N=length(u_1);
for k=1:N
for j=1:ni %Indice con respecto a la entrada
Uo1(j,k)=-1+2*(u_1(j,k)-umin1(j))/(umax1(j)-umin1(j));%Entrada1
Uopru1(j,k)=-1+2*(up_1(j,k)-upmin1(j))/(upmax1(j)-upmin1(j));%Prueba1
Uo2(j,k)=-1+2*(u_2(j,k)-umin2(j))/(umax2(j)-umin2(j));%Entrada2
Uopru2(j,k)=-1+2*(up_2(j,k)-upmin2(j))/(upmax2(j)-upmin2(j));%Prueba2
end
end
nntool-Levenbertg Macquart
Red 1-RNFF
Red_1_20 (nh=20)
Red_1_5 (nh=5)
Red_1_40 (nh=40)
Red 2-RNFF
Red_2_20 (nh=20)
Red_2_5 (nh=5)
Red_2_40 (nh=40)
Algoritmo OS-ELM
%Porcentajes de datos
So=0.10;
N=length(u);
No=round(N*So);
%Normalizacin de los datos de entrada, salida._ % de vali y ent.
for k=1:N
if k<=No
for j=1:ni
Uo(j,k)=-1+2*(u(j,k)-umin(j))/(umax(j)-umin(j));
end
for j=1:no
Yo(j,k)=-1+2*(y(j,k)-ymin(j))/(ymax(j)-ymin(j));
eval(['Yo',num2str(j) '=Yo(j,:);']);
end
else %Vectores para aprendizaje secuencial
for j=1:ni
Ua(j,k)=-1+2*(u(j,k)-umin(j))/(umax(j)-umin(j));
end
for j=1:no
Ya(j,k)=-1+2*(y(j,k)-ymin(j))/(ymax(j)-ymin(j));
eval(['Ya',num2str(j) '=Ya(j,:);']);
end
end
end
for k=1:N %Vectores de validacin
for j=1:ni
Upru(j,k)=-1+2*(up(j,k)-upmin(j))/(upmax(j)-upmin(j));
end
for j=1:no
Ypru(j,k)=-1+2*(yp(j,k)-ypmin(j))/(ypmax(j)-ypmin(j));
eval(['Yp',num2str(j) '=Ypru(j,:);']);
end
end
NORMALIZACION DE LA DATA
Y FRACCIONAMIENTO
Algoritmo OS-ELM
INICIALIZACION
%Parametros
niter=30; %Numeros de iteraciones
cont=5; %contador
nh=5; % numero de unidades en la capa ocultas
lambda=0.95;%valor inicial de lambda
nent=n*no+n*ni; %numero de entradas
act_fun=0; %funcin de activacin de las unidades ocultas
%Inicializacion de las redes
ninit=1;%numero de datos para inicializar
for k=1:no
Y=eval(['Yo',num2str(k)]);
[V,P,W]=initnet_oselm(Uo(:,1:ninit),Yo(:,1:ninit),nh,act_fun);
eval(['V',num2str(k) '=V;']);%pesos entre capa entrada y oculta
eval(['W',num2str(k) '(:,1)=W;']);%pesos entre capa oculta y salida
eval(['P',num2str(k) '=1e0*eye(nh+1,nh+1);']);%matriz inicial de la red
end
function [V,P,W]=initnet_oselm(X,T,nh,act_fun)
%activation function of the hidden units
%hyperbolic tangent: act_fun=0
%rbf: act_fun=1
sizeinput=size(X);
ni=sizeinput(1,1);
chunk=sizeinput(1,2);
stdpar1=sqrt(1);
stdpar2=sqrt(1);
if act_fun==0
V=stdpar1*randn(ni+1,nh);
Xmod=[ones(1,chunk);X];
H=(tanh(V'*Xmod))';
else
C=stdpar1*randn(ni,nh);
D=stdpar2*randn(1,nh);
V=[C;D];
for i=1:chunk
for j=1:nh
H(i,j)=exp(-(norm(X(:,i)-C(:,j))^2)/(2*D(j)^2));
end
end
end
size(H)
H=[ones(chunk,1) H];
P=pinv(H'*H);
W=P*H'*T';
Algoritmo OS-ELM
E=[];
Wa=[];
j=1;
jj=1; %cuenta iteraciones
% Aprendizaje secuencial
while jj<=niter & j<=5
for k=ninit+1:length(Ua)
for kk=1:no
% Entrenamiento
PP=eval(['P',num2str(kk)]);
[PP,W(:,kk),epsilon(kk,k-1),lambda]=trainnet_extls_oselm(Ua(:,k-1),Ya(kk,k1),V,W(:,kk),PP,nh,act_fun,lambda);
eval(['P',num2str(kk) '=PP;']);
Ww1(:,jj)=W(:,kk);
% Validacin
[Yphat,Hphat]=simnet_oselm(Up,V,W,act_fun);
eval(['Yphat',num2str(kk) '=Yphat;']);
end
end
e1=(Yp-Yphat).^2; %Calculo del error cuadrtico medio
e=sum(e1)/N;
E=[E e];
if jj>1
if e>=E(jj-1);
if j==5
E(jj-5:jj);
W=Ww1(:,jj-5);
end
j=j+1;
else
j=1;
end
end
jj=jj+1;
end
W
RNFF Nh=5
V.I:10
V.A.S=90
# de iteraciones
RNFF Nh=20
V.I:10
V.A.S=90
# de iteraciones
RNFF Nh=40
V.I:10
V.A.S=90
# de iteraciones
RNFF Nh=5
V.I:30
V.A.S=70
# de iteraciones
RNFF Nh=20
V.I:30
# de iteraciones
V.A.S=70
RNFF Nh=40
V.I:30
23 # iteracin
V.A.S=70
RNBR Nh=5
V.I:10
V.A.S=90
# de iteraciones
RNBR Nh=20
V.I:10
V.A.S=90
# de iteraciones
RNBR Nh=40
V.I:10
V.A.S=90
# de iteraciones
RNBR Nh=5
V.I:30
V.A.S=70
6 # iteracin
RNBR Nh=20
V.I:30
6 # iteracin
V.A.S=70
RNBR Nh=40
V.I:30
V.A.S=70
# de iteraciones
CONCLUSIONES
GRACIAS