Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
CAPTULO 3
INTRODUCCIN A LAS REDES NEURONALES ARTIFICIALES
1. NOCIONES GENERALES SOBRE REDES NEURONALES
1.1 Neurona artificial
Las neuronas biolgicas tienen esencialmente tres componentes: el cuerpo de la clula,
las dendritas que actan como canales de recepcin de seales que vienen de otras
neuronas y el axn es el canal de emisin de seales de una neurona. El punto de unin de
una dentrita de una clula con el axn de otra, se denomina sinapsis. En este punto de
unin, que es entre membranas celulares, se produce intercambios de sustancias qumicas y
por ende reacciones qumicas e impulsos elctricos, es decir todo un proceso complejo de
transferencia de informacin.
Modelo matemtico de una neurona artificial
Un modelo de neurona artificial recoge las caractersticas esenciales sealadas en la
introduccin y se formula mediante el siguiente diagrama:
47
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Esta expresin matemtica trata de representar lo que ocurre en una neurona biolgica. Por
ejemplo una persona que conduce un vehculo, tiene el sentido de la visin en estado de
mayor alerta en comparacin a los del odo o del gusto. La vista recibe informacin relativa
a las caractersticas de la pista, que el cerebro lo procesa y emite una respuesta, que se
traduce en reflejos orientados a los msculos de los brazos para controlar el timn y al de
los pies para el control de la caja de cambios y el freno. En este proceso unos datos son
acrecentados frente a otros que son disminuidos o anulados. Si p [ p1 , p2 ,..., pn ]
representa todos los datos que recibe el conductor, los pesos W [ w1 , w 2 ,......, w n ] ,
representan la intensidad con que son tomados en cuenta cada uno de los ellos. La ganancia
o sesgo b , podra interpretarse como una reaccin de la neurona para incentivar, disminuir
o anular el valor final del producto Wp .
Finalmente, el valor de Wp b es transformado mediante una funcin de transferencia
f (s ) de la neurona, dando lugar a la respuesta final de la misma: q f (Wp b) .
1.2 Modelo matemtico de una capa de neuronas artificiales
Fig.1
Dato
Capa de 5 neuronas
Salida
Una capa de neuronas est formada por m neuronas, dispuestas en paralelo, esto es no hay
comunicacin entre ellas, operan independientemente.
A cada neurona j , de la capa le est asociada una matriz fila W j [ w j ,1 , w j , 2 ,......, w j , n ] que
es la matriz de pesos de dicha neurona. El proceso, dentro de la neurona j , se representa
mediante la suma de los productos de cada seal por su peso, ms un sesgo b j , en otras
palabras por: W j p b j w j ,1 p 1 w j , 2 p 2 ...... w j , n pn b j . Este valor es transformado por
la funcin de transferencia f j (s ) de la misma neurona j , dando lugar a la respuesta final:
q j f j (W j p b j ) . Este proceso se da en cada neurona en forma independiente.
Entonces la matriz de pesos de una capa de m neuronas ser una matriz de orden mxn :
48
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
wm ,1 , wm , 2 ,......, wm , n
b1
b
columna b 2 de los sesgos de cada neurona de la capa.
...
bm
Donde la primera fila de las dos matrices corresponde a la primera neurona, la segunda a la
segunda neurona de la capa y as sucesivamente.
q T ( p) F (Wp b)
1.3 Funciones de transferencia
Existen muchas funciones de transferencia empleadas en el diseo de redes neuronales, las
ms comunes son:
a) Limitador fuerte (Hardlim):
0 si s 0
f ( s)
1 si s 0
49
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
f (s) s
e) Funcin de transferencia lineal saturada (satlin)
0 si s 0
f ( s) s si 0 s 1
1 si 1 s
f ( s) s si 1 s 1
1 si
1 s
f (s)
1
1 e s
50
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
e s es
f ( s) tanh(s ) s
e e s
i) Funcin de transferencia competitiva (compet)
1 neurona con s mximo
f (s)
0 en los demas casos
Capa de 5 neuronas
Capa de 6 neuronas
Dentro de una red neuronal, los elementos de procesamiento se encuentran agrupados por
capas, una capa es una coleccin de neuronas; de acuerdo a la ubicacin de la capa en la
RNA, estas reciben diferentes nombres
Capa de entrada: Es la primera capa de neuronas. Es la que recibe los datos de entrada a
la red.
Capas ocultas: Estas son las capas que siguen a la capa de entrada. Tampoco emiten las
seales finales.
Capa de salida: Es la ltima capa que sigue a las capas anteriores y es la que enva la
respuesta final de la red.
Formulacin matemtica de una red neuronal multicapa
Supongamos que se tiene una RNA de N capas. Entonces:
a) Para la primera capa se tienen una matriz de pesos W 1 [ w1j , k ] de m1 x n , un vector de
ganancias b1 [bk1 ] y una funcin vectorial de funciones de transferencias
F 1 ( S ) [ f11 ( s1 ), f 21 ( s2 ),..., f m1 1 ( sm1 )] . La salida es q1 F 1 (W 1 p b1 )
51
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
1) ,
un
p q1 F 1 (W 1 p b1 ) q 2 F 2 (W 2 q1 b 2 ) q N F N (W N q m ( N 1) b N )
Que es la composicin de N transformaciones o N funciones vectoriales no lineales a
valores vectoriales. En sntesis es la composicin de N transformaciones, que se
concatenan o componen:
T1
T2
TN
n
m1
m2
........
mN
1.5.1 La RNA de aprendizaje supervisado, se caracteriza por que est acompaada de una
matriz de vectores t [t1 , t 2 ,....., t M ], t k m (o sea t es una matriz de m filas por M
columnas) denominada: valor esperado de la red.
Dada una matriz de vectores p [ p1 , p2 ,....., pN ], pk n (de n filas por N columnas),
que son los datos de entrada a la red, se tiene una respuesta de la red:
q [q1 , q2 ,....., qM ], qk m , que es una matriz del mismo orden de t . Como es sabido, la
respuesta de la RNA depende de los pesos y sesgos de todas las neuronas involucradas en
ella. El conjunto de estos pesos y sesgos se puede representar con una variable vectorial: x .
Entonces la respuesta q q(x) depende de esta variable.
52
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
En otros trminos el aprendizaje de la red consiste en minimizar la funcin del error medio
M
cuadrtico: E ( x)
1
2
q ( x) t
k
2
k
k 1
representa los pesos y sesgos de todas las neuronas que conforman la red. Lo que se espera
es que la respuesta de la red est los ms cercana posible al valor esperado t , es decir que
E (x) encuentre un mnimo local. Cuando se ha conseguido esto se dice que la RNA ha
sido entrenada.(Ver la seccin 4 de este captulo)
Las RNA de aprendizaje no supervisado, son las que no requieren del valor esperado t ,
solo de una matriz de vectores p [ p1 , p2 ,....., p N ], pk n . Estas redes tienen una sola
capa, cuyo nmero de neuronas lo elige el usuario. Su funcin es agrupar los vectores en
grupos o clusters, empleando parte de las normas o mtricas descritas en 2.5 del captulo 1.
Adems MATLAB ofrece visualizaciones grficas de los clusters en dos dimensiones, bajo
ciertas formas o estructuras geomtricas, denominadas Topologas. Existen muchas
Topologas que elige el usuario. Esto se explicar en detalle, cuando se aborden las RNA de
Cohonen o Self-Organizing Maps, en el captulo siguiente.
2. REDES NEURONALES BACKPROPAGATION EN EL PROBLEMA DEL
COLESTEROL
Estas RNA son supervisadas. Tambin se denominan RNA de propagacin inversa. Su
estructura o arquitectura es la misma que la de una red general, descrita en la seccin 1. Lo
que se har en esta oportunidad es en primer lugar describir brevemente la sintaxis en
MATLAB de esta clase de RNA y luego desarrollar mediante un ejemplo, las etapas de
ingreso de datos, depuracin y transformacin de la data, creacin de la red neuronal
Backpropagation, su entrenamiento y finalmente la simulacin.
2.1 Sintaxis en MATLAB de la RNA Backpropagation (newff )
Para crear una red de propagacin inversa se tiene la funcin:
net = newff(Rango,[C1 C2...Ck],{TF1 TF2...TFk},BTF,BLF,PF)
53
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
donde:
Rango= matrix de nx2, formado por los mnimo y mximo de cada fila de la matriz de
datos de entrada, que tiene n filas. Si los datos de entrada fuera solo una fila, entonces
Rango ser una matriz de 1x2
Ci=nmero de neuronas de la capa- i. Sucesin de capas [C1 C2...Ck] de la red.
TFi=Funcin de transferencia capa- i (por defecto = 'tansig')
BTF=Funcin de entrenamiento de la red Backpropagation (por defecto = 'traingdx')
BLF=Funcin de aprendizaje peso/sesgo de la red Backpropagation (por defecto =
'learngdm')
PF=Funcin que mide la Performance (por defecto = 'mse'), y retorna una red neuronal
Backpropagation de k capas.
La funcin de transferencia TFi puede ser cualquiera de las funciones de transferencia
diferenciable tales como: tansig, logsig, o purelin.
La funcin de entrenamiento BTF puede ser cualquiera de las funciones de entrenamiento
Backpropagation tales como: trainlm, trainbfg, trainrp, traingd, etc.
2.2 Ejemplo: determinacin de las concentraciones de colesterol en una muestra de
sangre, a partir de las mediciones de su espectro de masas.
Este es un ejemplo de MATLAB modificado en su desarrollo. El problema es el siguiente:
se les tom una muestra de sangre a un total de 264 pacientes para medir el nivel de
colesterol que poseen. Con esta finalidad se practicaron dos tcnicas:
a) Espectro de Masas (EM), que consiste en bombardear una muestra de sangre con iones
(ionizacin) y los componentes de ella responden ante esta excitacin formando un
espectro y las caracterstica del espectro, como su longitud de onda son nicas para cada
componente). Con esta la tcnica se consiguieron las mediciones de las 21 longitudes de
onda del espectro de cada muestra y se guardaron los valores en el archivo p, que es una
matriz de 21 filas por 264 columnas. Cada columna que tiene 21 valores que son las
longitudes de onda de la muestra de cada paciente. Por ejemplo los valores del paciente N5
son:
0.2762
0.2044
0.2022
0.1945
54
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
El objetivo es encontrar una RNA que determine las concentraciones de colesterol a partir
de mediciones de las longitudes de onda del espectro de una muestra de sangre, luego de
haberse entrenado tomando como valor esperado las mediciones de colesterol que se
encuentran en la matriz t.
Previamente se correr el programa completo que trae MATLAB:
>> load choles_all
[pn,ps1] = mapstd(p);
[tn,ts] = mapstd(t);
[ptrans,ps2] = processpca(pn,0.001);
[fil,col] = size(ptrans);
Clas13 = [1:4:col 3:4:col];
Clas4 = 4:4:col;
Clas2 = 2:4:col;
Enp = ptrans(:,Clas13);
VEt = tn(:,Clas13);
val.P = ptrans(:,Clas4);
val.T = tn(:,Clas4);
test.P = ptrans(:,Clas2);
test.T = tn(:,Clas2);
%creacion y entrenamiento de la red
Rango=minmax(ptrans);
net = newff(Rango,[5 3],{'tansig' 'purelin'},'trainlm');
[net,tr]=train(net,Enp,VEt,[],[],val,test);
%Simulacion de la red
an = sim(net,ptrans);
a = mapstd('reverse',an,ts);
for i=1:3
figure(i)
[m(i),b(i),r(i)]=postreg(a(i,:),t(i,:));
end
55
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
a) Normalizacin
Para evitar el ingreso de datos muy grandes o muy pequeos a las RNA, se aplica la
funcin mapstd a las matrices p y t.
Esta funcin transforma los elementos de cada fila de la matriz en otra, empleando la
x mc
funcin H ( x)
, donde mc y dc son respectivamente, la media y la desviacin
dc
estndar de cada fila. El proceso es biunvoco e independiente en cada fila y cada matriz.
De este modo resultan las matrices: pn y tn del mismo orden a las anteriores.
>> [pn,ps1] = mapstd(p);
[tn,ts] = mapstd(t);
b) Depuracin de los datos mediante el Anlisis de Componentes Principales
MATLAB tiene la funcin processpca que realiza el anlisis de componentes principales
de una matriz. Tiene como objetivo depurar de las 21 filas de la matriz pn aquellas que son
redundantes o que menos contribuyen a la variacin en el conjunto de datos, estando por
debajo de una la tolerancia indicada. MATLAB sugiere para este tema la lectura de la
publicacin [3] Aminghafari M., Cheze N., Poggi J-M.
El resultado final se guarda en la matriz ptrans.
>>[ptrans,ps2] = processpca(pn,0.001);
Para ver cmo ha variado el nmero de filas hacemos:
>> S=size(ptrans)
S = 4 264
Es decir la data se ha reducido a una matriz de 4 filas por 264 columnas.
Paso 3. Datos para el entrenamiento, validacin y test de la RNA
a) Como la RNA tiene que entrenarse se debe separar la data en tres grupos de columnas,
en este caso se toma un 50% para el entrenamiento, es decir 132 columnas. Un 25% para la
validacin y un 25% para el test. Que son 66 columnas en cada caso.
MATLAB hace la seleccin de las columnas de la matriz ptrans por medio de las clases
de equivalencia mdulo 4.
>> col=S(2);
Clas13 = [1:4:col 3:4:col];
Clas4 = 4:4:col;
Clas2 = 2:4:col;
b) Con estas clases se hace la eleccin de las columnas de ptrans, para el entrenamiento,
la validacin y el test, tomando las clases Clas13, Clas4, Clas2 respectivamente.
>>Enp = ptrans(:,Clas13);
VEt = tn(:,Clas13);
val.P = ptrans(:,Clas4);
val.T = tn(:,Clas4);
56
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
test.P = ptrans(:,Clas2);
test.T = tn(:,Clas2);
Paso 4. Creacin de la red
Para crear una red Backpropagation con MATLAB, como ya se indic en 2.1, se llama a la
funcin newff:
Como los datos de entrada estn en la matriz ptrans de aqu sale el rango de la red con el
cdigo:
>>Rango=minmax(ptrans);
%matriz de 4x2
El nmero de filas de Rango indica que cada neurona de la primera capa de la red tendr 4
dentritas. Esto indica que la matriz de pesos ser de 5x4.
La eleccin del nmero de capas y el nmero de neuronas por capa es opcional. En este
ejemplo se escogi dos capas, la primera de de 5 neuronas y la segunda de 3 neuronas, que
se define en el corchete [5 3].
Fig.1
Creada la red, automticamente se inicializan los pesos y los sesgos de la primera capa
57
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
0.0966
-0.0529
0.0161
-0.0040
0.0706
PESOS
net.IW{1,1}
0.2310 0.5354
-0.0352 1.2416
-0.2980 1.3740
0.3741 1.4590
-0.0409 -1.2613
GANANCIAS
net.b{1,1}
-1.3455
0.1178
-0.8842
-0.6949
2.2272
-0.8082
3.4229
2.5099
-1.0157
2.8345
Fig. 2
58
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Fig. 3
Fig. 4
Fig. 5
Fig. 6
59
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
0.0354
0.0802
0.1556
0.2460
0.1024
PESOS
net.IW{1,1}
1.1459 0.6622 -0.7023
-0.3626 1.9515 2.2036
0.0198 0.8803 2.8809
-0.1407 0.1206 -0.7850
0.3584 0.4224 2.5040
GANANCIAS
net.b{1,1}
-0.3408
0.4403
-2.1953
0.1198
1.6183
264
>>size(a)
ans = 3 264
Paso 8. Comparacin del resultado entregado por la red y el valor esperado.
El siguiente bucle muestra la regresin lineal entre el valor entregado por la red: a
valor esperado: t. Este proceso se realiza mediante la funcin postreg
for i=1:3
figure(i)
[m(i),b(i),r(i)]=postreg(a(i,:),t(i,:));
end
La salida esta formada por tres grficas, donde las rectas de color rojo son las rectas de
regresin por mnimo cuadrados, con sus respectivos coeficientes de correlacin R.
60
y el
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Fig.7
Fig.8
Fig.9
t(1 , : )
0.0000
4.0000
4.0000
5.0000
5.0000
5.0000
6.0000
6.0000
7.0000
7.0000
8.0000
8.0000
8.0000
8.0000
8.0000
8.0000
8.0000
a(2 , : )
9.9246
55.8425
30.2645
59.4879
53.6206
79.4255
51.5298
-16.4902
45.5488
56.9877
60.5579
61.0181
77.4744
62.9919
64.7395
38.3662
51.6066
61
t(2, : )
0.0000
19.0000
26.0000
34.0000
37.0000
37.0000
37.0000
37.0000
38.0000
42.0000
42.0000
46.0000
50.0000
51.0000
51.0000
52.0000
52.0000
a(3 , : )
2.1507
21.5555
26.2399
23.2823
33.0898
38.7420
20.8228
37.3105
35.9138
38.4204
40.9508
23.8160
34.1571
40.2240
40.3964
40.5577
41.0363
t(3 , : )
0.0000
5.0000
9.0000
16.0000
16.0000
19.0000
20.0000
20.0000
20.0000
21.0000
21.0000
22.0000
22.0000
22.0000
22.0000
22.0000
23.0000
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
12.3065
35.7925
25.1320
32.5381
3.4672
24.6918
7.4171
21.1874
27.4581
3.7101
39.6864
18.5554
40.6395
5.6528
8.0000
9.0000
9.0000
9.0000
9.0000
10.0000
10.0000
10.0000
10.0000
11.0000
11.0000
11.0000
11.0000
12.0000
105.6965
65.7994
73.4458
66.5624
63.4699
76.4361
87.9249
92.7840
62.4610
102.9965
59.7252
69.9674
187.8837
88.8394
52.0000
54.0000
55.0000
55.0000
56.0000
59.0000
60.0000
62.0000
64.0000
67.0000
68.0000
69.0000
69.0000
70.0000
22.5715
38.5958
13.8741
28.3000
45.8599
39.4341
49.5182
41.3628
46.3987
41.3442
37.4088
47.2730
39.7491
35.9333
23.0000
23.0000
23.0000
24.0000
24.0000
24.0000
24.0000
25.0000
25.0000
26.0000
26.0000
26.0000
26.0000
26.0000
despus se grafican las curvas correspondientes a las filas a(1,:) y t(1,:), para
establecer un contraste entre la variacin de una y otra. As sucesivamente con las otras
filas:
Fig. 1
a(1 , : )
t(1 , : )
400.0000
350.0000
300.0000
250.0000
200.0000
150.0000
100.0000
50.0000
0.0000
1
17
25
33
41
49
57
65
73
81
89
97 105 113 121 129 137 145 153 161 169 177 185 193 201 209 217 225 233 241 249 257
-50.0000
62
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Fig. 2
a(2 , : )
t(2, : )
350.0000
300.0000
250.0000
200.0000
150.0000
100.0000
50.0000
0.0000
1
17
25
33
41
49
57
65
73
81
89
97 105 113 121 129 137 145 153 161 169 177 185 193 201 209 217 225 233 241 249 257
-50.0000
Fig. 3
a(3 , : )
t(3 , : )
120.0000
100.0000
80.0000
60.0000
40.0000
20.0000
0.0000
1
17
25
33
41
49
57
65
73
81
89
97 105 113 121 129 137 145 153 161 169 177 185 193 201 209 217 225 233 241 249 257
Se observa que las filas a(3,:)y t(3,:) presentan una mayor distorsin en
comparacin a las dos primeras. Esto corrobora los resultados que establecen la regresin
lineal y los coeficientes de correlacin, en las tres imgenes que entrega MATLAB.
63
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
El problema es crear una RNA Backpropagation que se entrene con los cdigos que
identifica a cada tipo de flor y que sea capaz de diferenciar uno de otro slo por las
dimensiones de sus ptalos y spalos.
Fig.1
Tipo de flor Codigo AnchPeta LongPeta AnchSepa LongSepa
Setosa
1
2
14
33
50
Verginica
3
24
56
31
67
Verginica
3
23
51
31
69
Setosa
1
2
10
36
46
Verginica
3
20
52
30
65
Verginica
3
19
51
27
58
Versicolor
2
13
45
28
57
Versicolor
2
16
47
33
63
Paso 1. Matrices de datos de entrada a la red
Se copian los datos a la ventana de comandos de MATLAB:
>> Q=[ ];
>> C=[ ];
p=Q'; t=C';
64
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Clas13 = [1:4:col
Clas4 = 4:4:col;
Clas2 = 2:4:col;
3:4:col];
%Entrenamiento
%Validacin
%Test
2.7693
2.6662
1.0244
0.4820
Creada la red, automticamente se inicializan los pesos y los sesgos de la primera capa
0.3053
0.4217
-0.3560
0.4181
0.1249
PESOS
net.IW{1,1}
-0.4467 -1.0769
-0.2634 1.5858
0.0512 1.4149
0.5295 -0.0480
0.5021 0.9190
SESGOS
net.b{1,1}
-1.9203
-1.0755
-0.2090
1.1615
2.0493
-2.1643
-0.5066
2.4722
1.8416
2.7022
Fig.2
65
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Fig.3
Fig. 4
Para graficar un nuevo cuadro con las curvas de entrenamiento, de validacin y prueba,
agregando el ttulo, leyenda, ejes, como aparece en el grfico de la Fig. 3, correr el
siguiente programa:
66
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
67
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
CURVAS DE:
4
ERROR CUADRTICO
3.5
ENTRENAMIENTO
VALIDACION
TEST
3
2.5
2
1.5
1
0.5
0
6
8
ITERACIN
10
12
0.5633
1.3847
-2.4299
0.0651
0.0348
PESOS
net.IW{1,1}
-1.1139 -0.8690 -1.2884
0.8302 1.0686 -0.7925
0.1522 0.7608 -0.5706
0.5360 -0.5386 1.8644
0.0688 0.3760 3.7234
GANANCIAS
net.b{1,1}
-2.5319
-0.9296
-2.3835
1.8354
2.7694
150
68
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
3
2.5
2
1.5
1
0.5
50
100
150
50
1.0382
31
67
2.9956
31
69
2.9329
10
36
46
0.9935
20
52
30
65
2.9228
Verginica
19
51
27
58
2.9451
Versicolor
13
45
28
57
2.1152
Versicolor
16
47
33
63
2.0901
Verginica
17
45
25
49
2.7781
Especie
N
1
Setosa
14
33
Verginica
24
56
Verginica
23
51
Setosa
Verginica
6
7
69
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Codigo
Red
Especie
Versicolor
15
46
28
65
2.2315
94
Verginica
13
52
30
67
2.2567
95
Versicolor
13
54
29
62
2.3308
96
Versicolor
13
56
29
66
2.3804
97
Versicolor
18
48
32
59
2.3954
98
Verginica
23
69
26
77
2.5147
99
Verginica
15
51
28
63
2.5221
100
Versicolor
17
50
30
67
2.5734
101
Versicolor
15
49
25
63
2.6031
102
Verginica
18
48
30
60
2.6242
103
Verginica
23
61
30
77
2.6412
104
Verginica
18
49
30
61
2.6564
105
Verginica
18
51
30
59
2.6756
106
Verginica
16
58
30
72
2.6937
107
Verginica
20
67
28
77
2.7212
108
Versicolor
16
51
27
60
2.7246
109
Verginica
14
56
26
61
2.7386
110
70
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Supuesto que para cada dato pk , se busca una respuesta Rk de la red, que se aproxime a un
valor Tk fijado. Este valor se llama respuesta o valor esperado de la red. En general si la
respuesta esperada de la red es T (T1 , T2 ,....., Tn ) n , para un conjunto de datos que se
le suministra P ( p1 , p 2 ,....., p n ) . Entonces la red cambiar sus pesos y ganancias para
entregar una respuesta R ( R1 , R2 ,....., Rn ) , que se aproxima a T (T1 , T2 ,....., Tn ) , de modo
n
1
2
(T
Rk ) 2 .
k 1
Como en este ejemplo, cada neurona slo tiene una dentrita, entonces ingresarn las
componentes de P ( p1 , p 2 ,....., p n ) , una a una.
4.2 Formulacin matemtica de las capas
a) Primera capa
w11,1
Matriz de pesos W 1 es una matriz de 2x1
w2,1
1
b11
Vector de ganancias b1 es una matriz 2x1
1
b2
Dentro de la primera capa (antes de ser transformada) se tiene
w11,1 p b11
V W P b = 1
1
w2 ,1 p b 2
1
e es
f 2 ( s2 ) tanh(s2 )
1
Q11
Q 1 = F 1 (V 1 )
Q2
1
f11 (V11 )
1 1
f 2 (V2 )
f 11 ( w11,1 p b11 )
1 1
, es una matriz de 2x1
1
f 2 ( w 2,1 p b 2 )
b) Segunda capa:
71
(tansig )
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
F ( x)
1
2
(T
k 1
72
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
2
E
2
w1,1 w1,1 s 2 ( x)
w1,1
2
E
b1 b12 s 2 ( x)
b1
1
E
1
w2 ,1 w2,1 s 1 ( x)
w2,1
(2.1b)
b1 b1 s E ( x)
1
1
b11
b1 b1 s E ( x)
2
2
b21
Q2
w2
1,2
V2
b2
1
73
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
E
dQ 2 V 2
2
(
x
)
(
T
Q
)
k
w12,1
dV 2 w12, 1
dQ 2
= ( f12 ) (V 2 ) y
2
dV
V 2
Q11 .
2
w1,1
pero
Entonces
E
( x) (Tk Q 2 ) ( f12 ) (V 2 ) Q11
2
w1,1
E
dQ 2 V 2
2
(
x
)
(
T
Q
)
k
w12, 2
dV 2 w12, 2
dQ 2
= ( f12 ) (V 2 ) y
dV 2
V 2
Q21 .
w12, 2
pero
Entonces
E
( x) (Tk Q 2 ) ( f12 ) (V 2 ) Q21
2
w1, 2
E
dQ 2 V 2
2
(
x
)
(
T
Q
)
k
w12, 2
dV 2 w12, 2
pero
dQ 2
V 2
2
2
= ( f1 ) (V ) ;
1 . Entonces
dV 2
b12
E
( x) (Tk Q 2 ) ( f12 ) (V 2 )
2
b1
74
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Q 2 F 2 (V 2 ) f12 (V 2 ) ;
E
Q 2 V 2 Q11 V11
2
(
x
)
(
T
Q
)
k
w11,1
V 2 Q11 V11 w11,1
pero
dQ 2
V 2
Q21
V11
2
2
2
1
1
=
;
;
;
(
f
)
(
V
)
(
f
)
(
V
)
p.
1
1,1
1
1
dV 2
Q11
V11
w11,1
E
( x) (Tk Q 2 ) ( f12 ) (V 2 ) w12,1 ( f11 )(V11 ) p
1
w1,1
Entonces
sale
E
( x) 11 p
2
w1,1
Q 2 V 2 Q21 V21
E
2
1 ( x) (Tk Q )
pero
dQ 2
V 2
Q21
V11
2
2
2
1
1
=
;
;
;
(
f
)
(
V
)
(
f
)
(
V
)
p . Entonces
1
1, 2
2
2
dV 2
Q12
V21
w12 ,1
E
( x) (Tk Q 2 ) ( f 22 )(V 2 ) w12, 2 ( f 21 )(V21 ) p
w12 ,1
Llamando
E
( x) 21 p
w12,1
75
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
E
Q 2 V 2 Q11 V11
2
(
x
)
(
T
Q
)
k
b11
V 2 Q11 V11 b11
pero
Q 2
V 2
Q11
V11
2
2
2
1
1
( f1 ) (V ) ;
w1,1 ;
( f1 ) (V1 ) ;
1 . Entonces
V 2
Q11
V11
b11
E
( x) (Tk Q 2 ) ( f12 )(V 2 ) w12,1 ( f11 )(V11 )
1
b1
Como
E
( x) 11
b11
Q 2 V 2 Q21 V21
E
2
pero
(
x
)
(
T
Q
)
k
V 2 Q12 V21 b21
b21
Q 2
Q21
V21
V 2
2
2
2
1
1
;
;
;
(
f
)
(
V
)
(
f
)
(
V
)
1. Entonces
1
1, 2
2
2
V 2
Q12
V21
b12
E
( x) (Tk Q 2 ) ( f 12 )(V 2 ) w12, 2 ( f 21 )(V21 )
1
b2
Como
E
( x) 21
b21
e s e s
1
1
2
f11 ( s ) f 21 ( s) tanh(s) s
s entonces ( f k ) ( s ) 1 [ f k ( s )]
e e
76
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
E
( x) (Tk Q 2 ) Q11
2
w1,1
b)
E
( x) (Tk Q 2 ) Q21
2
w1, 2
c)
E
( x) (Tk Q 2 )
2
b1
a)
E
( x) = p (Tk Q 2 ) w12,1 ( 1 [ f11 (V11 )]2 )
2
w1,1
b)
E
( x) = p (Tk Q 2 ) w12, 2 ( 1 [ f 21 (V21 )]2 )
w12 ,1
c)
E
( x) = (Tk Q 2 ) w12,1 ( 1 [ f11 (V11 )]2 )
b11
d)
E
( x) = (Tk Q 2 ) w12, 2 ( 1 [ f 21 (V21 )]2 )
1
b2
77
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Primera capa
a) w11,1 w11,1 sp (Tk Q 2 ) w12,1 ( 1 [ f11 (V11 )]2 )
b) w12,1 w12,1 sp (Tk Q 2 ) w12, 2 ( 1 [ f 21 (V21 )]2 )
c) b11 b11 sp (Tk Q 2 ) w12,1 ( 1 [ f11 (V11 )]2 )
d) b21 b21 s (Tk Q 2 ) w12, 2 ( 1 [ f 21 (V21 )]2 )
Forma vectorial de la actualizacin
w12,1
w11, 1
1 [ f11 (V11 )]2 ,
0
2
1
Denotando W 1 ; W 2 ; Mf
0
, 1 [ f 21 (V21 )]2
w1, 2
w2 ,1
W 1 W 1 sp (Tk Q 2 ) Mf 1 *W 2
b1 b1 s(Tk Q 2 ) Mf 1 *W 2
78
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Consideremos una RNA de 2 capas, como el que se utiliz en 4.3 para explicar el
aprendizaje de una red. Ya se dijo que el entrenamiento consiste en minimizar el error, en
media cuadrtica entre los vectores T y la respuesta de la RNA en cada componente del
vector de entrada P . Esto nos conduce al desarrollo de un programa que se har en
MATLAB.
Programa propio en MATLAB
% vector de entrada P=particin de [-2,2] y la respuesta esperada T
a=-2;
b=2;
N=50;
h=(b-a)/N;
for i=1:N+1
P(i)=a+h*(i-1);
T(i)=sin(pi*P(i)/3)*cos(pi*P(i)/6);
end
% Inicializacin de pesos, ganancias y el valor pequeo s
W1=[-0.2;0.5];
b1=[0.7;-0.2];
W2=[0.1; 0.3];
b2=0.15;
s=0.1;
RED NEURONAL:
KK=300;
0.8
0.6
SALIDA R
VALOR ESPERADO
0.4
0.2
EJE Y
0
-0.2
-0.4
-0.6
79
0
EJE X
0.5
1.5
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
xlabel('EJE X')
title('RED NEURONAL:')
80
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
81
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Simulacin
an = sim(net,pn);
a = mapstd('reverse',an,ts);
for i=1:1
figure(i)
[m(i),b(i),r(i)]=postreg(a(i,:),t(i,:));
end
82
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
RED NEURONAL:
0.8
0.6
SALIDA DE LA RED
VALOR ESPERADO
0.4
EJE Y
0.2
0
-0.2
-0.4
-0.6
-0.8
-2
-1.5
-1
-0.5
0
EJE X
0.5
1.5
-0.1600
-0.1662
-0.1662
-0.0800
-0.0836
-0.0836
0
0
0.0000
0.0800
0.0836
0.0836
0.1600
0.1662
0.1662
0.2400
0.2467
0.2468
1.8400
0.5349
0.5350
1.9200
0.4848
0.4849
2.0000
0.4330
0.4330
Observaciones finales
a) En el programa propio con MATLAB, no se contempla el control del gradiente
mediante una tolerancia tol. Un programa ms completo tendra que considerar todos estos
aspectos para estar seguros de la convergencia del proceso iterativo a algn punto crtico de
la funcin no lineal E ( x) 12 (Tk Q 2 ) 2 . No obstante ello, debido a las 300 iteraciones se
logra obtener una buena aproximacin.
b) Debe quedar muy claro que el aprendizaje supervisado de una red neuronal, no es ms
que un problema de minimizacin local del error en media cuadrtica.
c) Es interesante ver el comportamiento de la matriz Hessiana en puntos prximos a un
punto crtico. Si se logra una buena solucin esta matriz ser definida negativa, por cuanto
es una condicin para que la funcin no lineal tenga un mnimo local en el punto crtico.
d) La respuesta de la red desarrollada con los recursos de MATLAB, exactamente con la
misma arquitectura, es muy superior al que se consigue con el programa propio, esto se
debe a que MATLAB emplea algoritmos ms eficientes para la bsqueda de mnimos
locales, como son los de [1] Marquardt, D. y [2] Levenberg, K.
83
Universidad Nacional de Ingeniera. FIIS-FIC. Curso de Capacitacin: Redes Neuronales y Simulacin. Proyecto FINCYT:
Redes Neuronales y Simulacin de Monte Carlo para el estudio del concreto de alta resistencia. Cdigo PIAP-1-P-676-13.
Pedro C. Espinoza H.
Ejercicios
1. Desarrolle en MATLAB una red neuronal Backpropagation, de dos capas, la primera con
3 neuronas y la segunda de 1 neurona y con funciones de transferencia tansig, purelin
respectivamente. Luego entrene la red neuronal con los siguientes datos entrada P y el
valor esperado T, donde sus componentes estn descritos por:
a=0;b=4;
N=100;
h=(b-a)/N;
for i=1:N+1
P(i)=a+h*(i-1);
T(i)=4*cos(pi*P(i)/4);
end
n
84