Modelos, Control y Sistema de Visión

Central     Modelos     Control     Visión     Aplicaciones     Mapa del sitio     Publicaciones     Sobre el autor      

Modelo basado en una red multicapas utilizando nntool

 

Se reproduce como obtener el modelo que predice la contaminación ambiental  (Benchmark [3]) utilizando la interfaz gráfica de usuario nntool de Matlab.

 

Paso 1: Ordenar la matriz de entrada-salida

 %Se cargan los datos al espacio de trabajo:

>> load -ascii no2.txt

%No se utilizan los primeros 10 datos

>> no2=no2(11:500,:);

%Se definen los datos de entrada:

>> x=no2(:,2:8)';

% Las variables de entrada se dividen en 1/2 para entrenar, 1/4 para validar y 1/4 para comprobar

>> x_entrenar=x(:,1:245);
>> x_validar=x(:,246:369);

>> x_prueba=x(:,370:490);

%Se define la matriz de salida:

>> y=no2(:,1)';

%La cual se normaliza

>>[y_norm,parm_norm] = mapminmax(y); 

% La variable de salida se divide en 1/2 para entrenar, 1/4 para validar y 1/4 para comprobar

>> y_norm_ent=y_norm(:,1:245);

>> y_norm_val=y_norm(:,246:369);

>> y_norm_pru=y_norm(:,370:490);

 

Paso 2: Importar los datos de entrada-salida al nntool

% Se ejecuta la GUI nntool 

>> nntool

% Se definen las variables de entrada y salida en la ventana que se presenta después de presionar

% Import. Nótese que los datos de salida (target) deben ser normalizados.

 

Ventana principal de nntool

    

Ventana para leer datos del espacio de trabajo

 

 

 

 

Paso 3: Definir la red

% En la ventana principal de nntool se presiona el botón New... , donde se definen los parámetros de la % red: Capa 1: 25 neuronas, Capa 2: 17 neuronas, Capa 3: 8 neuronas y Capa 4: 1 neurona (definido % por el % sistema) Se definen las funciones de activación que se utilizarán en cada capa: tansig

% Se aplicará el entrenamiento basado en Levenberg-Marquard , con factor de aprendizaje variable

% Después de definir los parámetros de la red, se presiona Create

 
 

 

Paso 4: Comprobar que los datos se presentarán de forma adecuada a la red

% Para comprobar la red se presiona Open... después de seleccionar la red creada en la ventana

% principal de nntool. Aparece una nueva ventana donde se presenta un diagrama que describe la

% red. En la nueva ventana se oprime el botón Reinitialize Weights, en la que se presenta una matriz

% donde las filas son equivalentes al número de variables de entrada y sus dos columnas representan % los intervalos de cada variable. Si se oprime el botón View/Edit Weights, se muestran las condiciones % iniciales de los parámetros que serán adaptados. 

 

 

 

Paso 5: Entrenar la red

% Para entrenar la red se selecciona Open... y después Train, definiendo los parámetros de                % entrenamiento. Posteriormente se oprime el botón Train Network, tal y como muestran las siguientes % figuras

    

  
  

 

Paso 6: Simular la red

% En la ventana de entrenamiento de la red se presiona Simulate, definiendo las variables de entrada  % que se deseen aplicar a la entrada de la red que se ha entrenado previamente. Posteriormente se   % exporta la salida de la simulación al espacio de trabajo y se compara con la salida real del sistema

>> plot(simula_net)
>> hold on
>> plot(y_norm_ent,'g')

 

  

 

Paso 7: Exportar la red al espacio de trabajo

% Se exporta la red (net) al espacio de trabajo, conteniendo la información del valor de los pesos

 

Paso 8: Generar un bloque de simulink con la red neuronal multicapas (opcional)

% Se puede crear un bloque de simulink con la red, utilizando la función: gensim

 

Referencia:

 

Mathworks: Neural Networks Toolbox GUI. 2007.