Está en la página 1de 38

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.

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:

El vector p [ p1 , p2 ,..., pn ] representa a un conjunto de n seales pk , donde cada una de


ellas ingresa a la neurona por la correspondiente dentrita; a esta ltima le est asociado un
nmero w k denominado peso. Al conjunto de las n dentritas le corresponde el vector de
pesos W [ w1 , w 2 ,......, w n ] . Cuando un vector de seales p que llega a la neurona el
proceso que sigue dentro del cuerpo de la clula, se representa mediante la suma de los
productos de cada seal por su peso, ms un valor b denominado ganancia o sesgo de la
neurona. Todo esto se representa por la transformacin afn:
Wp b w 1 p 1 w 2 p 2 ...... w n pn b
Interpretacin del producto Wp b

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.

w1,1 , w1, 2 ,......, w1, n

w2,1 , w2, 2 ,......, w2 , n

y la ganancia o sesgo de la capa ser la matriz


W [w j , k ]
.......... ..................

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.

Para un vector p p1 , p2 ,..., pn que llega a la capa de neuronas, el proceso se representa


mediante el producto de la matriz de pesos W por el vector p , ms el vector b de
ganancias de la capa de neuronas. Luego cada componente de este vector es transformado
por la funcin de transferencia de cada neurona. Las funciones de transferencia en cada
capa se representa mediante una funcin vectorial con valores vectoriales: F : m m ,
donde para cada vector s ( s1 , s2 ,..., sm ) m , la funcin F est definida como:
F ( s ) [ f1 ( s1 ), f 2 ( s2 ),..., f m ( sm )] .

En consecuencia la respuesta de la capa ser el vector q F (Wp b) , donde


F (Wp b) f1 (W1 p b1 ), f 2 (W2 p b2 ),..., f m (Wm p bm ) , que es la seal procesada y

transformada por la capa de neuronas. Entonces es el vector de salida de la capa de


neuronas es q F (Wp b) .
De aqu, el proceso en una capa de m neuronas, no es otra cosa que una funcin
T : n m , que transforma una seal p n en un vector q m , definido por

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.

b) Limitador fuerte simtrico (Hardlims):


1 si s 0
f ( s)
1 si s 0

c) Funcin de transferencia lineal positiva (poslin)


0 si s 0
f ( s)
s si s 0

d) Funcin de transferencia lineal (purelin):

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) Funcin de transferencia lineal saturada Simtrico (satlins)


s 1
1 si

f ( s) s si 1 s 1
1 si
1 s

g) Funcin de transferencia sigmoidal (logsig):

f (s)

1
1 e s

h) Funcin de transferencia tangente sigmoidal hiperblica (tansig):

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

1.4 Redes neuronales de varias capas o redes multicapa


Datos

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.

b) Para la segunda capa se tendr una matriz de pesos W 2 [ w 2j , k ] de m 2 x m1 , un vector


de ganancias b 2 [bk2 ] y una funcin vectorial de funciones de transferencias
F 2 ( S ) [ f12 ( s1 ), f 22 ( s2 ),..., f m2 2 ( sm 2 )] . La seal emitida ser q 2 F 2 (W 2Q1 b 2 )

c) Para la N -sima capa se tendr una matriz de pesos W N [ w Nj , k ] de mN x m( N

1) ,

un

vector de ganancias b N [bkN ] y una funcin vectorial de funciones de transferencias


N
F N ( S ) [ f1N ( s1 ), f 2N ( s2 ),..., f mN
( smN )] . La seal emitida ser Q N F N (W N Q m ( N 1) b N ) .
De esta manera se observa que la salida final de la red neuronal de N capas ser:

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 Clasificacin de las RNA en supervisadas y no supervisadas


Existen otras clasificaciones de las redes neuronales. Una por ejemplo, es por el tipo de
variables que se emplean, denominndose RNA de variables binarias o variables
continuas.
Otra clasificacin es por el tipo de aprendizaje. En este aspecto, existen dos tipos de redes,
unas que tienen un aprendizaje supervisado y otras no.

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.

El aprendizaje de la red consiste en minimizar el error de la media cuadrtica entre los


vectores t y la respuesta q de la RNA a la que ha ingresado una secuencia de datos
p [ p1 , p2 ,....., p N ], pk n .

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

, donde como se dijo antes, x es un vector que

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.3167 0.3094 0.2610 0.2290 0.2356 0.2456 0.2496 0.2289


0.2366 0.3002 0.3751 0.4448 0.5037 0.5406 0.5060 0.3538

0.2022

0.1945

b) La tcnica tradicional consiste en seguir un procedimiento qumico de separacin del


suero de la sangre y con ello se mide el nivel de colesterol. Con esta tcnica se hicieron las
mediciones de los tres tipos de colesterol de cada muestra (HDL, LDL,VLDL) y se
guardaron en el archivo t, que es una matriz de 3 filas por 264 columnas. Desde luego en el
mismo orden que en p para mantener la correspondencia. Por ejemplo los niveles del
colesterol para el paciente N5 son: 35 151 51.

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

El resultado es la salida grfica de las curvas de entrenamiento, validacin y prueba (test)


seguido de graficas de interpretacin de la respuesta de la red, entre ellas la regresin lineal,
que compara los resultados que arroja la red con el valor esperado, que est en la matriz t.
2.3 Explicacin del programa del colesterol
Paso 1. Matrices de datos de entrada a la red
>> load choles_all
Este archivo guarda entre otras cosas, las dos matrices p y t que son de orden 21x264 y
3x264 respectivamente.
Paso 2. Normalizacin y depuracin de los datos

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

La primera capa de la red tiene 5 neuronas y 4 dentritas cada una


La segunda capa de la red tiene 3 neuronas y 5 dentritas cada una (pues la capa anterior
tiene 5 neuronas)
Las funciones de transferencia elegidas son tansig y purelin, respectivamente, para
la primea y segunda capa.
Para el entrenamiento se elige trainlm que segn MATLAB, es un procedimiento
basado en el mtodo de Levenberg - Marquardt, que son algoritmos para resolver clases
especiales de sistemas de ecuaciones, desarrolladas a partir de las publicaciones: [1]
Marquardt D. y [2] Levenberg K.
La red creada es entonces:
>>net = newff(Rango,[5 3],{'tansig' 'purelin'},'trainlm');

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

Paso 5. Entrenamiento de la RNA


Este proceso se realiza con los datos de la matriz Enp y con la parte correspondiente del
valor esperado, que se encuentra en la matriz VEt que fueron seleccionados en el paso3. La
validacin y el test lo realizarn las otras matrices definidas en el paso indicado.
La funcin de entrenamiento es train y su sintaxis es como sigue:
>>[net,tr]=train(net,Enp,VEt,[],[],val,test);

Luego de ejecutar esta fila sale el aplicativo


que indica que se han realizado 100
iteraciones. La norma del gradiente est por
debajo de 0.01.

Fig. 2

Ejecutando los botones:


a) Performance: se ven las curvas del
entrenamiento, de la validacin y del test. Esta
curvas muestran el comportamiento de la
norma del gradiente y que se vio en la seccin
2.2 del captulo 2.
b) Training State: muestra el comportamiento
del gradiente en cada iteracin, del mu y los
errores del test.
c) Regression: Presenta el R y la grfica de la
correlacin entre el output y el valor esperado
de la red, en cada una de las tres etapas:
entrenamiento, validacin, test y la correlacin
total.

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

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. 5, puede correr el
siguiente programa:
>>plot(tr.epoch, tr.perf, tr.epoch, tr.vperf, tr.epoch, tr.tperf)
legend('ENTRENAMIENTO','VALIDACION','TEST',-1);
ylabel('ERROR CUADRTICO MEDIO');
xlabel('ITERACIN')
title('CURVAS DE:')

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.

Nuevas matrices de pesos y ganancias


Luego del entrenamiento aparecen nuevas matrices de peso y ganancias o sesgos, producto
de los procesos de minimizacin de la media cuadrtica que se realiza durante el
entrenamiento de la red y que son:

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

Paso 6. Simulacin de la RNA


Para ejecutar la simulacin se llama a la funcin sim tal como aparece en el siguiente
comando
>>an = sim(net,ptrans);
La simulacin consiste en ingresar por la red toda la data que contiene la matriz ptrans
la red devuelve como respuesta la matriz an.
primero vemos de qu orden es an con:
>>size(an)
ans = 3

264

Paso 7. Conversin de la respuesta de la simulacin an a valores originales


En el paso 2 se normaliz la data y todo el proceso de entrenamiento y simulacin de la red
se ha realizado con valores normalizados. Para ver los resultados en el nivel y las
caractersticas de la data original, se tiene que aplicar el proceso inverso de la
normalizacin, llamando a la funcin:
>> a = mapstd('reverse',an,ts);

>>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

Adems en cada arreglo [m(i),b(i),r(i)], m(i) es la pendiente y b(i)la ordenada


en el origen de la recta de regresin. r(i)es el coeficiente de correlacin entre a(i,:)
y t(i,:).
2.4 Otra interpretacin de la correlacin de los resultados de la simulacin
Para comprender un poco ms la correlacin entre los valores esperados y el resultado de la
simulacin, presentamos las 3 filas de a y t pero en forma de columnas. Luego
ordenamos la primera columnas de a en forma ascendente, juntamente con la primera
columna de t y as sucesivamente y por separado con las otras columnas.
En la tabla que sigue se muestran 25 columnas de a y t
a(1 , : )
-3.0576
21.8573
47.9581
23.5026
11.5634
3.9087
72.2211
12.7835
14.5204
13.9816
6.6914
16.5968
1.8794
53.4635
5.3939
-0.7479
20.6606

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.

3. REDES NEURONALES BACKPROPAGATION EN EL PROBLEMA DE LA


CLASIFICACIN DE TRES TIPOS DE FLORES
3.1 Reconocimiento de tipos de flor por las dimensiones de sus ptalos y spalos
El archivo que sigue guarda las medidas del ancho y largo de los ptalos y spalos de tres
clases de flores: Setosa, Verginica y Versicolor. Estos datos se guardan en la matriz p. En
la matriz t se guarda el cdigo que identifica a cada tipo de flor y que son 1, 2 y 3
respectivamente.

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';

Paso 2. Normalizacin y depuracin de los datos


a) Normalizacin
Se aplica la funcin mapstd a las matrices p y t. Esta funcin transforma los elementos de
x mc
cada fila de la matriz en otro, empleando la funcin H ( x)
, donde mc y dc son
dc
respectivamente la media y la desviacin estndar de cada fila.
>> [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. Depurar de las filas de la matriz que se correlacionen entre s. El resultado lo
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 150
Paso 3. Datos para el entrenamiento, validacin y test de la RNA
a) MATLAB lo hace mediante subconjuntos de las clases de equivalencia mdulo 4. Es
decir selecciona las columnas de la matriz ptrans de acuerdo a estas clases de nmeros:
>> col=S(2);

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];

b) Con estas clases se hace la separacacion.


>>Enp = ptrans(:,Clas13);
VEt = tn(:,Clas13);
val.P = ptrans(:,Clas4);
val.T = tn(:,Clas4);
test.P = ptrans(:,Clas2);
test.T = tn(:,Clas2);

%Entrenamiento
%Validacin
%Test

Paso 4. Creacin de la red


Como los datos de entrada estn en la matriz ptrans se hace:
>>Rango=minmax(ptrans);
Rango =
-3.2957
-2.6346
-0.8460
-0.4915

2.7693
2.6662
1.0244
0.4820

>>net = newff(Rango,[5 1],{'tansig' 'purelin'},'trainlm');

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

Paso 5. Entrenamiento de la RNA


>>[net,tr]=train(net,Enp,VEt,[],[],val,test);

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.

Luego de correr, la salida indica que en 20 iteraciones se logra el entrenamiento y muestra


las curvas de entrenamiento en la Fig. 2
TRAINLM-calcjx, Epoch 0/100, MSE 2.4689/0, Gradient 3.96349/1e-010
TRAINLM-calcjx, Epoch 20/100, MSE 0.328009/0, Gradient 0.0218904/1e-010
TRAINLM, Validation stop.

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.

>>plot(tr.epoch, tr.perf, tr.epoch, tr.vperf, tr.epoch, tr.tperf)


legend('ENTRENAMIENTO','VALIDACION','TEST',-1);
ylabel('ERROR CUADRTICO');
xlabel('ITERACIN')
title('CURVAS DE:')

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

Nuevas matrices de peso y ganancias

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

Paso 6. Simulacin de la RNA


>>an = sim(net,ptrans);
>>size(an)
ans = 1

150

Paso 7. Conversin de la respuesta de la simulacin an a valores originales


>> a = mapstd('reverse',an,ts);
size(a)
ans = 1 150
Paso 8. Comparacin del resultado entregado por la red a y el valor esperado t.
Este proceso se realiza mediante la funcin postreg
for i=1:1
figure(i)
[m(i),b(i),r(i)]=postreg(a(i,:),t(i,:));
end
La salida esta formada por una sola grfica con el coeficiente de correlacin R.

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 Otra interpretacin de la correlacin de los resultados de la simulacin


Se presenta a y t en forma de columnas formando una tabla. Se ordena la columnas t en
forma ascendente, juntamente con la columna a.
>> TABLA=[a' t']

a) Se grafica con plot


3.5
t
a

3
2.5
2
1.5
1
0.5

50

100

150

b) La columna a se copia a la hoja de Excel donde se encuentran los datos y t.


t

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

AnchPeta LongPeta AnchSepa LongSepa

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.

Luego se ordena a en forma ascendente, juntamente con la columna t y se observa que la


red ha identificado completamente a la especie Setosa. En cambio hay 5 errores entre las
dos especies restantes.
Especie

AnchPeta LongPeta AnchSepa LongSepa

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

4. APRENDIZAJE DE LAS RNA BACKPROPAGATION Y LA REGLA DE LA


CADENA EN LA DERIVACIN DE FUNCIONES COMPUESTAS.
Dada la importancia de este concepto, se desarrollan estas ideas mediante un ejemplo, pero
donde se muestra parte de los aspectos matemticos que explican la implementacin del
mtodo del gradiente y la regla de la cadena para encontrar un mnimo local del error
medio cuadrtico, descrito en el pargrafo 1.5.1 de la seccin 1.
4.1 Un ejemplo simple de aprendizaje supervisado en RNA Backpropagation
Consideremos una RNA de dos capas, la primera con dos neuronas, donde cada neurona
tiene solo un canal de entrada (una dentrita) y la segunda una neurona con dos canales de
entrada (dos dentritas).

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

que minimice la media cuadrtica

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

Funciones de transferencia de la primera capa


f11 ( s1 ) tanh(s1 )
e s e s
1
1
=
,
donde
F ( S ) 1
f1 ( s) f 2 ( s ) tanh(s ) s

e es
f 2 ( s2 ) tanh(s2 )
1

Salida de la primera capa

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.

Matriz de pesos W 2 w12,1 , w12, 2 es una matriz de 1x2


Vector de ganancias b 2 [b12 ] es una matriz 1x1
Dentro de la segunda capa (antes de ser transformada) se tiene

V 2 W 2 Q1 b 2 w12,1Q11 w12, 2Q12 b12


Funciones de transferencia de la segunda capa
F 2 ( s) [ f12 ( s)] f12 ( s) , matriz de 1x1 , donde f12 ( s ) s (identidad= purelin)

Salida de la segunda capa


Q 2 F 2 (V 2 ) f12 ( w12,1Q11 w12, 2 Q12 b12 ) w12,1Q11 w12, 2 Q12 b12

4.3 Mtodo del gradiente heurstico en el aprendizaje de la RNA


El vector x ( w11,1 , w12,1 , b11 , b21 , w12,1 , w12, 2 , b12 ) es el vector de pesos y ganancias de la
RNA del ejemplo que se viene implementando. El error en media cuadrtica ser la funcin
n

F ( x)

1
2

(T

Rk ) 2 de 7 variables. Basta minimizar cada sumando E ( x) 12 (Tk Rk ) 2 ,

k 1

empleando el mtodo del gradiente heurstico de la seccin 2.2 del captulo 3.


En vista de las notaciones establecidas en 2.3, se denotar con Q 2 el valor de Rk . Entonces
se debe minimizar la funcin E ( x) 12 (Tk Q 2 ) 2
El proceso de entrenamiento comienza dndole un valor inicial aleatorio al vector de pesos
y ganancias x ( w11,1 , w12,1 , b11 , b21 , w12,1 , w12, 2 , b12 ) .
El algoritmo del gradiente heurstico, de la seccin 2.2, captulo 3, indica que para
minimizar la funcin E (x) deben actualizase los pesos y las ganancias de las dos capas,
con un factor de pequeo 0 s 1 .
Aplicando la regla de cadena, para la derivacin de funciones compuestas, se comienza
derivando las funciones de la segunda capa, de aqu viene el nombre de la red:
Backpropagation.

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.1a) w12, 2 w12, 2 s 2 ( x)


w1, 2

2
E
b1 b12 s 2 ( x)

b1

Luego se actualizan los pesos y ganancias de la primera capa


E
1
1
w1,1 w1,1 s w1 ( x)
1,1

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

Derivadas parciales de E (x)


Para seguir desarrollando, se necesitan las derivadas parciales de E ( x) 12 (Tk Q 2 ) 2 ,
respecto de los pesos y ganancias. Para esto se aplica la regla de la cadena, en la derivacin
de funciones compuestas de varias variables. En el caso del ejemplo debe tomarse en
cuenta las siguientes relaciones de dependencia, establecidas para la primera y segunda
capa, por ejemplo:
w2
1,1

Q2

w2
1,2

V2

b2
1

Respecto de los pesos y ganancias de la segunda capa


a) La derivada parcial de E (x) respecto del peso w12,1
Q 2 F 2 (V 2 ) f 12 (V 2 ) ;

V 2 w12,1Q11 w12, 2 Q12 b12

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

b) La derivada parcial de E (x) respecto del peso w12, 2


Q 2 F 2 (V 2 ) f12 (V 2 ) ;

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 w12,1Q11 w12, 2 Q12 b12

V 2
Q21 .
w12, 2

pero

Entonces

E
( x) (Tk Q 2 ) ( f12 ) (V 2 ) Q21
2
w1, 2

c) La derivada parcial de E (x) respecto la ganancia b12


Q 2 F 2 (V 2 ) f12 (V 2 ) ;

V 2 w12,1Q11 w12, 2 Q12 b12

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

Respecto de los pesos y ganancias de la primera capa


a) La derivada parcial de E (x) respecto del peso w11,1

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 ) ;

V 2 w12,1Q11 w12, 2 Q12 b12 ; Q11 f 11 (V 11 ) ; V11 w11, 1 p b11

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

Denotando 11 (Tk Q 2 ) ( f12 )(V 2 ) w12,1 ( f11 ) (V11 ) ,

Entonces

sale

E
( x) 11 p
2
w1,1

b) La derivada parcial de E (x) respecto del peso w12,1 ,


Q 2 F 2 (V 2 ) f12 (V 2 ) ;

V 2 w12,1Q11 w12, 2 Q12 b12 ; Q21 f 21 (V 21 ) ; V21 w12, 1 p b21

Q 2 V 2 Q21 V21
E
2

1 ( x) (Tk Q )

V 2 Q12 V21 w12 ,1


w2 ,1

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

21 (Tk Q 2 ) ( f 22 )(V 2 ) w12, 2 ( f 21 )(V21 )

E
( x) 21 p
w12,1

c) Derivada parcial de E (x) respecto de la ganancia b11


Q 2 f12 (V 2 ) ; V 2 w12,1Q11 w12, 2 Q12 b12 ; Q11 f 11 (V11 ) ; V11 w11,1 p b11

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

11 (Tk Q 2 ) ( f12 )(V 2 ) w12,1 ( f11 ) (V11 )

E
( x) 11
b11

d) Derivada parcial de E (x) respecto de la ganancia b12


Q 2 f12 (V 2 ) ; V 2 w12,1Q11 w12, 2 Q12 b12 ; Q21 f 21 (V 21 ) ; V21 w12 ,1 p b21

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

21 (Tk Q 2 ) ( f 22 )(V 2 ) w12, 2 ( f 21 )(V21 )

E
( x) 21
b21

Reemplazando las derivadas de las funciones de transferencia


a) Para la primera capa

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.

b) Para la segunda capa


f12 ( s ) s entonces ( f12 ) ( s) 1

Se tienen las siguientes derivadas parciales:


Respecto de los pesos y ganancias de la segunda capa
a)

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

Respecto de los pesos y ganancias de la primera capa


Como ( f11 ) (V11 ) 1 [ f11 (V11 )]2

( f 21 ) (V21 ) 1 [ f 21 (V21 )]2 , se tiene

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

Actualizacin de los pesos y ganancias en su forma vectorial


Segunda capa
a) w12,1 w12,1 s(Tk Q 2 ) Q11
b) w12, 2 w12, 2 s(Tk Q 2 ) Q12

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.

c) b12 b12 s (Tk Q 2 )


Forma vectorial:
Denotando W 2 ( w12,1 , w12, 2 ) ; Q1 ( Q11 , Q12 ) , de (a) y (b) se tiene
W 2 W 2 s(Tk Q 2 )Q1
b12 b12 s (Tk Q 2 ) ( 1 [ f12 (V 2 )]2 )

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

de (a) y (b) se tiene

W 1 W 1 sp (Tk Q 2 ) Mf 1 *W 2

de (c) y (d) se tiene

b1 b1 s(Tk Q 2 ) Mf 1 *W 2

4.4 Implementacin en un programa propio en base a los resultados de 4.3


Ejemplo 1: red neuronal Backpropagation para aproximar una funcin
Consideremos la funcin h( s) sen( 3 s) cos( 6 s) con 2 s 2 y un vector
P ( p1 , p 2 ,....., p N ) cuyas componentes son los puntos de una particin del intervalo
[2 , 2] . Se quiere construir una RNA de propagacin inversa, que para el vector de entrada
P , aproxime los valores de la funcin h(s ) en los puntos de esta particin, es decir
aproxime el vector T (t1 , t 2 ,....., t N ) , donde t k sen( 3 pk ) cos( 6 pk ) .

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

%, Bucle de salidas y entradas a la


RNA
for k=1:KK
for i=1:N+1
% salida de la primera capa
V1=P(i)*W1+b1;
Q1=[tanh(V1(1));tanh(V1(2))];
Mf1=[1-Q1(1)^2,0;0,1- Q1(2)^2]; %
Matriz de 2x2
% salida de la segunda capa
V2=dot(W2,Q1)+b2;
Q2=V2;

0
-0.2
-0.4
-0.6

% funcin que guarda la respuesta de


-0.8
-2
-1.5
-1
-0.5
la ltima capa, para cada P(i)
R(i)=Q2;
% atualizacin de pesos y ganancias en las dos capas
W1=W1+s*P(i)*(T(i)-Q2)*(Mf1*W2);
b1=b1+s*(T(i)-Q2)*Mf1*W2;
W2=W2+s*(T(i)-Q2)*Q1;
b2=b2+s*(T(i)-Q2);
end
end
%valores de P,T,R=salida de la RNA.
TABLA=[P',T',R'];
% Grficas
plot(P,R,'o',P,T,'r');
legend('SALIDA R','VALOR ESPERADO',1);
ylabel('EJE Y');

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:')

Nivel de correlacin obtenido entre T y R


>>postreg(T,R);
El nivel de correlacin es alto: 0.99563

4.5 Solucin del mismo ejemplo 1 con los recursos de MATLAB


Generacion de datos
Se generan los datos de entrada a la RNA de la misma manera y se guardan en la matriz p.
El valor esperado en 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

Transformacion (y depuracion) de los datos


[pn,ps1] = mapstd(p);
[tn,ts] = mapstd(t); % se omite el uso de processpca por que p es de una fila.
[fil,col] = size(p);
Clas13 = [1:4:col 3:4:col];
Clas4 = 4:4:col;
Clas2 = 2:4:col;
Enp = pn(:,Clas13);
VEt = tn(:,Clas13);
val.P = pn(:,Clas4);
val.T = tn(:,Clas4);
test.P = pn(:,Clas2);
test.T = tn(:,Clas2);
Creacin de la red
Rango=minmax(pn);
net = newff(Rango,[3 1],{'tansig' 'purelin'},'trainlm');
[net,tr]=train(net,Enp,VEt,[],[],val,test);

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

Grafica de la respuesta de la red y del valor esperado


plot(p,a,'o',p,t,'r');
legend('SALIDA DE LA RED','VALOR ESPERADO',-1);
ylabel('EJE Y');
xlabel('EJE X')
title('RED NEURONAL:')

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

Tabla de valores: entrada, respuesta y valor esperado


>>TABLA=[p',t',a'];
TABLA =
-2.0000
-0.4330
-0.4330
-1.9200
-0.4848
-0.4849

-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

correspondiente a la capa de neuronas del


2. Describa la transformacin
ejercicio 1.
3. Genere en MATLAB una red neuronal Backpropagation, de dos capas, la primera con 4
neuronas y la segunda de 1 neurona y con funciones de transferencia tansig, purelin
respectivamente. Luego entrene la red neuronal con los mismos datos de entrada del
ejercicio 1.
Ejercicios
4. Describa mediante vectores, matrices y transformaciones, una red de 2 neuronas, donde
la primera tiene dos entradas (dentritas) la segunda una entrada. Las funciones de
transferencia son tansig y logsig respectivamente.
5. Desarrolle un programa en MATLAB para el ejercicio 1 y aplique dicha red para
aproximar la grfica de la funcin h ( s) sen( x 2 ) cos( 3 x) en un intervalo [a, b]
cualquiera.
6. Describa mediante vectores, matrice y transformaciones dos capas de neuronas, la
primera de 3 neurona, cada una con 3 dentritas y la segunda de dos neurona. Las funciones
de transferencia para todas las neuronas es tansig.
BIBLIOGRAFIA
[1] Marquardt, D., "An Algorithm for Least-Squares Estimation of Nonlinear Parameters,"
SIAM J. Appl. Math. Vol. 11, pp 431-441, 1963.
[2] Levenberg, K., "A Method for the Solution of Certain Problems in Least Squares,"
Quart. Appl. Math. Vol. 2, pp 164-168, 1944.
[3] Aminghafari, M.; Cheze, N.; Poggi, J-M.(2006), "Multivariate denoising using wavelets
and principal component analysis," Computational Statistics & Data Analysis, 50, pp.
2381-2398.

84

También podría gustarte