30.10.17

Redes Neuronales




La neurona artificial

La unidad básica de una RNA es la neurona. Aunque hay varios tipos de neuronas diferentes, la mas comun es la de tipo McCulloch-Pitts. En la siguiente figura puede verse una representación de la misma
Representación de una neurona artificial tipo McCulloch-Pitts
neuronaa
Una neurona artificial es un procesador elemental, en el sentido de que procesa un vector x (x1,x2,...xN) de entradas y produce un respuesta o salida única. Los elementos clave de una neurona artificial los podemos ver en la figura anterior y son los siguientes:
  • Las entradas que reciben los datos de otras neuronas. En una neurona biológica corresponderían a las dendritas
  • Los pesos sinapticos wij. Al igual que en una neurona biológica se establecen sinápsis entre las dendritas de una neurona y el axón de otra, en una neurona artificial a las entradas que vienen de otras neuronas se les asigna un peso, un factor de importancia. Este peso, que es un número, se modifica durante el entrenamiento de la red neuronal, y es aquí por tanto donde se almacena la infomación que hara que la red sirva para un propósito u otro.
  • Una regla de propagación. Con esas entradas y los pesos sinapticos, se suele hacer algun tipo de operación para obtener el valor del potencial postsinaptico (valor que es funcion de las entradas y los pesos y que es el que se utiliza en último término para realizar el procesamiento). Una de las operaciones mas comunes es sumar las entradas, pero teniendo en cuenta la importancia de cada una (el peso sináptico asociado a cada entrada). Es lo que se llama suma ponderada, aunque otras operaciones también son posibles.
Ecuación 2-1. Suma ponderada
sumaponderada
La otra regla de propagacion mas habitual es la distancia euclidea. Este es el tipo de regla que tienen redes como el SOM o las RBF.
  • Una función de activación. El valor obtenido con la regla de propagación, se filtra a través de una función conocida como función de activación y es la que nos da la salida de la neurona. Según para lo que se desee entrenar la red neuronal, se suele escoger una función de activación u otra en ciertas neuronas de la red. En la siguiente tabla se muestran las funciones de activación mas usuales
Figura 2-2. Funciones de activación más usuales
http://www.ibiblio.org/pub/linux/docs/LuCaS/Presentaciones/200304curso-glisa/redes_neuronales/curso-glisa-redes_neuronales-html/funca.jpg
En muchas ocasiones la razón para la aplicación de una función de activación distinta de la identidad surge de la necesidad de que las neuronas produzcan una salida acotada. Esto desde un punto de vista de similitud con el sistema biológico, no es tan descabellado, ya que las respuestas de las neuronas biológicas estan acotadas en amplitud. Además cada neurona tiene asociado un número denominado bías o umbral, que puede verse como un número que indica a partir de que valor del potencial postsináptico la neurona produce una salida significativa.




APRENDIZAJE ASOCIATIVO
Regla de Hebb: Esta regla puede interpretarse matemáticamente teniendo en cuenta que si dos neuronas en cualquier lado de la sinápsis son activadas simultáneamente, la longitud de la sinápsis se incrementará. Si se revisa la figura 2.4.3 correspondiente a un asociador lineal, se ve como la salida a, es determinada por el vector de entrada p.
Fig243
Figura 2.4.3 Asociador Lineal
Ecu244(2.4.4)
Puede notarse como la conexión (sinápsis) entre la entrada pjy la salidaaies el pesowij. De esta forma el postulado de Hebb implica que si un valor positivopj produce un valor positivo ai, el valor dewij debe incrementarse,
Ecu245(2.4.5)
Donde :
pjq :j-ésimo elemento del q-ésimo vector de entrada pq
aiq :i-ésimo elemento de salida de la red, cuando el q-ésimo vector de entrada es presentado
:es la rata de aprendizaje, la cual es un valor positivo constante
La regla de Hebb dice que el cambio en el peso wij es proporcional al producto de las funciones de activación en cualquier lado de la sinápsis. Así, los pesos serán incrementados cuando pjy aisean positivos, pero también lo harán cuando ambos parámetros sean negativos, en contraposición los pesos se decrementarán cuando pjy aijtengan signos contrarios.

Arquitectura
La arquitectura de una red perceptrón consiste de una capa de S neuronas perceptrón, conectadas a r entradas a través de un conjunto de pesos Wij como se muestra en la figura 2.4. Como ya se mencionó anteriormente, los índices de la red i y j indican que Wij es la fuerza de conexión de la j-ésima entrada a la i-ésima neurona.
imagen
Figura 2.4: Arquitectura de una Red Perceptrón
La red perceptrón puede tener únicamente una sola capa, debido a que la regla de aprendizaje del perceptrón es capaz de entrenar solamente una capa. Esta restricción coloca limitaciones en cuanto a lo que un perceptrón puede realizar computacionalmente.
imagen
Figura 2.5: Perceptrón Simple
La única neurona de salida del Perceptrón realiza la suma ponderada de las entradas, resta el umbral y pasa el resultado a una función de transferencia de tipo escalón. La regla de decisión es responder +1 si el patrón presentado pertenece a la clase A, o –1 si el patrón pertenece a la clase B (figura 2.4), la salida depende de la entrada neta (n = en donde presenta la suma de las entradas pi ponderadas).
La red tipo Perceptrón emplea principalmente dos funciones de transferencia, función escalón (hardlim) con salidas 1, 0 o función escalón simétrica (hardlims) con salidas 1, -1; su uso depende del valor de salida que se espera para la red; es decir, sí la salida de la red es unipolar o bipolar; sin embargo, la función hardlims es preferida sobre la hardlim, ya que el tener un cero multiplicando algunas de los valores resultantes del producto de las entradas por el vector de pesos, ocasiona que estos no se actualicen y que el aprendizaje sea más lento.
Una técnica utilizada para analizar el comportamiento de redes como el Perceptrón es presentar en un mapa las regiones de decisión creadas en el espacio multidimensional de entradas de la red, en estas regiones se visualiza qué patrones pertenecen a una clase y cuáles a otra, el Perceptrón separa las regiones por un hiperplano cuya ecuación queda determinada por los pesos de las conexiones y el valor umbral de la función de activación de la neurona, en este caso los valores de los pesos pueden fijarse o adaptarse empleando diferentes algoritmos de entrenamiento.
Para ilustrar el proceso computacional del Perceptrón considere la matriz de pesos en forma general.
ecuacion
(2.2)
Los pesos para una neurona están representados por un vector compuesto de los elementos de la i-ésima fila de W:
ecuacion
(2.3)
De esta forma y empleando la función de transferencia en escalón hardlim la salida de la neurona i de la capa de salida:
ecuacion
(2.4)
El Perceptrón, al constar de una sola capa de entrada y otra de salida con una única neurona, tiene una capacidad de representación bastante limitada, este modelo sólo es capaz de discriminar patrones muy sencillos, patrones linealmente separables (concepto que se estudiará en la sección 2.1.4), el caso más conocido es la imposibilidad del Perceptrón de representar la función OR EXCLUSIVA.




PERCEPTRÓN
2.1.4 Limitación de la red Perceptrón
En la sección 2.1.1, se planteó la restricción que existe para los tipos de problemas que una red Perceptrón puede solucionar, como se dijo esta red puede resolver solamente problemas que sean linealmente separables, esto es problemas cuyas salidas estén clasificadas en dos categorías diferentes y que permitan que su espacio de entrada sea divido en estas dos regiones por medio de un hiperplano de características similares a la ecuación del Perceptrón, es decir
Ecu2119(2.1.19)
Ejemplos de problemas de este tipo son las funciones lógicas OR y AND estudiadas anteriormente; para ilustrar más claramente que significa que un problema sea linealmente separable se analizará un caso que no lo sea, el caso de la compuerta XOR, el cual se visualiza en la figura 2.1.14
Fig2114
Figura 2.1.14 Compuerta XOR
Se pretende que para los valores de entrada 00 y 11 se devuelva la clase 0 y para los patrones 01 y 10 la clase 1. Como puede verse de la figura 2.1.15 el problema radica en que no existe ninguna línea recta que separe los patrones de una clase de los de la otra
Fig2115
Figura 2.1.15 Plano formado por el problema de la XOR
Los cuatro puntos en la figura son las posibles entradas de la red; la línea divide el plano en dos regiones, por lo que se podría clasificar los puntos de una región como pertenecientes a la clase que posee salida 1 (puntos azules) y los de la otra región como pertenecientes a la clase que posee salida 0 (puntos rojos), sin embargo no hay ninguna forma de posicionar la línea para que los puntos correctos para cada clase se encuentren en la misma región. El problema de la compuerta XOR no es linealmente separable y una red tipo Perceptrón no esta en capacidad de clasificar correctamente los patrones de esta función, debido a esta limitación del Perceptrón y a su amplia publicación en el libro de Minsky y Papert, el estudio de las redes neuronales se estanco durante casi 20 años.
El proceso para determinar si un problema es linealmente separable o no, se realiza gráficamente sin problema, cuando los patrones de entrada generan un espacio de dos dimensiones, como en el caso de las funciones AND, OR o de la XOR; sin embargo, esta visualización se dificulta cuando el conjunto de patrones de entrada es de tres dimensiones, y resulta imposible de observar gráficamente cuando los patrones de entrada son de dimensiones superiores; en este caso se requiere plantear condiciones de desigualdad que permitan comprobar la separabilidad lineal de los patrones, esto se realiza con base en la ecuación de salida del Perceptrón
Ecu21a, para aquellos patrones cuya salida deseada sea 1
Ecu21b, para aquellos patrones cuya salida deseada sea 0
En el caso de la XOR, teniendo en cuenta los valores de la tabla al lado derecho de la figura 2.1.14, estas desigualdades se expresan así:
Ecu21c(p1Ecu21d (p3)
Ecu21e(p2Ecu21f (p4)
Si no hay contradicción en las desigualdades anteriores, el problema es linealmente separable. Como se observa de las desigualdades 2, 3 y 4, es imposible que Ecu21gEcu21h y que su suma sea menor que cero, esta es una forma alternativa de comprobar que el problema de la XOR no es linealmente separable. El aporte de esta técnica se aprecia mejor para problemas cuyo espacio de entrada sea de dimensiones mayores.
La solución al problema de clasificación de patrones de la función XOR se encontraría fácilmente si se descompone el espacio en tres regiones: una región pertenecería a una de las clases de salida y las otras dos pertenecen a la segunda clase, así que si en lugar de utilizar únicamente una neurona de salida se utilizaran dos, se obtendrían dos rectas por lo que podrían delimitarse tres zonas; para poder elegir entre una zona u otra de las tres, es necesario utilizar otra capa con una neurona cuyas entradas serán las salidas de las neuronas anteriores; las dos zonas o regiones que contienen los puntos (0,0) y (1,1) se asocian a una salida nula de la red y la zona central se asocia a la salida con valor 1, de esta forma es posible encontrar una solución al problema de la función XOR, por tanto se ha de utilizar una red de tres neuronas, distribuidas en dos capas para solucionar este problema.
En la figura 2.1.16 se observa un esquema de lo que sería una red Perceptrón multicapa, con los valores de pesos y ganancias que clasifican correctamente los patrones de la compuerta XOR
Fig2116
Figura 2.1.16 Perceptrón multicapa para la XOR
Los valores de la matriz de pesos y del vector de ganancias son:
w11=1 w12=1
w21=1 w22=1
w31=1 w32=-1.5
b1=0.5 b2=1.5 b3=0.5

Perceptrón Multicapa

El perceptrón multicapa es una red neuronal artificial (RNA) formada por múltiples capas, esto le permite resolver problemas que no son linealmente separables, lo cual es la principal limitación del perceptrón (también llamado perceptrón simple).

El perceptrón multicapa puede ser totalmente o localmente conectado. En el primer caso cada salida de una neurona de la capa "i" es entrada de todas las neuronas de la capa "i+1", mientras que el segundo, cada neurona de la capa "i" es entrada de una serie de neuronas (región) de la capa "i+1".

Las capas pueden clasificarse en tres tipos:

  • Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento.
  • Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y las salidas pasan a neuronas de capas posteriores.
  • Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red.
La propagación hacia atrás (también conocido como retropropagación del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrón multicapa también es conocido como red de retropropagación (no confundir con la red de contrapropagación).

perceptron multicapa
-- Ejemplo de Perceptrón Multicapa --


Limitaciones

El Perceptrón Multicapa no extrapola bien, es decir, si la red se entrena mal o insuficientemente las salidas pueden ser imprecisas.

La existencia de mínimos locales en la función de error dificulta considerablemente el entrenamiento pues una vez alcanzado un mínimo el entrenamiento se para aunque no hayamos alcanzado la tasa de convergencia fijada.

Cuando caemos en un mínimo local sin satisfacer el porcentaje de error permitido se puede considerar: cambiar la topología de la red (número de capas y número de neuronas), comenzar el entrenamiento con unos pesos iniciales diferentes, modificar los parámetros de aprendizaje, modificar el conjunto de entrenamiento o presentar los patrones en otro orden.

Aplicaciones

El perceptrón multicapa o MLP (MultiLayer Perceptrón) se utiliza para resolver problemas de asociación de patrones, segmentación de imágenes, compresión de datos, etc. Por tanto el Perceptron multicapa resuelve problemas que son no separables linealmente.


Mapas de Kohonen.
Redes Neuronales Autorganizativas.

Las redes autoorganizadas fueron inventadas por Teuvo Kohonen que creo una manera de representar/mapear datos de un espacio multidimensional en otro de menores dimensiones.

La red de Kohonen pertenece a la categoría de redes no supervisadas, la diferencia con otras redes, es que las neuronas que representan patrones parecidos aparecen juntas en el espacio salida, este espacio puede ser unidimensional, una línea, bidimensional, un plano o N-dimensional. Es el propio diseñador de la red el que establece el espacio de salida que tendrá la red.
http://1.bp.blogspot.com/_P3FaytpTTt8/TOkjt1UjCeI/AAAAAAAAAAg/TsPqcmialTo/s400/Dibujo.JPG

Las redes de kohonen son redes bicapas, esto es, de dos capas: la capa de entrada de sensores y la capa de salida que realiza el cálculo.
Cada neurona de la capa de salida debe reflejar las coordenadas que tiene en el espacio que el diseñador de la red decida. Para que las neuronas puedan ser comparadas con la posición de otras neuronas de la red, se le asocia una regla de vecindad.
El modo de unir las capas es todas con toas, total, cada neurona de la capa entrada esta unida con todas las neuronas de la capa de salida.
http://www.disa.bi.ehu.es/spanish/profesores-etsi-bilbo/~jtpcaaxi/PFC/wwwANN/arquitectura_archivos/image014.gif


Sin embargo, a diferencia de otro tipo de redes, en los mapas de Kohonen, las neuronas están distribuidas a lo largo de todo el espacio de entrada. De esta forma, al introducirse un ejemplo, se activa sólo la neurona que más cerca esté de dicho ejemplo en el espacio de entrada.

Los mapas autoorganizativos de Kohonen, además, como su nombre indica, se organizan solos, es decir, como parte del aprendizaje, al activarse una neurona correspondiente a un ejemplo, la neurona evoluciona en el espacio, moviéndose hacia el punto del hiperespacio de entrada en el que está el ejemplo.
Este movimiento, sin embargo, no sólo afecta a la neurona activa, sino a las de su vecindario, es decir, las neuronas de alrededor, que son desplazadas ligeramente con esta, como si de una malla se tratara.
De este modo, las neuronas se irán desplazando por el espacio de entrada, hasta quedar agrupadas formando una malla en aquellas zonas del espacio de entrada a las que correspondan las entradas introducidas.
Por lo tanto, estos mapas nos permiten detectar relaciones entre los ejemplos y características comunes. También se utilizan para compresión y optimización de datos.

Aplicación en la Extracción de Información
La aplicación más generalizada de los mapas autoorganizativos se da en las tareas de clasificación no supervisada de la información, o de extracción de características más relevantes de un conjunto de datos. Su objetivo es que dado un conjunto de datos, se desea conocer las agrupaciones a partir de unas características, pero tanto los agrupamientos como las características se desconocen, es decir, a partir de un conjunto n-dimensional de datos, se obtiene uno x-dimensional donde x<

Estructura de una SOM
Rejilla de neuronas
 Las neuronas de la SOM están distribuidas en forma de rejilla gular de una o dos dimensiones, dependiendo de la manera en que se quieran visualizar los datos. Las más comunes son las de dos dimensiones. Rejillas de dimensiones superiores son posibles, aunque son más difíciles de interpretar.
En las SOM de dos dimensiones, se pueden distinguir dos tipos de rejillas:
·         Rejilla hexagonal: en ella cada neurona tiene seis vecinos (excepto los extremos).
·         Rejilla rectangular: cada neurona tiene cuatro vecinos.

Espacio de entrada y de salida
Cada neurona de la red tiene asociado un vector de pesos (o de prototipo) de la misma dimensión que los datos de entrada. Éste sería el espacio de entrada de la red, mientras que el espacio de salida sería la posición en el mapa de cada neurona.

Relación entre Neuronas
Las neuronas mantienen con sus vecinas relaciones de vecindad, las cuales son claves para conformar el mapa durante la etapa de entrenamiento. Esta relación viene dada por una función.


Entrenamiento

En cada paso se introduce un vector de datos en cada neurona y se calcula la "similitud" entre éste y el vector de peso de cada neurona. La neurona más parecida al vector de entrada es la neurona ganadora (o BMU, Best-Matching Unit, Unidad con mejor ajuste). Para medir la similaridad se utiliza usualmente la distancia euclídeana. Tras ello, los vectores de pesos de la BMU y de sus vecinos son actualizados, de tal forma que se acercan al vector de entrada.

Aplicación
Una vez entrenada, podemos usar a la red para clasificar patrones de entrada similares en el espacio n-dimensional. Una clase o grupo de patrones similares tiende a controlar una neurona específica, que representará el centro de una esfera n-dimensional (de radio unitario, pues normalizamos los datos sobre la unidad). Esa neurona resultará la más activada frente a los patrones más parecidos a su vector de pesos.
Después del aprendizaje, la clasificación consiste en presentar una entrada y seleccionar la unidad más activada. Además, el vector de pesos nos servirá para reconstruir el patrón de entrada.


Ventajas
·         Entrenamiento no supervisado.
·         No precisa pares de entrada/salida, tan solo patrones de entrada.
·         Simplemente de autoorganiza de forma autónoma para adaptarse lo mejor posible a los datos 
·         Utilizados en el entrenamiento.
Limitaciones
·         Solo suministran información acerca de a que zona del espacio de entrada pertenece un cierto patrón.
·         Es preciso interpretar esta información.
·         El proceso de interpretación necesita datos para los que se conoce su clasificación.




Mapas de Kohonen


Los mapas de kohonen se denominan también mapas autoorganizativos (SOM). Este tipo de red neuronal fue desarrollado por el investigador finlandés Teuvo Kohonen, siendo una red que intentaba simular al cerebro humano utilizando la propiedad de rendir mediante mapas auto-organizativos. El tipo de aprendizaje de los mapas de kohonen es un tipo de aprendizaje competitivo no supervisado. La red se distribuye en forma de rejilla, normalmente de dos dimensiones, cuyo fin es descubrir la estructura de los datos introducidos en ella.

Arquitectura


La arquitectura de los mapas de kohonen está compuesta por dos capas de neuronas. La capa de entrada (formada por N neuronas, una por cada variable de entrada) se encarga de recibir y transmitir a la capa de salida la información procedente del exterior. La capa de salida (formada por M neuronas) es la encargada de procesar la información 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:

Neuronas en mapa de kohonen
Las conexiones entre las dos capas que forman la red son siempre hacia delante, es decir, la información se propaga desde la capa de entrada hacia la capa de salida. Cada neurona de entrada está conectada con cada una de las neuronas de salida mediante un peso. De esta forma, las neuronas de salida tienen asociado un vector de pesos llamado vector de referencia, debido a que constituye el vector prototipo de la clase representada por la neurona de salida. Así, los mapas de kohonen se definen como una proyección desde un espacio de datos en alta dimensión a un mapa bidimensional de neuronas.
        1. - Conexiones laterales, red y topología

Entre las neuronas de la capa de salida, puede decirse que existen conexiones laterales de excitación e inhibición implícitas, pues aunque no estén conectadas, cada una de estas neuronas va a tener cierta influencia sobre sus vecinas. Esto se consigue a través de un proceso de competición entre las neuronas y de la aplicación de una función denominada de vecindad, que produce la topología o estructura del mapa. Las topologías más frecuentes son la rectangular y la hexagonal. Las neuronas adyacentes pertenecen a una vecindad de la neurona. El número de neuronas determina la suavidad de la proyección, lo cual influye en el ajuste y capacidad de generalización de los mapas de kohonen.

Aprendizaje


Durante la fase de entrenamiento, los vectores de datos son introducidos en cada neurona y se comparan con el vector de peso característico de cada neurona. La neurona que presenta menor diferencia entre su vector de peso y el vector de datos es la neurona ganadora, de forma que ella y sus vecinas verán modificados sus vectores de pesos. Para medir esa similitud se utiliza la distancia euclídea.
        1. - Tasa de aprendizaje

El valor de alfa es decrementado una cantidad constante pequeña beta tras cada ciclo completo de todos los patrones de aprendizaje:

Formula tasa de aprendizaje
Mediante la asignación del parámetro beta se pueden determinar el número total de ciclos de aprendizaje que sería:

Formula total de ciclos
El valor de alfa es decrementado siguiendo un esquema logarítmico (grandes variaciones al principio y disminución más lenta después).

Algoritmo


El algoritmo que siguen los mapas de kohonen es el siguiente:
1. Inicialización de los pesos.
2. Elección de un patrón de entre el conjunto de patrones de entrenamiento. (El conjunto de aprendizaje se presenta cíclicamente hasta llegar a la convergencia de la red. Actualizar alfa).
3. Propagar el patrón de entrada hasta la capa de competición. Obtener los valores de salida de las células de dicha capa. Para ello se usa la distancia euclídea.
4. Evaluar la neurona ganadora, es decir aquella cuya distancia es la menor de todas.
5. Actualizar los pesos de la neurona ganadora y de sus vecinas, según su grado de vecindad.

6. Si alfa por encima de cierto umbral volver al paso 2, en caso contrario FIN.

Taller js. Clase Nro 2