Red neuronal construccion

Solo disponible en BuenasTareas
  • Páginas : 10 (2266 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de marzo de 2012
Leer documento completo
Vista previa del texto
CREACION DE UNA RED NEURONAL

Modelo para permitir predecir la contaminación ambiental


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 define la matriz de entrada:

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

omar sanchez

%Se define la matriz de salida:

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

%La cual se normaliza, #### Esto puede que no sea necesario ####

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



Paso 2: Crear la red multicapa

%El segundo paso para crear una red multicapa que se adapte usando la retropropagación del error es %definiendo las características de la red, para lo cual se utiliza la función "newff". Se definen a

%continuación los elementos que seránargumentos de esta función:



%Valores mínimos y máximos de las variables de entrada:

>> interv=minmax(x)
interv =
4.1271 8.3485
-18.600 21.1000
0.3000 9.9000
-5.4000 4.3000
2.0000 359.0000
1.0000 24.0000
32.0000 608.0000

% Número de neuronas para cada capa:

% Se utilizarán cuatro capas:

% Capa 1: 25 neuronas, Capa 2: 17 neuronas, Capa 3: 8 neuronas y Capa 4:1 neurona(definido por el % sistema)

>>num_capas=[25 17 8 1];

% Se definen las funciones de activación que se utilizarán en cada capa

>>funcact={'tansig' 'tansig' 'tansig' 'tansig'};

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

>> net=newff(interv, num_capas, funcact, 'trainlm', 'learngdm', 'mse');%######################################################

% Si se utiliza la nueva versión de la función newff no es necesario definir los intervalos de las variables % ni el número de neuronas de la capa de salida:

>>num_capas=[25 17 8];

>>net=newff(x,y, num_capas, funcact, 'trainlm', 'learngdm', 'mse');

%######################################################



% Se verifican los parámetros deentrenamiento que tiene definida la red:

>> net.trainParam
ans =
epochs: 100 % Número de épocas
goal: 0 % Objetivo de la función de validación
max_fail: 5
mem_reduc: 1
min_grad: 1.0000e-010
mu: 1.0000e-003
mu_dec: 0.1000
mu_inc: 10
mu_max: 1.0000e+010
show: 25
time: Inf



% Se alteran los parámetros que se consideren (ver 'trainlm')

>>net.trainParam.epochs= 300;



% Se entrena la rednet

>> train(net,x,y_norm);



% Se aplica la entrada a la red:

>> ynet_norm=sim(net,x)';



% Se desnormaliza la salida de la red: #### Esto puede que no sea necesario####

>> ynet = mapminmax('reverse',ynet_norm,parm_norm);



% Se comparan la salida real y la estimada por la red:

>> plot(y)
>> hold on
>> plot(ynet,'g');% Se verifican los parámetros de la red:

%Ganancias (dimensión de matriz y valores):

>> size(net.b{1}) %Capa 1
ans = 25 1

>> net.b{1}
ans =
-3.2854
-7.5365
-3.1804
-5.9047
-5.6352
-4.5587
-4.4138
4.3410
2.8817
0.5614
0.5172
2.3010
-1.1179
-1.8063
-3.7357
-2.5344
0.8172
-4.4757
0.7029
-1.9958
0.4948
1.0523
-1.3205
-0.6093
-0.5755



>> size(net.b{2})%Capa 2
ans = 17 1

>> net.b{2}
ans =
-1.4751
-1.3305
1.3949
1.3558
1.1793
0.4787
0.4028
-0.2043
0.0140
-0.2211
-0.2812
-0.2948
-0.6002
-0.9626
-1.2465
1.2596
1.5345



>> size(net.b{3}) %Capa 3
ans = 8 1

>> net.b{3}
ans =
-1.7740
-0.9910
0.4408
0.0676
-0.1429
-0.6571
-1.2616
1.3620



>> size(net.b{4})
ans = 1 1

>> net.b{4}
ans = 0.3961 %Capa 4%Parámetros de las capas (dimensión de matriz y valores):

>> size(net.IW{1}) %Capa 1 (entrada)
ans = 25 7

>> net.IW{1}
ans =
0.2077 0.0428 -0.4742 0.5357 -0.0022 0.1016 0.0021
0.1814 -0.1233 0.7773 -0.5884 -0.0179 0.2984 0.0015
0.1239 0.0828 0.4311 -0.2365 0.0699 -0.2357 -0.0149
0.0190 0.0404 0.3075 -0.3696 0.0205 0.0827 0.0080
0.9274 -0.0554 -0.0350 0.0600 -0.0022...
tracking img