Documentos de Académico
Documentos de Profesional
Documentos de Cultura
David Martnez Gonzlez Sistemas Expertos e Inteligencia Artificial. 3 I.T.I.G. Curso 2004-05. Universidad de Burgos.
ndice de Contenidos
1. REDES NEURONALES ARTIFICIALES 1.1. Introduccin 1.2. Neuronas naturales 1.3. Neuronas artificiales 1.4. Representaciones dimensionales 1.5. Perceptrn 1.6. Ejemplo sobre un perceptrn con una nica neurona 1.7. Perceptrn multicapa 1.8. Aprendizaje 1.9. Mecanismos de aprendizaje 1.9.1. Supervisado 1.9.2. Con Fortalecimiento 1.9.3. Estocstico 1.9.4. No Supervisado 1.9.4.1. Hebbiano 1.9.4.2. Competitivo 2. MAPAS AUTOORGANIZADOS (SOM) 2.1. Introduccin 2.2. Arquitectura de las SOMs 2.3. Mtodo de Aprendizaje (algoritmo winner-take-all) 2.4. Ejemplo sobre el algoritmo winner-take-all 2.5. Obtencin de mapas. Funcin de vecindad. 2.6. Tipos de funcin de vecindad. 2.7. Variacin de la funcin de vecindad y de la tasa de aprendizaje 2.8. Algoritmo de aprendizaje 2.9. Simulacin mediante ordenador 2.10. Variaciones de las SOMs 2.11. Aplicaciones 2.12. Herramientas software de simulacin de SOMs 3. EJEMPLO DE APLICACIN DE LAS SOMs: FACERET 3.1. Introduccin 3.2. Funcionamiento de FACERET 3.3. Mapas Autoorganizados Arbreos (TS-SOM) 3.4. Sistemas de seleccin 3.5. Simulaciones 4. BIBLIOGRAFIA Y OTROS RECURSOS
1 1 1 2 3 4 5 6 7 8 8 8 9 9 9 10 12 12 13 14 16 18 19 20 21 22 23 24 24 27 27 27 29 31 31 33
ndice de Figuras
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Estructura de una neurona natural Similitudes entre neuronas naturales y artificiales Estructura de una neurona artificial Neurona reconociendo la funcin lgica AND. Representacin grfica del ejemplo sobre el perceptrn Funcin lgica XOR Perceptrn multicapa Mapa del crtex cerebral. Mapa fontico del idioma finlands reconocido por una SOM. Arquitectura de una SOM Ejemplo Aprendizaje y sus fases Ejemplo Proceso de aprendizaje SOM reconociendo los colores rojo, verde y azul. Tipos de funcin de vecindad Regiones delimitadas por una funcin rectangular o de tipo pipa Simulacin por ordenador del algoritmo de aprendizaje. Estructura de FACERET Arquitectura de un mapa autoorganizado arbreo o TS-SOM Ejemplo de ubicacin ordenada de caras en el nivel ms bajo de una estructura TS-SOM Matriz de seleccin asociada a un nivel de la TS-SOM Simulacin de una bsqueda en FACERET 1 2 2 4 6 7 7 12 13 14 16 18 19 20 20 22 28 29 30 31 32
ndice de Tablas
1 2 3 4 5 Funciones de activacin Ejemplo sobre perceptrn Funcionamiento del aprendizaje hebbiano Datos de entrada y salida esperada sobre el ejemplo del algoritmo winner-take-all Datos obtenidos al aplicar el algoritmo winner-take-all 3 5 10 16 17
1. REDES NEURONALES ARTIFICIALES 1.1. Introduccin El estudio de las redes neuronales artificiales se engloba dentro de la rama subsimblica de la inteligencia artificial, dicha rama se dedica al estudio y desarrollo de simulaciones de los elementos inteligentes de la naturaleza (cerebros) con el fin de que de forma espontnea estas simulaciones (redes neuronales) se comporten de forma inteligente. As pues partiendo del estudio biolgico del cerebro humano o animal las redes neuronales intentan simular su estructura y funcionamiento. Si en un cerebro el elemento bsico es la neurona, en una red neuronal el elemento bsico es la neurona artificial, debemos conocer el funcionamiento de la neurona natural para simularlo en la neurona artificial. 1.2. Neuronas naturales La neurona natural est formada por tres partes:[4] Soma o ncleo celular, es el ncleo de la clula que dirige la actividad de la misma. Axn, es una prolongacin muy larga que permite transmitir el impulso elctrico producido por la soma a otras neuronas. Dendritas, son pequeas prolongaciones mediante las cuales se reciben los impulsos elctricos de otras neuronas.
La conexin entre axones y dendritas por la que se permite la comunicacin entre neuronas se llama sinapsis. En una misma neurona puede haber sinapsis ms desarrolladas que otras, las dendritas con sinapsis ms desarrolladas recibirn ms veces impulsos elctricos que las otras. Una neurona es sometida a travs de sus dendritas a muchos estmulos elctricos, cuando la suma de todos los estmulos elctricos recibidos de sus dendritas es lo suficientemente grande se produce la activacin de la neurona y su consiguiente emisin elctrica a travs de su axn. De esta forma una neurona natural es un sistema que procesa varias entradas que le llegan a travs de las dendritas, las suma y si la suma supera un umbral se activa y produce una salida que la lleva al axn, y este a las siguientes neuronas.
-1-
1.3. Neuronas artificiales Una vez estudiada en profundidad la estructura y funcionamiento de la neurona natural podemos simularla en un elemento de proceso que llamaremos neurona artificial (modelo de McCulloch-Pitts)[6] y que podemos definir como un dispositivo que a partir de un conjunto de entradas xi, i=1,..n (o vector x), genera una nica salida y (binaria). Cada entrada xi lleva asociada un peso wi que representa la importancia que le damos a esa entrada (el desarrollo de la sinapsis), por lo tanto tambin tenemos como entrada el vector w. Adems necesitamos conocer el umbral por el que se activar o no la neurona. As tenemos como entradas: El vector x que representa las entradas. El vector w que representa los pesos de las entradas El umbral de activacin de la neurona Se produce una nica salida y como resultado de la siguiente frmula: y = f(x.w ) = f ( xi.wi ) es decir, comparamos la suma de los productos de las entradas por sus pesos (suma ponderada) y la comparamos con el umbral de activacin, si la resta da un resultado positivo la neurona se activa y si es negativo no se activa.
El umbral puede ser considerado como una entrada ms, x0, en la que su peso w0 tiene valor -1, as la frmula se simplifica de esta manera: y = f(x.w) = f ( xi.wi)
La salida y puede tomar diversos valores (segn sus diversas funciones de activacin f(x)):[6] Neurona de McCulloch-Pitts: tiene entradas binarias (1,0) y la funcin de activacin es el escaln definido entre 0 y 1. y = 1 si se supera el umbral (si x>0), y = 0 si no se supera. -2-
En otros modelos puede tomar el valor 1 si se supera el umbral y -1 si no se supera. Neurona sigmoidea: las entradas pueden ser de cualquier tipo, continuas o discretas, pero la salida es continua con la funcin de activacin de tipo sigmoide: 1 f ( x) = 1 + e ax Existe otra variante trigonomtrica en el que la funcin de activacin es una funcin trigonomtrica como la tangente hiperblica. f ( x) = tanh( x) Por ltimo tambin se puede utilizar la funcin identidad f(x)=x
Sigmoidea
Tangente hiperblica
f(x)=x
La red neuronal debe ser sometida a un proceso de aprendizaje antes de su utilizacin, en dicho proceso los pesos de cada una de sus neuronas se modifican para dar ms relevancia a unas entradas frente a otras y conseguir la especializacin de cada neurona que forma la red neuronal. Este ajuste de los pesos debe hacerse basndose en alguna regla de aprendizaje, que se plasma en un algoritmo de aprendizaje, el cual determina el procedimiento numrico de ajuste de los pesos.
-3-
x1w1 + x2w2 - = 0 considerando x1 y x2 como incgnitas y w1, w2 y como valores fijos tenemos la ecuacin de una recta en la que al modificar los pesos modificamos la inclinacin de la recta y modificando el umbral movemos la recta acercndola o alejndola del centro del eje de coordenadas
2
0 -2 -1 0 1 2
-1
-2
Esta recta nos determina el lmite por el que la salida se considera correcta para unos valores de las entradas, por ejemplo para cualquier combinacin de entradas que den un punto que se encuentre a la izquierda de la recta se considera que la salida es correcta, la neurona se activa, si el punto se encuentra a la derecha la neurona no se activa. Si la recta divide el espacio dejando a un lado todos los crculos rellenos y a otro lado todos los crculos vacos, hemos hallado los pesos y el umbral correctos por lo que la neurona estar bien entrenada. Si en lugar de tener un espacio de dos dimensiones (dos entradas) tenemos uno de tres dimensiones (tres entradas) en lugar de una recta tendremos un plano que dividir el espacio en dos subespacios.
1.5. Perceptrn
Es una aplicacin prctica de las neuronas artificiales que permite el reconocimiento de imgenes y la resolucin de problemas sencillos. En este modelo los pesos ya no estn restringidos a valores 1 o -1, su valor se modifica a lo largo del aprendizaje a travs de la frmula: wi = .xip (tp op) Donde es el factor de aprendizaje, un nmero pequeo que se hace ms pequeo a lo largo del aprendizaje tp es el vector que representa la salida esperada
-4-
op es el vector que representa la salida obtenida: op = w.x xip es el vector entrada La diferencia entre datos esperados y datos obtenidos representa el error que queremos minimizar, su decremento marca la convergencia hacia los datos esperados a travs de la modificacin de los pesos en cada iteracin. wij(t) = wij(t-1) + wij Algoritmo de aprendizaje: El experimento comienza con unos valores aleatorios para los pesos Se selecciona un vector de entrada del que conocemos la salida deseada. Se calcula la salida segn los pesos actuales. Si la salida es correcta se vuelve al paso 2, sino se modifican los pesos.
La neurona se activar cuando la venta sea posible. Utilizamos los pesos y el umbral: w1 = 0.5 w2 = 0.5 = 2.9 y renombramos los tipos de clientes A, B y C por 3, 2 y 1 para poder operar con ellos, aplicamos la frmula y = f(x.w) = f ( xi.wi) y obtenemos: 1*0.5 + 3*0.5 = 2 < 2.9 NO 2*0.5 + 3*0.5 = 2.5 < 2.9 NO 3*0.5 + 3*0.5 = 3 > 2.9 SI -5-
4*0.5 + 3*0.5 = 3.5 > 2.9 SI 5*0.5 + 3*0.5 = 4 > 2.9 SI 1*0.5 + 2*0.5 = 1.5 < 2.9 NO 2*0.5 + 2*0.5 = 2 < 2.9 NO 3*0.5 + 2*0.5 = 2.5 < 2.9 NO 4*0.5 + 2*0.5 = 3 > 2.9 SI 5*0.5 + 2*0.5 = 3.5 > 2.9 SI 1*0.5 + 1*0.5 = 1 < 2.9 NO 2*0.5 + 1*0.5 = 1.5 < 2.9 NO 3*0.5 + 1*0.5 = 2 < 2.9 NO 4*0.5 + 1*0.5 = 2.5 < 2.9 NO 5*0.5 + 1*0.5 = 3 > 2.9 SI En la siguiente grfica se muestra la representacin grfica del problema siguiendo la representacin explicada en el apartado anterior.
En el applet que acompaa este documento se muestra una animacin sobre como se calculan los pesos tomando como partida unos pesos aleatorios. En la consola de Sun Java se muestran en las cuatro primeras columnas las posiciones del primer punto y del ltimo de la recta, la quinta y sexta columna son los pesos w1 y w2 respectivamente y la sptima y octava los incremento sobre w1 y w2 en cada iteracin.
-6-
0 -2 -1 0 1 2
-1
-2
Estos problemas se pueden resolver con el perceptrn multicapa en el que tenemos tres tipos de capas de neuronas: capa de entrada, una o varias capas ocultas y capa de salida.
La activacin de las neuronas se propaga entre las neuronas de las distintas capas, una neurona de la capa de entrada al activarse puede activar otra de la capa oculta y esta si se activa puede activar otra de la capa de salida. Los errores detectados en la salida permiten modificar los pesos de las neuronas de todas las capas proporcionalmente hasta llegar a las neuronas de la capa de entrada a travs de un mtodo de retropropagacin (backpropagation) del error.
1.8. Aprendizaje
El aprendizaje de una red neuronal consiste en la modificacin de los pesos de sus neuronas basndose en la ley de Hebb: cuando una neurona activa a otra su sinapsis queda reforzada.
-7-
Mediante la modificacin de los pesos se produce la especializacin de las neuronas de tal forma que las redes neuronales adquieren facultades de clasificacin e identificacin de patrones. Pero ms relevante que esto es la capacidad de generalizacin, la red debe ser capaz al finalizar su entrenamiento de generalizar sus resultados, lo que le faculta para identificar o clasificar cualquier cosa que sea similar al patrn aprendido, no slo los objetos particulares con los que ha aprendido en la fase de entrenamiento. Una vez entrenada, la red congela sus pesos y funcionar en modo de recuerdo o ejecucin: se le suministra una entrada y la red responde con una salida.
-8-
1.9.3. Estocstico
Consiste bsicamente en realizar cambios aleatorios en los valores de los pesos de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y de distribuciones de probabilidad. En pocas palabras el aprendizaje consistira en realizar un cambio aleatorio de los valores de los pesos y determinar la energa de la red. Si la energa es menor despus del cambio, es decir, si el comportamiento de la red se acerca al deseado, se acepta el cambio; si, por el contrario, la energa no es menor, se aceptara el cambio en funcin de una determinada y preestablecida distribucin de probabilidades.
1.9.4. No supervisado
Slo se aplica a la red neuronal los datos de entrada, sin indicarle la salida esperada. La red neuronal es capaz de reconocer algn tipo de estructura en el conjunto de datos de entrada (normalmente redundancia de datos) y de esta forma se produce el autoaprendizaje. Durante el proceso de aprendizaje la red autoorganizada debe descubrir por s misma rasgos comunes, regularidades, correlaciones o categoras en los datos de entrada, e incorporarlos a su estructura interna de conexiones. Se dice, por tanto, que las neuronas deben autoorganizarse en funcin de los estmulos (datos) procedentes del exterior. Algunos modelos que implementan este tipo de aprendizaje son: Mapas autoorganizados PCA Redes de Hopfield Aplicaciones en problemas sobre: Anlisis y comprensin de datos Agrupamiento Memoria asociativa En cuanto a los algoritmos de aprendizaje no supervisado, en general se suelen considerar dos tipos, que dan lugar a los siguientes aprendizajes: Aprendizaje hebbiano. Aprendizaje competitivo.
1.9.4.1. Hebbiano
Esta regla de aprendizaje es la base de muchas otras, la cual pretende medir la familiaridad o extraer caractersticas de los datos de entrada. El fundamento es una suposicin bastante simple: si dos neuronas Ni y Nj toman el mismo estado simultneamente (ambas activas o ambas inactivas), el peso de la conexin entre ambas se incrementa. Las entradas y salidas permitidas a la neurona son: {-1, 1} o {0, 1} (neuronas binarias). Esto puede explicarse porque la regla de aprendizaje de Hebb se origin a partir de la neurona biolgica clsica, que solamente puede tener dos estados: activa o inactiva. -9-
Este aprendizaje se basa en una simulacin matemtica de la ley de Hebb: cuando una neurona activa a otra su sinapsis queda reforzada. Veamos como funciona: Supongamos que dos neuronas i y j estn conectadas de tal forma que la salida de i es la entrada de j. Definimos el ajuste de los pesos de esta conexin como: [2] w=c*(oi*oj) Donde c es el factor de aprendizaje y es constante, oi es el signo (positivo o negativo) de la salida de la neurona i y oj es el signo de la salida de la neurona j. En la siguiente tabla podemos ver que cuando ambas son positivas o negativas w es positivo y se produce el refortalecimiento de la sinapsis de ambas neuronas. Cuando w es negativo se inhibe la conexin entre las dos neuronas. Oi + + En general lo podemos expresar as: wij = *(xj*yi) Siendo el factor de aprendizaje e yi = xj.wij Oj + + Tabla 3. Funcionamiento del aprendizaje hebbiano
Oi*Oj + +
1.9.4.2. Competitivo
En la red neuronal tiene lugar una competicin entre las neuronas de forma que la neurona que gana la competicin se activar, las dems neuronas no se activan. La competicin la gana la neurona cuyo vector de pesos sea ms parecido al vector entrada. En el aprendizaje competitivo simple se encuentra una neurona ganadora y se actualizan los pesos nicamente de esa neurona para hacer que tenga ms posibilidades para ganar la prxima vez que un vector de entrada similar sea mostrado a la red. De esta forma se produce su especializacin en el reconocimiento de este tipo de entradas al activarse nicamente ante una entrada similar. Se puede presentar un problema en este tipo de aprendizaje: algunas neuronas pueden llegar a dominar el proceso y ganar siempre mientras otras neuronas no ganan nunca (neuronas muertas). Para evitar esto nos aseguramos de que los pesos son actualizados y normalizados en cada iteracin. Este aprendizaje se suele presentar en las neuronas de la capa de salida, a este tipo de neuronas se las llama el-ganador-toma-todo (winner-take-all)
-10-
Se produce una organizacin en funcin de la estructura de los datos de la entrada. Este mtodo intenta asegurar que los elementos que pertenecen al mismo grupo sean lo ms similares posible entre s y lo ms diferentes posibles a elementos de otros grupos. El objetivo de este tipo de aprendizaje es categorizar conjuntos de datos estudiando su estructura y clasificndolo en grupos.
-11-
Figura 8. Mapa del crtex cerebral. Podemos distinguir las siguientes reas: motoras (4, 6, 8), visuales (17, 18, 19) y auditivas (41, 42) situadas de forma ordenada en el crtex cerebral. [3]
Aunque en gran medida esta organizacin neuronal est predeterminada genticamente, es probable que parte de ella se origine mediante el aprendizaje. Esto sugiere, por tanto, que el cerebro podra poseer la capacidad inherente de formar mapas topolgicos de las informaciones recibidas del exterior. [9] Por otra parte, tambin se ha observado que la influencia que una neurona ejerce sobre las dems es funcin de la distancia entre ellas, siendo muy pequea cuando estn muy alejadas y muy grande cuando estn muy cerca la una de la otra.
-12-
Basndose en estas ideas se desarrollaron los mapas autoorganizados, de forma que cuando un conjunto de datos de entrada se presenta a la red, los pesos de las neuronas se adaptan de forma que la clasificacin presente en el espacio de entrada se preserva en la salida. Bsicamente las SOMs pueden cumplir con dos funcionalidades: Actuar como clasificadores, encontrando patrones en los datos de entrada y clasificndolos en grupos segn estos patrones. Representar datos multidimensionales en espacios de mucha menor dimensin, normalmente una o dos dimensiones, preservando la topologa de la entrada. Esto es muy til cuando se trabaja con espacios multidimensionales (ms de tres dimensiones) que el ser humano no es capaz de representar, como por ejemplo en problemas fsicos en los que intervienen numerosas variables como temperatura, presin, humedad, etc. Un ejemplo de aplicacin muy conocido es el reconocimiento de fonemas de un lenguaje (en este caso el finlands). Tras el aprendizaje obtenemos un mapa fontico en el que cada neurona se ha especializado en reconocer un tipo de fonema, y en el que sonidos similares o pequeas variaciones quedan representados sobre neuronas vecinas.
Figura 9. Mapa fontico del idioma finlands reconocido por una SOM. [1]
De esta forma vemos como el mapa autoorganizado mimetiza con la especializacin de sus neuronas la realidad observada, el orden que existe entre los fonemas. Hay que destacar, adems, el parecido del mapa fontico con los mapas fonotpicos del crtex temporal del cerebro.
-13-
recibir y transmitir a la capa de salida la informacin procedente del exterior. La capa de salida (formada por M neuronas) es la encargada de procesar la informacin en paralelo y formar el mapa de rasgos. Normalmente, las neuronas de la capa de salida se organizan en forma de mapa bidimensional como se muestra en la figura 1, aunque a veces tambin se utilizan capas de una sola dimensin (cadena lineal de neuronas) o de tres dimensiones (paraleleppedo).
La capa de entrada tendr tantas neuronas como dimensiones tenga el espacio multidimensional de entrada (cuatro en este caso), cada neurona transmite el valor de la dimensin que representa a todas las neuronas de la capa de salida (a travs de las conexiones representadas por los pesos wij), y de esta forma cada neurona de la capa de salida recibe un vector de entrada x (de cuatro componentes en este caso) con los valores de las cuatro dimensiones percibidas por la capa de entrada, y produce una nica salida y. Entre las neuronas de la capa de salida, puede decirse que existen conexiones laterales de excitacin e inhibicin implcitas, pues aunque no estn conectadas, cada una de estas neuronas va a tener cierta influencia sobre sus vecinas. Esto se consigue a travs de un proceso de competicin entre las neuronas y de la aplicacin de una funcin denominada de vecindad como veremos a continuacin.
-14-
ser mnima), la neurona poseedora de esos pesos se declara neurona ganadora o BMU (Best Matching Unit). Para calcular las distancias entre x y w se utiliza: [6] Producto escalar o correlacin (xwi donde i indica el n de neurona), dos vectores sern ms similares cuanto mayor sea su correlacin. Costosa cuando el tamao de los vectores es grande. Producto escalar normalizado (regla del coseno), medida independiente del tamao de los vectores. xwi = cos( x, wi ) || wi |||| x || Distancia eucldea, dos vectores sern ms similares cuanto menor sea su distancia.
D( x, wi ) =
(w
k
ik
xk ) 2
Al activarse nicamente la neurona BMU estamos potenciando que esa neurona ganadora se est especializando en activarse cuando le lleguen entradas de ese tipo. El vector de pesos asociado a la neurona vencedora se modifica de manera que se parezca un poco ms al vector de entrada. De este modo, ante el mismo patrn de entrada, dicha neurona responder en el futuro todava con ms intensidad. As establecemos la siguiente regla de aprendizaje wij = * (xj wij), para i=c wij = 0, para ic donde c indica la neurona BMU y es una constante llamada tasa de aprendizaje que tendr un valor pequeo para que los pesos de la red no oscilen demasiado entre iteraciones. Como: wij = * (xj wij) = * xj - * wij Podemos observar que en cada iteracin se elimina un cierta fraccin del antiguo vector de pesos w (lo que implica un cierto olvido), el cual es sustituido por una fraccin del vector actual x, de modo que en cada paso el vector de pesos de la ganadora w se parece un poco ms al vector de entradas x que la hace ganar. [1] wij para la neurona ganadora va a ser un valor muy pequeo porque la diferencia (xj wij) es la mnima posible de la red neuronal, de esta forma apenas variamos los pesos de
-15-
la neurona ganadora. Si wij tiene un valor grande supone que nuestra red no est apenas entrenada y que es necesario hacer retoques importantes en la misma. Este proceso se repite para numerosos patrones de entrada, de forma que al final cada neurona se especializa en reconocer cada clase en las que est dividido el espacio de entrada. La siguiente interpretacin geomtrica (Masters, 1993) del proceso de aprendizaje puede resultar interesante para comprender la operacin de la red SOM. [1] El efecto de la regla de aprendizaje no es otro que acercar de forma iterativa el vector de pesos de la neurona de mayor actividad (ganadora) al vector de entrada. En la figura se muestran en un espacio bidimensional tres clusters (grupos) correspondientes a tres neuronas que deben terminar reconociendo cada uno su correspondiente cluster. Los lmites de los clusters estn dibujados en negro. Al principio del entrenamiento los vectores de pesos de las tres neuronas (representados por vectores de color rojo) son aleatorios y se distribuyen por la circunferencia. Conforme avanza el aprendizaje, stos se van acercando progresivamente a las muestras procedentes del espacio de entrada, para quedar finalmente estabilizados como centroides de los tres clusters.
x1 1.0 9.4 2.5 8.0 0.5 7.9 7.0 2.8 1.2 7.8
x2 1.0 6.4 2.1 7.7 2.2 8.4 7.0 0.8 3.0 6.1
Salida 1 -1 1 -1 1 -1 -1 1 1 -1
-16-
Queremos entrenar una red neuronal sencilla formada por slo dos neuronas (A y B) que van a recibir ambas las entradas x1 y x2. Inicializamos los vectores de pesos de cada neurona con los valores (7,2) y (2,9) correspondientes a los vectores w1 y w2 de las neuronas A y B respectivamente. El entrenamiento comienza con la introduccin en la red del primer par de datos. Utilizaremos la distancia eucldea como medida de la distancia entre los pesos de las neuronas y la entrada para determinar la neurona ganadora. Calculamos la distancia respecto de la neurona A: D((1,1),(7,2))=((1-7)2+(1-2)2)=6.08 respecto de la neurona B: D((1,1),(2,9))= ((1-2)2+(1-9)2)=8.06 como podemos observar la distancia menor corresponde a la neurona A, esta neurona es la ganadora de la competicin. Calculamos el incremento de pesos con el que vamos a premiar a la neurona ganadora, aplicando la regla wij = * (xj wij) donde tomamos un = 0.5 w = 0.5((1,1)-(7,2))=(-3,-0.5) Actualizamos los pesos de la neurona A (los de la neurona B los dejamos como estn): w(t) = w(t-1) + w = (7,2) + (-3,-0.5) = (4,1.5) Procesamos las restantes entradas de la misma manera y obtenemos la siguiente tabla:
D(x,B) 7.75 6.92 6.14 6.96 5.93 2.7 7.74 6.82 2.5
BMU A A A A B B A A B
w(t)A w(t)B (6.7,4) (2,9) (4.6,3.5) (2,9) (6.3,5.6) (2,9) (3.4,3.9) (2,9) (3.4,3.9) (4.9,8.7) (3.4,3.9) (6,7.85) (3.1,2.4) (6,7.85) (2.15,2.7) (6,7.85) (2.15,2.7) (6.9,7)
Al final del proceso obtenemos los pesos: wA = (2.15,2.7) wB = (6.9,7) En el siguiente grfico se representan los datos de entrada (con un rombo) junto con los pesos inicializados aleatoriamente (cuadrados) y los mismos pesos al finalizar el entrenamiento (crculos). Se puede observar como los datos de entrada se distribuyen en dos regiones del espacio bidimensional, cada regin representa una clase que nuestra red neuronal es capaz de reconocer a travs de sus dos neuronas, una para cada clase.
-17-
10
2; 9 7,9; 8,4
2,5; 2,1
7; 2
1; 1 2,8; 0,8
0 0 1 2 3 4 5 6 7 8 9 10
Observamos como partiendo de unos pesos inicializados aleatoriamente y una vez terminado el entrenamiento, los pesos se aproximan cada uno a la regin del espacio de datos de entrada que le corresponde, de forma que podemos concluir que el entrenamiento ha sido satisfactorio. La neurona A est especializada en clasificar puntos de la regin situada en el extremo inferior izquierda del espacio, mientras que la neurona B clasificar puntos de la regin situada en el extremo superior derecha.
Esta frmula se aplicar a todas las neuronas de la red y no slo a la ganadora como ocurra antes. En este modelo seguiremos llamando neurona ganadora a la que tenga mnima diferencia entre sus pesos y la entrada. De esta forma los pesos de todas las neuronas se modificarn en funcin de su cercana respecto de la ganadora, los pesos de las neuronas ms cercanas sufrirn un incremento mayor que los pesos de las neuronas ms lejanas.
Figura 13. SOM reconociendo los colores rojo, verde y azul. A medida que nos acercamos a las neuronas ganadoras de cada clase el color se vuelve ms intenso.
Con esto conseguimos que los pesos de las neuronas cercanas a la ganadora sean muy similares a los pesos de la ganadora y esta similitud ir disminuyendo progresivamente a medida que nos alejemos de la neurona BMU. Esto es lo que permite formar una ordenacin topolgica de la red neuronal dividiendo sta en regiones y mimetizando as la topologa de la realidad de la que se toman los datos. La utilizacin de la funcin de vecindad en el modelo de mapas autoorganizados aporta respecto del modelo competitivo sencillo dos ventajas adicionales: el ritmo efectivo de convergencia se mejora y el sistema es ms robusto frente a variaciones en los valores iniciales de los pesos.
-19-
Existen otros tipos, como la funcin rectangular (o de tipo escaln) o la funcin pipa con la que se obtienen mapas cuyas regiones tienen bordes ntidos alrededor de las neuronas ganadoras.
Figura 15. Regiones delimitadas concntricamente a la neurona ganadora por una funcin rectangular o de tipo pipa. [3]
Se suele utilizar mucho tambin la diferencia de gaussianas (sombrero mejicano), con la que se penaliza a las neuronas que se encuentran a una distancia media a la neurona ganadora.
-20-
donde R0 representa el radio inicial y tiene un valor grande y Rf el radio final y tiene un valor igual a 1, t representa la iteracin y tR el nmero de iteraciones para alcanzar Rf Tambin suele variar a lo largo del proceso la tasa de aprendizaje () partiendo con un valor alto (con el que la modificacin de los pesos es mayor) y disminuyendo linealmente hacia un valor bajo. A lo largo del proceso de aprendizaje modificamos en cada iteracin un poco menos los pesos respecto de la anterior. Podemos aplicar la ecuacin anterior a la tasa de aprendizaje obteniendo una funcin lineal de decrecimiento: t (t ) = o + ( f 0 ) t o bien podemos utilizar la siguiente funcin exponencial obteniendo un decrecimiento ms rpido: f (t ) = 0 0
t t
Con la variacin de estos dos parmetros se consigue favorecer (y hacer ms rpida) la convergencia de los pesos creando as una SOM eficiente.
-21-
Figura 16. Simulacin por ordenador del algoritmo de aprendizaje. (a) valores iniciales aleatorios, (b) red despus de 50 iteraciones, (c) red despus de 1000 iteraciones, (d) red despus de 10000 iteraciones.
En la figura 16 se muestran cuatro etapas del entrenamiento. En la figura 16a se muestra la red inicializada a valores aleatorios, las siguientes figuras muestran los valores de los pesos de las neuronas representados por puntos, las lneas representan la conexin entre neuronas vecinas. En las figuras 16b y 16c podemos ver como el mapa se despliega partiendo de un desorden inicial (fase de ordenamiento) y se converge a un orden que podemos observar en la figura 16d (fase de convergencia, el mapa se propaga para cubrir todo el espacio de entrada).
-22-
Al finalizar el entrenamiento la distribucin de las neuronas se aproxima al vector de entrada, exceptuando el efecto de los bordes (que veremos en el siguiente apartado).
-23-
Red LVQ (Learning Vector Quantization) Se trata de un modelo supervisado, compuesto por una capa simple de neuronas de Kohonen sin relaciones de vecindad, que en ocasiones se emplea como procedimiento supervisado de ajuste fino del mapa de Kohonen. Este modelo, utilizado la clasificacin de patrones, se basa en premiar a aquellas neuronas que clasifican correctamente un determinado patrn, y castigar a las que realizan una clasificacin errnea, modificando sus pesos en sentido contrario.
2.11. Aplicaciones
Las aplicaciones de los mapas autoorganizados se dividen en dos grandes grupos: Clasificacin de datos en clases. Visualizacin de datos multidimensionales a travs de la reduccin de la dimensionalidad. Con estos dos posibles usos de las SOMs tenemos las siguientes reas de aplicacin: Anlisis y minera de datos. Bioinformtica, anlisis de secuencias genticas. Reconocimiento del habla, modelado del lenguaje natural. Control industrial, monitorizacin y diagnosis de procesos y plantas industriales. Aplicaciones mdicas: diagnosis, creacin de prtesis, modelado de perfiles de pacientes. Telecomunicaciones, distribucin de recursos en la red, procesado de seales. Deteccin de intrusos en sistemas informticos, clasificacin de ataques en los SDI (Sistemas de Deteccin de Intrusos). Clasificacin de nubes en imgenes por satlite Investigacin sobre desordenes del sueo. Anlisis de seales elctricas del cerebro. Organizacin y recuperacin de grandes colecciones de textos (WEBSOM) Anlisis y visualizacin de grandes colecciones de datos estadsticos. Etc
-24-
Algunos programas importantes del paquete: o lininit y randinit: inicializan los pesos del mapa. o vsom : realiza el entrenamiento de los mapas autoorganizados. o qerror: calcula el error cuantificado. o umat: genera una representacin en postscript del mapa. o visual: devuelve las coordenadas de las neuronas BMU encontradas Se suelen utilizar scripts para trabajar con las funciones el paquete. SOM ToolBox (Helsinki University of Technology)[11]. Constituye una librera de funciones para Matlab que implementan procedimientos para crear y manipular redes SOM. Utilizan la potencia de clculo y facilidad de programacin de la herramienta matemtica Matlab para la simulacin de SOMs. Los datos de entrada para el entrenamiento de la SOM se pueden introducir en un fichero de texto o directamente en la consola de Matlab. Algunas de las funciones ms interesantes son: o som_read_data: lee un fichero de datos ASCII en el formato definido para los ficheros de datos para SOM_PAK o som_data_struct: genera una estructura de datos a partir de unos datos de entrenamiento. o som_normalize: normaliza una estructura de datos. o som_randinit: inicializa una SOM con valores aleatorios. o som_make: crea, inicializa y entrena la SOM con valores por defecto que consigue de otras funciones. Recibe como parmetro obligatorio el conjunto de datos necesario para realizar el entrenamiento. o som_seqtrain y som_batchtrain: entrena una red SOM pasada por parmetro utilizando para ello un conjunto de datos tambin pasado por parmetro. La primera utiliza un algoritmo secuencial, mientras que la segunda uno en modo batch. o som_bmus: encuentra la neurona BMU. Recibe como parmetros la red SOM y los datos de entrada necesarios para la bsqueda o som_show: visualiza una red SOM pasada por parmetro. En el modo de operar con SOM Toolbox se suelen seguir los siguientes pasos: 1. construir el conjunto o estructura de datos de entrenamiento 2. normalizarlo 3. crear y entrenar el mapa utilizando los datos normalizados 4. visualizar el mapa 5. analizar los resultados NeuroSolutions [12]. Conjunto de herramientas para la simulacin de redes neuronales en entorno visual. Adems de otros tipos de redes (como perceptrones multicapa), se pueden simular redes SOM. Herramientas: o NeuralBuilder: asistente que facilita la creacin de un red SOM en unos pocos pasos en los que se solicita al usuario: el fichero con los datos de entrenamiento y con los datos esperados, el error con el que el entrenamiento se parar, el nmero de capas ocultas de la red y sus dimensiones (cantidad de neuronas), las reglas de aprendizaje y modos de propagacin de las neuronas, el nmero mximo de iteraciones del entrenamiento y el modo en el que se desea visualizar cada elemento del entrenamiento. A continuacin construye la red neuronal y muestra en un
-25-
grfico su estructura. Apoyado en grficos y hojas de datos se puede observar el entrenamiento. o NeuroSolutions for Excel. Conjunto de funcionalidades integradas en la hoja de clculo MS Excel que permiten desde dicho programa procesar y analizar datos, adems de crear grficos y redes neuronales a partir de los datos introducidos en la hoja de clculo. o NeuralExpert. Asistente muy sencillo de manejar que permite seleccionar entre resolver cuatro tipos de problemas: clasificacin, aproximacin, prediccin y clustering de datos. Si seleccionamos clasificacin podemos crear una red neuronal en 8 sencillos pasos.
-26-
3. EJEMPLO DE APLICACIN DE LAS SOMs FACERET: SISTEMA DE ADMINISTRACIN Y BSQUEDA INTELIGENTE DE CARAS EN BASES DE DATOS DE IMGENES.
ADAPTADO Y RESUMIDO DE [13] Y [14] INVESTIGACIN Y ARTICULOS ORIGINALES OBRA DE:
Javier Ruiz del Solar Profesor Asistente Depto. de Ingeniera Elctrica, U. de Chile. Ingeniero Civil Electrnico, Universidad Tcnica Federico Santa Mara. Chile Dr. Engineer, Technical University of Berlin, Germany Pagina personal: http://www.cec.uchile.cl/~aabdie/jruizd/ Pablo Navarrete Ingeniero Civil Electricista, Universidad de Chile 3.1. Introduccin
El sistema FACERET (FACE RETrieval) es un sistema formado por una TS-SOM (que explicaremos ms adelante) y una base de datos donde almacenamos gran nmero de fotografas de caras de personas. El sistema permite buscar y localizar la cara de una persona dentro de una base de datos con muchas imgenes de caras, recorriendo el mnimo de imgenes posibles (mediante al uso de la TS-SOM). Este sistema se puede aplicar en usos policiales en los que es necesario identificar el sospechoso de un delito y en el que los testigos del delito no pueden recordar con exactitud los rasgos de la cara del delincuente, tan solo tienen un recuerdo, pero no una imagen ntida. El sistema presenta iterativamente al usuario una serie de caras, en cada iteracin el usuario selecciona las caras que ms parecido encuentra con la del delincuente, hasta que (si se produce convergencia) se le muestra la fotografa del presunto delincuente, finalizando la bsqueda con xito. En cada nueva iteracin la seleccin realizada por el usuario en la iteracin anterior es relevante para determinar las imgenes a mostrar en la iteracin. Este proceso de bsqueda se llama retroalimentacin de relevancia (Relevance Feedback). Durante este proceso iterativo se descartan una gran cantidad de imgenes (el espacio de bsqueda disminuye en cada iteracin) de forma que la bsqueda se puede conseguir mucho ms rpidamente que con una bsqueda secuencial.
-27-
La informacin que obtiene el sistema en cada iteracin del usuario consiste en valores binarios, parecido o no parecido, asociados a cada cara mostrada al usuario. A partir de esta informacin el sistema debe determinar un nuevo grupo de fotografas a mostrar al usuario, de forma que se reduzca el espacio de bsqueda y se asegure la convergencia a la cara buscada. Para conseguir esto es necesario: Comprender los criterios utilizados por los humanos para definir parecidos entre caras. En este punto se utiliza el Anlisis de Componentes Principales (PCA) para obtener vectores de caractersticas (descriptores) de las imgenes de caras y el uso de Distancia Euclidiana como criterio de similitud entre estos vectores o descriptores. Un ordenamiento de la base de datos para seleccionar grupos de imgenes similares a la cara buscada. Lo cual se consigue a travs de las TS-SOM que pasamos a exponer en el siguiente apartado.
-28-
A medida que se profundiza en la estructura del rbol las neuronas de cada nivel tiene una especializacin mayor en reconocer patrones que las del nivel anterior. De esta forma la neurona raz tendr unos pesos que permitirn su activacin con suficiente facilidad, la activacin de la neurona provocar la comunicacin de esta con las del nivel inferior. Una o varias de estas neuronas se activarn en funcin de su especializacin. Cada una de estas neuronas gobierna una regin de neuronas en el nivel siguiente, de modo que su activacin provoca la comunicacin con la regin correspondiente, descartndose la comunicacin con el resto de regiones. A medida que nos adentramos en la estructura del rbol se activan nicamente pequeas regiones de neuronas de cada nivel, de cada una de las redes SOM que forman el rbol. De este modo se descarta desde los primeros niveles del rbol el uso de muchas neuronas de la pirmide, reducindose considerablemente el espacio de bsqueda y acelerando el tiempo de bsqueda. En la figura 18 se muestra un TS-SOM de tres niveles en el que cada neurona de cada nivel gobierna sobre cuatro neuronas del nivel inferior. El espacio de bsqueda en niveles inferiores de la TS-SOM est restringido a una cierta zona del mapa correspondiente a las neuronas situadas debajo de la neurona ms cercana del nivel anterior. Luego, la complejidad de las bsquedas en una estructura TSunidades es , donde es el nmero de hijos por neurona. La SOM con complejidad de una red SOM convencional es O(n) debido a que para determinar la neurona ganadora es necesario procesar todas las neuronas de la red. De esta forma se demuestra que la velocidad de entrenamiento y de operacin de una TS-SOM es mayor que en una SOM.
-29-
Para determinar los vectores de pesos en la red TS-SOM se debe seguir el siguiente algoritmo: Paso 0: En el primer nivel (con una sola neurona) el vector de pesos es igual al vector promedio de toda la base de datos. Paso 1: En los niveles bajo la raz, el vector de pesos de cada neurona es inicializado copiando el vector de pesos de la neurona padre (del nivel anterior). Paso 2: Por cada neurona procedemos de la siguiente forma: Paso 2.1: Determinamos su neurona ms cercana. Paso 2.2: Definimos grupo limitado de neuronas como el grupo de neuronas formado por las neuronas hijas del neurona ms cercana y los neuronas hijas de sus vecinas Paso 2.3: Definimos centroide como el promedio de los vectores de las neuronas que forman el grupo limitado. Procedemos a su clculo. Paso 3: Los nuevos vectores de pesos se calculan como el promedio de los centroides vecinos, ponderados por el nmero de vectores ms cercanos (de cada neurona) y por una funcin que asigna ms importancia a los vecinos ms cercanos (usualmente gaussiana). Paso 4: Si el vector de pesos no converge de acuerdo a algn criterio de variacin entre iteraciones, el procedimiento contina con el siguiente nivel de la TS-SOM en el Paso 1. Si no es as, el procedimiento se repite desde el Paso 2. En la Figura 19 se muestra la ubicacin de un grupo de caras en el ltimo nivel de la red TS-SOM entrenada usando las componentes PCA1 (que definen e identifican cada cara) comprobndose que existe consistencia con el parecido entre caras asociado a los humanos.
Figura 19. Ejemplo de ubicacin ordenada de caras en el nivel ms bajo de una estructura TS-SOM
-30-
(b) Matriz de Seleccin. Figura 20. Matriz de seleccin asociada a un nivel de la TS-SOM
Cuando un usuario selecciona caras que considera parecidas a la cara buscada (dentro de las 6 mostradas), el sistema asigna valores positivos a las caras seleccionadas por el usuario y valores negativos a las caras no-seleccionadas. Los valores positivos y negativos se normalizan tal que sumen cero. Estos valores se suman a la matriz de seleccin en las posiciones correspondientes a las caras mostradas segn su posicin en el nivel de la TS-SOM. Por ltimo se distribuyen los valores de cada posicin dentro la matriz hacia sus vecinos aplicando un filtro paso-bajo. El resultado se puede observar en la figura 20b El nuevo conjunto de caras que el sistema muestra al usuario corresponde a las caras ubicadas en las neuronas con mayor valor en los elementos correspondientes de la matriz de seleccin.
3.5. Simulaciones
Se han efectuado simulaciones sobre el sistema FACERET para comprobar su correcto funcionamiento sobre una base de datos FERET (Facial Recognition Technology) que puede almacenar 14.051 imgenes en escala de grises agrupadas en 1209 clases de individuos, aunque para la simulacin se utiliz 1196 imgenes de 1196 sujetos distintos. Se entren una red TS-SOM con 6 niveles y 3232 neuronas en el ltimo nivel.
-31-
En la figura 21 se muestra una simulacin en donde se busc una cara dentro de la base de datos. En esta simulacin se converge a la cara buscada despus de 6 iteraciones, lo que corresponde a mostrar entre un 3% y un 3,5% de la base de datos. Entre cada una de las iteraciones se muestran las 6 matrices de seleccin que indican cmo el sistema converge a una zona del mapa autoorganizativo donde se encuentra la cara buscada.
Es importante mencionar que hubo casos en que el sistema no logr converger en un nmero razonable de iteraciones, debido a que se concentraba en zonas completamente distintas a la zona donde se ubic la cara buscada. Luego el resultado de las simulaciones demostr que el sistema funciona eficientemente en la mayora de los casos, pero no asegura la convergencia de la bsqueda (en pocas iteraciones).
-32-
Redes Neuronales y Sistemas Borrosos Bonifacio Martn del Ro, Alfredo Sanz Molina Ra-Ma 2001 Artificial Intelligence George F. Luger, William A. Stubblefield Addison Wesley 1998 Neural Networks. A comprehensive Foundation. Simon Haykin Macmillan College Publishing Company 1994
Anlisis de Componentes Principales y Redes Neuronales Csar I. Garca Osorio (Universidad de Burgos) Curso de Verano Inteligencia Artificial y sus Aplicaciones. UBu. Julio 2003. Fundamentos y Aplicaciones de los Mapas Autoorganizados Jess M. Maudes Raedo (Universidad de Burgos) Curso de Verano Inteligencia Artificial y sus Aplicaciones. UBu. Julio 2003. Reconocimiento y Clasificacin con Redes Neuronales Luis Alonso Romero (Universidad de Salamanca) Curso de Verano Inteligencia Artificial y sus Aplicaciones. UBu. Julio 2003. Aprendizaje Competitivo Emilio S. Corchado Rodrguez (Universidad de Burgos) Curso de Verano Inteligencia Artificial y sus Aplicaciones. UBu. Julio 2003. Modelos Conexionistas aplicados a la seguridad SDI/SDA Emilio S. Corchado Rodrguez (Universidad de Burgos) Curso de Verano Integracin de Sistemas Operativos, Comunicaciones y Seguridad. UBu. Julio 2004.
RECURSOS DE INTERNET
Tutorial sobre Redes Neuronales Artificiales: Los Mapas Autoorganizados de Kohonen Palmer, A., Montao J.J. y Jimnez, R. Universitat de les Illes Balears [10] Trabajo de Redes Neuronales y algoritmos de primer orden (INF 350-1) Universidad Catlica de Valparaso [11] Pgina del Laboratorio de Computacin y Ciencias de la informacin de la Universidad Tecnolgica de Helsinki http://www.cis.hut.fi/ [12] NeuroDimension, Inc. http://www.nd.com
[9]
-33-
SISTEMA FACERET [13] Pontificia Universidad Catlica de Chile http://www2.ing.puc.cl/~iing/ed437/Anales/ [14] Navarrete, P., and Ruiz-del-Solar, J. (2002). Interactive Face Retrieval using SelfOrganizing Maps. 2002 Int. Joint Conf. on Neural Networks IJCNN 2002, May 12-17, Honolulu, USA http://www.cec.uchile.cl/~aabdie/jruizd/papers/wcci2002a.pdf
-34-