You are on page 1of 8

Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas.

Informe N°2
Redes Neuronales Prealimentadas
Aplicación en Identificación de Sistemas

Medina, M., Mellado, C. y Ponce, W.


Martes 3 de Octubre de 2017
Ingeniería Neuronal, Departamento de Ingeniería Eléctrica, Universidad de Santiago de Chile

Abstract – The validation of two neuronals networks is presented. To perform this procedure we use the
Matlab program, specifically the window command with the toolbox "nntool" and “ident”; once the two
networks neuronals was trained, the graph of evolution of the error was determined as a study, in addition
to parameters such as bias and weights. For the validation of the result we use validation indices such as
RMS, AI and RSD.

I. Introducción

Las redes neuronales son un modelo artificial y simplificado del cerebro humano, inspirado en unidad básica del
sistema nervioso, la neurona, la cual es el ejemplo más perfecto que disponemos para un sistema que es capaz de
adquirir conocimientos a través de la experiencia. Es posible realizar tareas de reconocimiento de formas,
procesamiento de voz e imágenes. Para esto es necesario entrenar la red neuronal.

En esta experiencia se utiliza el toolbox “ident” y “nntool” ofrecido por Matlab, con el primero se obtienen los
datos de entrada y target, para luego utilizarlos en el segundo toolbox y proceder a la realización de 2 redes
neuronales las cuales serán comparadas mediante sus índices de validación.

II. Objetivos

2.1 General

 Generar a partir de datos de entrada/salida, un modelo de caja negra para un secador.

2.2 Específicos

 Entrenar una neurona por algoritmo del gradiente y uno de segundo orden.
 Presentar gráficamente la evolución del error para cada algoritmo.
 Probar las RNA, graficando y comparando con la salida del secador.
 Validar las RNA y calcular los indicadores de error: AI, RMS y RSD.

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 2

III. Desarrollo

3.1 Procesamiento de data: Separación de los datos de entrenamiento, prueba y validación

A continuación, se presenta el script en Matlab para realizar la separación de datos:

ident; %comando para abrir la GUI de identificación de sistemas


y2t_1(1)= y2(1);
y2t_1(2:1000) = y2(1:999);
X=[u2';y2t_1];
T= y2';
X_e = X(:,1:600); %datos de entrada para entrenamiento
T_e= T(1:600); %target para entrenamiento
X_p= X(:,601:850); %datos de entrada para prueba
T_p= T(:,601:850); %target para prueba
X_v= X(:,851:1000); %datos de entrada para validación
T_v= T(:,851:1000); %target para validación
nntool; %comando para abrir el toolbox de redes neuronales

3.2 Creación de la red: Especificaciones

A partir del toolbox de redes neuronales de MATLAB, al que se accede mediante el comando “nntool”, se importan los datos
de entrada y se crean dos redes, una para el algoritmo de aprendizaje del gradiente descendiente (ver figura 1.a) y otra para el
algoritmo de segundo orden de Quasi-Newton (ver figura 1.b)

a) Neurona Gradiente b) Neurona Quasi Newton

Figura 1. Diseño de redes neuronales.

Cuadro Resumen para las RNA.

Especificaciones neurona_gradiente neurona_quasi_newton


N° de Entradas 2 2
N° de Salidas 1 1
iw{1,1} = iw{1,1} =
[2.9961 -3.2594; 2.8911 3.3528; -2.7988 [4.2436 -1.2616; -4.292 -1.0858; -2.8479 3.3897;
3.4302; 4.4244 -0.15653; 1.7857 4.0511; - -3.7112 2.414; -3.4955 -2.7169; 4.425 -0.14003;
3.3074 -2.943; -4.1744 -1.4745; 0.4961 4.264 -1.1909; -3.4571 2.7656; 4.0144 1.8668; -
4.3993; 3.7311 2.383; 3.1487 3.1122] 3.884 2.1248]
Pesos
iw{1,2} = iw{1,2} =
[0.23629 -0.70442 0.5297 0.65846 0.27118 [-0.37861 0.30377 0.26218 -0.57033 -0.64406 -
0.39105 0.36888 -0.16351 0.23589 -0.49888] 0.0027655 0.77717 -0.26982 0.14414 -0.46688]

b{1} = b{1} =
[-4.4272; -3.4434; 2.4595; -1.4757; -0.49191; [-4.4272; 3.4434; 2.4595; 1.4757; 0.49191;
Bias -0.49191; -1.4757; 2.4595; 3.4434; 4.4272] 0.49191; 1.4757; -2.4595; 3.4434; -4.4272]

b{2} = [0] b{2} = [0]

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 3

3.3 Entrenamiento de la red

Se procede a entrenar la neurona, proceso que realiza 1000 iteraciones para la neurona que utiliza el algoritmo del gradiente
(ver figura 2.a), y 27 para aquella que utiliza el algoritmo de Quasi-Newton (ver figura 2.b). Además, se muestran los
performances para cada proceso.

a) Entrenamiento de la neurona_gradiente b) Performance de la neurona_gradiente

Figura 2. Entrenamiento y performance para la neurona con algoritmo de aprendizaje del gradiente descendente.

a) Entrenamiento de la neurona_quasi_newton b) Performance de la neurona_quasi_newton

Figura 3. Entrenamiento y performance para la neurona con algoritmo de aprendizaje del Quasi-Newton.

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 4

Cuadro Resumen: Parámetros luego del entrenamiento.

Parámetros neurona_gradiente neurona_quasi_newton


iw{1,1} = iw{1,1} =
[3.0112 -3.2648; 2.9837 3.3672; -3.056 3.3801; [4.4377 -1.1992; -4.5429 -0.94336; -2.9471 3.2821; -
4.424 -0.15362; 1.8533 4.0068; 3.7785 2.3413; -3.2966 -2.906; 4.4248
-3.3289 -2.9191; -4.1774 -1.4712; 0.45776 -0.14024; 4.2918 -1.1656; -4.0579 2.5949; 4.2288
4.3928; 3.6524 2.3787; 3.1205 3.0784] 1.6317; -3.8214 1.8326]
Pesos
iw{1,2} = iw{1,2} =
[0.36524 -0.22795 0.70447 0.68047 0.4978 [-0.64239 -0.042135 0.13564 0.45567 -0.77818 -
0.30458 0.3417 0.44888 0.34728 -0.16119] 0.11746 0.63824 0.81566 0.61127 0.25415]
b{1} = b{1} =
[-4.4122; -3.3511; 2.1848; -1.4762; -0.52035; [-4.2331; 3.1925;2.3494;1.411;0.59991;0.49211;
Bias -0.49409; -1.4728; 2.4966; 3.522; 4.4555] 1.4484; -1.8496; 3.229; -4.4898]

b{2} = [-0.33456] b{2} = [-0.17491]

3.4 Prueba de las RNA.

Script en Matlab para obtener los gráficos.

Una vez exportados los datos de las respuestas de ambas neuronas al workspace, se procede a ejecutar el siguiente script:

m=1:250;

figure; % comandos para obtener el Gráfico N°1


plot(m,T_p,'r',m, neurona_gradiente_outputs_prueba,'g')
title('Respuesta de la Neurona con algoritmo del Gradiente Descendente (curva
verde) versus Salida real del Secador (curva roja)');
xlabel('Tiempo [seg]');
ylabel('Amplitud');

figure; % comandos para obtener el Gráfico N°2


plot(m,T_p,'r',m, neurona_quasi_newton_outputs_prueba,'g')
title('Respuesta de la Neurona con algoritmo de Quasi-Newton (curva verde) versus
Salida real del Secador (curva roja)');
xlabel('Tiempo [seg]');
ylabel('Amplitud');

figure; % comandos para obtener el Gráfico N°3


plot(m,T_p,'r',m,neurona_quasi_newton_outputs_prueba,'g',m,neurona_gradiente_output
s_prueba,'b');
title('Respuesta de las Neuronas con algoritmo de Quasi-Newton (curva verde) y
algoritmo del Gradiente Descendiente (curva azul) versus Salida real del Secador
(curva roja)');
xlabel('Tiempo [seg]');
ylabel('Amplitud');

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 5

Gráfico N°1: Respuesta de la Neurona con algoritmo del Gradiente Descendente versus Salida real del Secador.

Gráfico N°2: Respuesta de la Neurona con algoritmo de Quasi-Newton versus Salida real del Secador.

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 6

Gráfico N°3: Respuesta de las Neuronas con algoritmo de Quasi-Newton y algoritmo del Gradiente descendiente versus
Salida real del Secador.

3.5 Validación de las RNA: Uso de los datos de validación.

Script en Matlab para calcular los indicadores de error en base a los resultados de la simulación con los datos de la validación:

Los resultados de la simulación con los datos de validación son los siguiente:

a) Para la neurona con el algoritmo del gradiente descendente: neurona_gradiente_outputs_validacion.


b) Para la neurona con el algoritmo de Quasi_Newton: neurona_quasi_newton_outputs_validacion

%Índices para la neurona_quasi_newton:

%Ai
abfg=sum((T_v - neurona_quasi_newton_outputs_validacion).^2);
tm = sum(T_v)/size(T_v,2);
bbfg = sum((abs(T_v - tm) + abs(neurona_quasi_newton_outputs_validacion -
tm)).^2);
AI_neurona_quasi_newton = 1-abfg/bbfg

%RMS
cbfg=sum(T_v.^2);
RMS_neurona_quasi_newton = sqrt(abfg/cbfg)

%RSD
RSD_neurona_quasi_newton = sqrt(abfg/size(T_v,2))

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 7

%Índices para la neurona_gradiente:

%Ai
agd = sum((T_v - neurona_gradiente_outputs_validacion).^2);
tm = sum(T_v)/size(T_v,2);
bgd = sum((abs(T_v - tm) + abs(neurona_gradiente_outputs_validacion - tm)).^2);
AI_neurona_gradiente=1-agd/bgd

%RMS
cgd=sum(T_v.^2);
RMS_neurona_gradiente=sqrt(agd/cgd)

%RSD
RSD_neurona_gradiente=sqrt(agd/size(T_v,2))

Resultados: Indices.

A continuación, se muestran los índices obtenidos en el command window de Matlab al ejecutar el script anterior.

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.


Ingeniería Neuronal. Medina M., Mellado C., Ponce W. Informe N°2: Redes Neuronales Prealimentadas. 8

IV. Conclusión

Al observar la performance de las neuronas nos podemos percatar que la red neuronal Quasi-Newton obtiene su
mejor rendimiento en la iteración 15 de 21, esto quiere decir que a partir de las siguientes iteraciones la red se
encontraría sobre-entrenada, en cambio la red neuronal de gradiente encuentra su mejor rendimiento en la iteración
número 1000 y no cuenta con sobre-entrenamiento, además la red neuronal Quasi-newton es más rápida que la de
gradiente.

Gracias a la figura 3, podemos percatarnos de las diferencias entre las salidas de las redes neuronales y el valor real
del proceso, lo cual implica que la red neuronal del gradiente tiene una menor proximidad que la de Quasi-Newton,
esto quiere decir que la red neuronal que posee un mayor rendimiento es la red neuronal Quasi-Newton, esto se
puede comprobar mediante los índices de validación, algunos de estos parámetros utilizados fueron:

El AI (“adquition index”) relaciona la tendencia, al comparar las 2 redes se observa que la de mayor tendencia es
la red neuronal Quasi-Newton.

El RMS (“Root mean square”) mide la dispersión, ósea que tan preciso es el sistema, al ver los valores podemos
decir que la de mayor desempeño según este indicador es la red neuronal Quasi-Newton en comparación a la del
gradiente.

El RSD (“Residual Estándar Deviation”) mide la desviación, en este proceso la red neuronal con menor desviación
es la de Quasi-Newton.

Gracias a estos índices podemos afirmar que la mejor repuesta para este proceso, corresponde a la red neuronal
Quasi-Newton.

Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Santiago de Chile.

You might also like