PROYECTO DE INVESTIGACION I1
REOES
NEURONALES A R T I F I C I A L E SALGORITMO DE RETROPROPAGACION
PARTICIPANTES:
ARVIZU CRUZ C E L I A .
ROBLES GUTIERREZ JESUS ARTURO
ASESORA : PROFRA. MARIKO NAKANO M.
+
~3
-1
3.
SIBt
A...
43ANEXO 1
...
44.Algoritmo de Retropropagación
~ " " " _ I _ _ """__"_."l ~ " .II
Varias configuraciones de redes n e x o n a ? - e s 2.3~1 si20
desarrolladas, ias cuales dependen en la mayoria &e I c s casi33 de
l a s aplicaciones específicas; estas configuraciones d i f i e r a a e;:
e : nGmero de capas de la r e d , en el n6mero d e ne:Jroms o nod.as en la zapa, en e l algoritmo utilizadc p a r a e z t r e ~ a r l a r e d , e ~ c .
1 .
La r a d qu? desarrolLamos e n e s t e trabajo rrtiZiza 21 algoritmo de 3etropropagaci6n. 3s t r a t a de una red qiie -2:~ede
realizar el reconocimiento d e tramas ccmplejas, melores
aproximaciones como s a l i z a scnque e:<ist.c3. : ~ ; i d o 2z : S
-
_ _
.S c:& c;. 2 entrada, y substituir l a realizacibn d e fxci=cs,es c e? correspondencia nc t r i v i a l e s . F'ue descrlta primeramente .p:.r WerSos, Parker, y Rummelharty HcCIe2iazii.El algoritmo más ampliamente usado para entrena:: r e d e s neuronales, e s el algoritmo de Retfopropa,JacL6n, (Backpropagati,2c o propagación hacia atrás). En B s t e algo..-rtmo se a p l i c a a al rsd varios datos de entrenamiento, se calcul3 s l e r r o r , el cual s e define como la diferencia entre salida 1-531 ';7 ia salida dese;3da de la red.
Como se observa, el funcionamiento de 4ste algoritmo tiene poca relación con la forma de operar del c e r e b r o humano.
Se tiene reporte que recientemente el algoritmo de
Retropropagaci6n se ha empleado con bastante B x i t o en el reconocimiento de caracteres manuescritos en el sistema postal norteamericano.
Las estructuras de las redes neuronales y algoritmos de entrenamiento se dividen bdsicamente en dos grupos: un grupo se podría llamar Red Neuronal con supervisor y el otro Red Neuronal
Sin Supervisor. La red neuronal de Retropropagaci6n es
Algoritmo de RetrDpropagaci6n
._.^l.__ " _ , ~
E s t e estudio se basará en teoria y aplicación de l a s redes neurozaies artificiales; específicamente e n la realizztcion de ana r e d :it>i1rczal ~ n t r ; n a d a ;isa;:(?c~ e l algoritino < e Retropropagaci6n, para una aplicaci6n especifica como el reconocimiento de objetos,
específicamente nos basaremos en el reconocimiento de figuras
geométricas, como S O R :
- Una linea horizontal - Una linea vertical
- Una cruz! formada por las dos lineas antes mencionadas.
- Un triángulo - Un cuadrado - Un hexágono
Se trata de hacer que una computadora pueda realizar un reconocimiento de una cierta figura, a pesar de estar incompleta o con un cierto porcen,taje de ruido. Ver fig.1 y 2 .
I
I
I
I
I
I
I
I
I
I
I
I
I
1
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Figura de entrenamiento Figura Capturada Comparaci6n.
L a red reconoce la figura a pesar de contener un porcentaje
de ruido asociandole la linea vertical como respuesta al
reconocimiento.
Pig.1.
Algcritmo de Retropropagacidn
”” ”
Figura Captada Respuesta de su aprendizaje
La red es capaz de reconocer una figura a pesar de que este incompleta.
F i g . 2.
Una red neuronal, se somete a un cierto entrenamiento
(m6todo de aprendizaje), en nuestro caso el entrenamiento es
realizado por Retropropagaci6n; una vez que la red aprende
ciertas figuras dadas como ejemplo, es decir se entrena, y sabe
cuales son similares, se encuentra una lista para reconocer
cualquier otra figura que se la presente (aún con c i e r t a distorción). Ver fig. 3 .
Figura Proporcionada a la red
para su reconocimiento
Comparaci6n de la red.
Resultado del reconocimiento de la red.
Fig. 3
- Reconocimiento de c a r a c t e r e s m a n u e s . z ~ i t o s para la sutomatizacibn d e c i e r t a s f u n c i o n e s d e l o s sistemas postal, bancario, etc.
-
Reconocimiento de firmas para el apoyo de s i s t e m a s d@ seguridad.- Reconocimiento de huellas digitales, combinando redes neuronales con otras técnicas de reconocimiento de imdgenes para sistemas de seguridad.
Una de las grandes v a n t a l a s di3 una red c e u o n a l , es sil capacidad de lograr un e x z e i e n t e reconocimiento de se;;i,al.cs, 2 pesar de que en e s t a s pueda existir r u i d c , a d e m d s , debido 3 s a naturaleza paralela, reduce e l tiernpcl r e q u e r i d o por LIR proces.xcisr secuencial para determinar un cierto resultado; tarnbi&r?, reclac=. a l tiempo de desarrollo de. un sistema debido a que cxent-a c o n ? a capacidad de aprender el algoritmo correcto sin que alguien d e b a deducirlo con anterioridad.
Uno de los principales problemas al que nos enfrentamos, e s la naturaleza secuencial del computador, el cual nos C D ~ S G : ~ E demasiado tiempo, a l pensar en Llna aplirlaci6n con un exter:so número de entradas o al intentar correlacionar t o d a s i.as prisib2.e~ permutaciones de una trama compleja.
Esta red nos ayuda. a resolver estes p r o b l e m a s porque e s
capaz de examinar todos los puntos de una imagen ( 2 i x e L e s tomadss como de una matriz de entrada), en paralelo y deduce si son parecidos a un patron dado, correlaciGnan t o d a s Las posibilidades permutaciones de la entrada, siendo capaces de ignorar el ruido.
La ;?rinera capa llamada Capa de Entrada, s e enctlentza
ferna2:a p o r una s e r i e de nodos q;ie se szcargan de r e c i L i r lca
aqui un nodo extra llamado bias, el c u a l siempre tiene un v a l o r de 1; estzs nodos se encuentran conectados con l o s nodcs de l a segunda capa llamada C a p a Oculta, en e s t a capa tambiQn incluimos un nodo extra como en la anterior, y se conectan como se muestra e n :a fig. 4 . Los nodos de la segunda capa son concatenados a l a '
t e r c e r a capa, llamada Capa de Salida, la cual contendrd el
resultado del reconocimiento; en esta capa son comparadas la
salida deseada y la obtenida por la red, dependiendo de la diferencia entre estas, se obtiene un error, el cual se compara con un error previamente conocido y aceptable, de acuerdo con un cierta criterio personal.
; i d L 3 S -c..- l.2 red debe aprender o reconocer en su caso, ~itilizamos
Si e l rango de diferencia entre los errores no es aceptable
se determina,la dirección y la cantidad en que debe cambiar los
pesos, propagAndose esta señal hacia I C s nodos de las capas antericres que contribuyen relativamente al error total, con lo cual se modifican los pesos que conectan los nodos de la red y se
vuelve a propagar la señal hacia adelante, hasta completar la
entrada total y obtener un error aceptable. Esto se conoce como ciclo de Propagación
-
Adaptaci6n de dos fases.Algoritmo de Retro2ropagaciCn
I
_
"
"
"
""-
""Fig. 4 .
De e s t a forma la red puede c l a s i f i c a r entradas- que fueran o
no usadas para su entrenamiento.
. . . . I"-:
1,2,3,4
8,11,15,18 les corresponde la figura numero 4
2 2 , 2 3 , 2 4 , 2 5 . que pertenece a un cuadrado.
Pig. 5.
Tomado d e l libro "Redes Neuronales, Algoritmos,
Entradas Correspondencia Correcta ( rJr,ocida
>
. . .
. .
.
.
.
.
. . . I . . . . . . .
I
I
I
I
"
Fig. 6 .
1
P u e d e verificarse en e i libro de "Redes Neuronales
Aigoritmos, Aplicaciones y técnicas de programación", James A .
Freeman / David M. Skapura., p . 3 8 .
Entradas
. .
Correspondencia
Correcta
F i g . 7 .
An6lisis Para la Capa de Entrada.
Las correspondencias correctas s e asocian como vactcrss ( x l # y l ) , (x2,y2),
. . .
(xn,yl), tal que cumple Y = P(x).io primero que realizamos e s intrzducir los puntos de
entrada en un vector d e entrada, llamado X.
x
= (xl,x2,...
xn)Para lograr e l reconocimiento d e cierta entrada de datos en un tablero, p o r ej: d e .?x7, ccmo se,muestra en la fig,. 8 , por
sirnple iLspecci6n podemos ver que necesitamos
un
vector de 4 9entradas.
F i g . 8 .
Tablero para captura de entradas d e la red. Para distinguir
entrada se enumeran los cuadros del tablero de izquierda a
derecha.
Aksza ~ u e s t r a r e d se encuentra constituida de la forma
C.E c.0
c.s
Funciones U t i l i z a d a s .
Este procedimiento inicializa la matriz, apa5.mdo tcdas 51;s entradas, io cual se r e a l i z o poniendo a -1 t o d a s e s t a s S T K : Z ~ ~ S y
también l a salida deseada tomacia corno l a variable <t. h2ends i = Número de f i g u r a d e prueba.
j = Número de nodo d e l a red.
Comienza.
Para ( todas l a s entradas d e matriz
1
h a zPara ( todas las s a l i d a s de la m a t r i z ) h a z
x[i][jl = -1.0;
d[il[jl = 0.0;
.:&e k s c e r rota: La srime-a entrada da e s t c s v e c t c r e s e s
e l nodo b i a s , y p o r i a a n t e s mencignado, t i e n e un v a l o r siempr-e
valor a encendido.
Linea Horizontal.
X C O l C O l = 1 X[OlC9l = 1
x[0]C101 = 1
x[ll[O] = 1
x[l][22] = l,X[11[23] = 1,x[11[241 =1,XCllC251 = 1 ,
x[2][0] = 1.0;
x[2][22] = l.O,X[2][23] = 1.o,x[21C241 =l.O,X[21C251 = 1.0; xi2][26] = 1.0,~[2][27] = 1.0,X[21[281 ~ 1 . 0 ;
Algoritmo d e Retropropagaci6n
-
-
I_~ [ 4 1 [ 3 4 1 = 1.0;~[4][35] = 1.0;
x[5j[3] = 1.0;
x[5][40] = 1.0;
x[S1[36] = 1 . 0 ; ~ [ 5 ] [ 3 7 ] = l.O;x[5][38j = 1.0;~[5][39] = 1.0;
x[6][0] = 1.0;
~ [ 6 ] [ 4 7 ] = 1.0;~[6][48] = 1.0;~[6][49] = 1.0;
x[7][0] = 1.0;
X[7][16] = 1.0;~[7:[17] = 1.0;~[7][:8] = 1.0;~['7][19] = 1.0; x[7][20! = 1.0;
x[8l[Ol = 1.0;
~ [ 8 1 [ 6 ] = 1.0;~[8][7] = 1.0;
x[91[01 = 1.0;
~ [ 9 ] [ 8 1 = l.O;x[9][9] = l.O;x[9][10] = 1.0;
X[ll][Ol = 1.0;
- . - - .
__
.denotar la segunda figura.
CRUZ
X'i29][0] =1.0;
x[291[16]= 1;
x[30][0] =1.0; x[301[41= 1; x[30][ll]= 1;
x[30][321= 1; x[30][39!= 1;
x[30][46]= I;
x[33][0]= 1.0; x[33][11]= 1;
",
x[341[0] =1.0; ~ [ 3 4 ] [ 1 8 ] = 1;
X[341[241= 1;~[2][25]= 1;~[2][26]= 1; x[34][32]= 1;
x[35][0]= 1.0; x[351[191= 1; x[35][26]= 1;
x[35][31]= 1;x[2][32]=l;x[2][33]= l;x[2][34]= 1;x[2][35]= 1; x[35][40] = 1;
x[35][47]= 1;
Algoritmo de Retropropagaci6n
". ~ ,_
"_""
x[3&i[Ol= 1.0;
x[37][26] = 1; x[371[33]= 1;
x[38][0!= 1 . 0 ; x[38][24]= 1;
x[38][38]= 1;
x[38][30]= l;x[2][3~]=1;xC21[32]= 1;
En todas estas figuras la sali.2a deseada está dada por d[i][3] = 1; puesto que se trata del tercer nodo encendido, para denotar la tercera figura.
CUADRADO.
x[39][01= 1.0;
x[39][1]= l;x[39][2]= l;x[39][31= 1;x[39][41= 1;.x[39][51
= 1;~[39][6]=.1;~[39][7]= 1 ; x[39][8]= l;x[39][14]= 1;
~[39][22]= l;x[391[28]= 1;
~[39][36]= 1;~[39][42]= 1 ;
~[39![43]= 1;~[39][44]= 1;~[39][45]= 1;~[393[461= 1;
~[39][47]= l;x[39][48]= 1;~[391[49]= 1; x[39][15]= l;x[39][211=1;
x[39][29]= 1;x[391[35]= 1;
x[441[01= 1.0;
x[441[10]= l;x[44][14]= 1; xC441[1?]= 1;x[44][21]= 1;
x[441[241= l;x[44][28j= 1;
xC44][31]= l;x[44][32]= 1;x[44][33]=1; x[44][34]=1;
~ [ 4 4 1 [ 3 s i = 1 ;
X[441[31= 2;XL441[41= 1;~[44][5]= 1;~[44][6]= l;x[44][7]= 1;
xC451[01= 1.0;
~ [ 4 5 1 [ 1 7 ] = l;x[45][18]= 1;x[45][19]= 1; ~[45][24]= 1;~[45][26]= 1;
x[451[31]= l;x[45][32]= l;x[451[33]= 1;
x[55][0]= 1.0;
x[55][4]= l;x[55][5]= :;x[55]:6]= l ; X : 5 5 ] [ 7 ] = 1 ;
~ [ 5 5 1 [ 1 1 1 = 1 ; ~ [ 5 5 1 [ 1 4 1 = 1; ~ [ 5 5 ] [ 1 8 ] = l;x[55]i21]= 1;
~ [ 5 5 ] [ 2 5 ] = l;x[55][26]= l;x[551[27]= I; x[55][28j= 1 ;
En todas e s t a s figuras la salida dgseada est& dada por
d[i][3] = 1; puesto que s e t r a t a d e l cuarto nodo encendido, ?ara denotar la cuarta figura.
s,571;4:-
-
1.0;x[69![91= 1 ;
~ 1 6 0 1 [ 1 5 ] = 1;~[60][16]= 1;
x[641[0]= 1.0;
~ [ 6 4 1 [ 1 1 = 1 ; ~ [ 6 4 1 [ 2 ] = 1 ; ~ [ 6 4 ] [ 3 ] = l;x[64][4]= 1; x[641[81= 1; ~ [ 6 4 1 [ 1 0 ] = 1;
~ [ 6 4 1 [ 1 5 ] = 1 ; ~ [ 6 4 ] [ 1 6 ] = 1; ~ [ 6 4 1 [ 2 2 1 = 1;
x[651[0]= 1.0;
x[65][17]= 1;
~ [ 6 5 1 [ 2 4 1 = 1 ; ~ [ 6 5 1 [ 2 5 ] = 1; x[65][31]= 1;
~ [ 6 6 1 [ 0 1 = 1.0; x[66][31]= 1;
~[661[371= 1;~[66][38]= 1;~[66][39]= 1;
~ [ 6 7 1 [ 0 ] = 1.0; ~ [ 6 7 1 [ 3 1 ] = 1;
~ [ 6 7 1 [ 3 7 ] = 1; x[67][39]= 1;
~i6~~~431=1;~[67][44]=1;x[67][45]=1;x[67][46]=1;x[67][47]=1;
xC70][0]= 1.0;
x[70][1]= l;x[70![2]= l;x[70][3]= 1;x[70][4]= 1;~[70][51=1; :x[70][6]= i;x[70][7]= 1;
x[701[13]= 1;
x[701[9]= 1;
x[70][17]= 1; x[70][19]= 1;
x[701[25]= 1;
En todas e.stas figuras la salida deseada est6 dada por d[i][4] = 1; puesto que se trata del quinto nodo encendido, para denotar l a quinta figura.
x 1 7 5
l ; x [
;::y5
x t 7 5
7
i
1
[ 2 17 't J i; 1 - i - - 1
-
J.x[78][0]= 1;
x[78][8]= 1; x[?8![11]= 1;
~ [ 7 8 ] [ 1 5 ] = 1 ; x[781[181= 1;
~ [ 7 8 1 [ 2 ] = i;x[?8][3]= 1 ;
~ [ 7 8 ] [ 2 3 ] = ' 1 ; ~ [ 7 8 ] [ 2 4 ] = 1;
~ [ 8 0 1 [ 2 5 ] = 1;
xt80![32]= 1 ;
En todas estas figuras l a salida deseada está dada por d[j1[51 = 1; p u e s t o que se trata del sexto nodo encendido, para denotar la s e x t a figura.
L a entrada que l l e g a a l a capa oculta s e c a l c u l a p o r la f6rmula siguiente:
donde:
X j
-
valor d e l j-simo nocb de entradaWij - valor del peso d e l j-sino nodo de entrada hacia el i-simo nodo de l a capa oculta.
La función utilizada para este calculo e s el sig.:
CalculaEntradaCapa2() /*(oculta)
* /
f o r ( i=l; i<Num- Capa2; i++)
c
{
zz[i]=O.O /*inicializa*/
for(j=O;j<Num-Capal;j++)
z z [ i ] + = x [ n u m ~ e n t J [ j l * W l [ j J ~ i l ; 1
1
La salida de los nodos de la capa oculta se obtiene al aplicar una cierta funcidn F , que se describir& mas adelante. entonces obtenemos:
s;l l z f 7 1 m " A v s i g m c i d e o logística. En este trabajo
11 i ~ s a z ~ x m s , , p o r . ; ~ e l a s unidades de salida son binarias, y esta
fur,ziGr, Limita la salida y e s casi Siestable pero tambi6n es
d e r i v a 5 l e .
Los v a l o r e s d e las unidades d e salida podrán variar en dos estados, ics cuales son: encendido y apagado, se realiza una
funcién d e aproximación puesto que la f u x i 6 n sigmoide limita de
O a 1 (Ver f i g 11). Se usara una aproximaci6n de 0.1 y 0 . 9 .
F i g . 10. Funci6n Sifrnoide.
donde :
W'ki
-
es el & e s o prcveniente del i-6skmo nodo de lacapa o c u l t a con el k-ésimo ncdo d e la capa d e salida.
Zi
-
la salida d e l i-ésimo nodo d e l a capa o c u l t a .ii
Donde F es l a función es la ya d e s c r i ? : ~ .
Los pesos dados inicialmente a la r e d , son m a pri.nsr3
aprcxirnación e irán cambiando c o n f o r m s e entrena l a r e d , :rasra lograr un conjunto d e pesos que sir-vsc ' p a r a r e a l i z a r e l reconocimiento deseado pero a diferencia d e c:ros m 6 t o d c s . z-3 influye el que nuestra primera aproximación s e a buena c; mala, aunque e s t o s pesos deben ser FequelSss y aleatcrics.'
1
Tomado del libro "Redes Neuronales, Algoritmos, APlicacioneS Y técnicas d e programaci6nl1, James A . Freeman/David M. Skapura.
s""i alir. ( t i 3 z ( 1 ) j ;
for(i=@; i<Num..-Ca?al; i++)
for(j=O; jcNum"Capa2; j + + )
W t i ! [ j j = 2 . O * r a n d ( ) i : f i o a t ) M A X I " l . o ;
for(i=0; icNum-Capa2; i++)
for(j=O; j<Num--Capa3; j++)
W2CiIíjl=2.0*rand()/(float)MAXINT-l.O;
E l error básicamente s e calcula realizando la diferencia entre la salida deseada y la salida obtenida por la red, paro en éste trabajo tenemos seis nodos en la capa de salida, por lo cual el error seria el siguiefite para cada unid2.l de salida:
donde :
p - hace referencia al p-ésimo vector de entrenamiento.
k
-
hace referencia al k-ésima unidad de salidadpk- e s el valor de salida deseado
ypk- es la salida obtenida a partir de la k-ésima unidad.
Es l a ecuación que utilizamos para actualizar l o s pesos d e
l a capa de salida.
Ahora p a r a la actualizacibn de los pesos de la capa oculta. Realizamos un procedimiento semejante (Ver anexo 3 ) .
En esta parte es donde se da la retropropagacih, puesto que para realizar la m o d i f i c a c i h de l o s pesas de la capa o c u l t a se, propaga hacia atras los errores de la capa de salida.
Si renombramos, llegamos a una ec. similar a la de l a modificaci6n d e pesos d e l a capa de salida.
A N E X O
Por
al valor
calculos
l o tanta l a magnitud del
cambio
depeso
es
proporcional
del
gradiente negativo.Cabe
hacermencionar que para los
anteriores
serealizan tomando
l a
magnitud.
Entonces
el
g r a d i e n t ede
Ep con r e s p e c t o alos
pesos
( ; l i s t acapa