REDES NEURONALES Redes Neuronales Artificiales... • Inspiradas en las neuronas biológicas • Tienen habilidades de aprendizaje automático, generalización y abstracción. • Con estos modelos pueden resolverse una gran variedad de problemas de reconocimiento, aproximación, predicción, clasificación, optimización etc. Que Son las Redes Neuronales Artificiales? Las Redes Neuronales Artificiales (R.N.A.) son modelos matemáticos inspirados en sistemas biológicos, adaptados y simulados en computadoras convencionales. Los elementos que las conforman se asemejan a las neuronas biológicas. [Wasserman 89] Una definición mas amplia de Redes Neuronales Artificiales… • “Una red neuronal es un procesador masivamente paralelo y distribuido hecho de unidades procesadoras simples, las cuales son de manera natural propensas a almacenar conocimiento adquirido de la experiencia y hacerlo útil. Se parece al cerebro en dos aspectos: 1. La red neuronal adquiere el conocimiento del medio ambiente, a través de un proceso de aprendizaje 2. La fuerza de conexión entre las neuronas, conocida como los pesos sinápticos, se utiliza para almacenar el conocimiento adquirido Redes neuronales • Una neurona es una célula del cerebro cuya función principal es la recogida, procesamiento y emisión de señales eléctricas. • La neurona se <<dispara>> cuando una combinación lineal de sus entradas excede un determinado umbral. • Desde 1943 se han desarrollado modelos más realistas y detallados, tanto para neuronas como para sistemas más grandes del cerebro, llegando al campo moderno de la neurociencia computacional. Componentes básicos de las RNA 1. 2. 3. 4. 5. 6. Elementos de procesamiento: Neuronas Regla de activación de los elementos. Topología de interacción entre los elementos de procesamiento. Regla de propagación a través de las conexiones. Regla de aprendizaje. Medio ambiente en el que el sistema opera. Características Principales de Las RNA 1. APRENDIZAJE. Una red neuronal puede modificar su comportamiento en respuesta al medio ambiente. 2. GENERALIZACION. Una vez entrenada, la red neuronal puede ser insensible a cambios en sus entradas. 3. ABSTRACCION. Una red neuronal puede determinar la esencia o características principales de un conjunto de datos. OTROS NOMBRES DE LAS R.N.A. • Modelos Conexionistas (Connectionist Models) • Procesamiento distribuído en paralelo (Parallel Distributed Processing) • Sistemas neuronales artificiales (Artificial Neural Systems or ANS) La Neurona Biológica El Cerebro Humano • Contiene más de 100 billones de elementos de proceso llamados neuronas, • Contiene cerca de 100 trillones de conexiones llamadas sinapsis • Es el mayor consumidor de energía del cuerpo humano. Siendo el 2% de la masa total del cuerpo, consume más del 20% del oxígeno. Características de una neurona ▫ Dependiendo de la región del cerebro y su función, su diámetro va de una décima a una centésima de milímetro (10 – 100 μm) ▫ Está formada de 3 partes principales: Dendritas Axón Cuerpo Dendritas Reciben señales de otras células en puntos de conexión llamados sinapsis. Las señales se pasan al cuerpo de la célula, donde son "promediadas" con otras señales. Axón y Cuerpo • Axón. ▫ Manda pulsos a otras células en caso de que el promedio obtenido en el cuerpo de la célula sea suficientemente grande por determinado tiempo. ▫ El axón tiene en la punta ramificaciones, cada una de las cuales termina con un botón sináptico ( o sinapsis) el cual se usa para transmitir información de una neurona a otro . ▫ El axón puede medir desde menos de un milímetro hasta un metro. • Cuerpo. ▫ Es una fábrica química capaz de procesar y emitir señales, controlar la energía del neurona, realizar actividades de mantenimiento, etc. Un botón sináptico Interconectividad • Las neuronas están altamente interconectadas, teniendo alrededor de 104 botones sinápticos conectados a las dendritas de otras neuronas. • La conectividad de las neuronas, más que su complejidad funcional, es lo que le da al cerebro su capacidad de procesamiento Algunos Ejemplos de Aplicaciones de RNA • • • • • • • • • Reconocimiento de caracteres manuscritos, Construcción de Memorias asociativas. Reconocimiento de voz Control de robots Toma de decisiones administrativas, financieras etc. Reconocimiento de enfermedades Reconocimiento de señales de radio Predicción de Señales y series de tiempo Caóticas Generación de reglas para sistemas expertos ALCANCES Y LIMITACIONES DE LAS RNA • Las R.N.A. no son la solución de todos los problemas, sino solo de aquellos en los que "las reglas de solución" no son conocidas, y existen suficientes datos ejemplos que permitan a la red aprender. • Las R.N.A. son hasta cierto punto impredecibles. • Las R.N.A. no pueden explicar como resuelven un problema. La representación interna generada puede ser demasiado compleja para ser analizada, aún y en los casos más sencillos. Resumen de los Beneficios de los Sistemas Neuronales Artificiales 1. 2. 3. 4. 5. 6. 7. 8. Son sistemas no lineales Son capaces de hacer un mapeo entre entradas y salidas Son adaptables Pueden dar información sobre la confiabilidad de sus respuestas Pueden dar información sobre el “contexto” de la selección Son tolerantes a fallas Son universales en cuanto a su análisis y diseño Presentan analogías con los sistemas biológicos Conceptos básicos Diagrama General de un Sistema de RNA Entradas RNA Ejemplos (medio ambiente) Salidas Conocimiento Modelo Básico y Abstracto de un Neurón Artificial x0 w0 n −1 xi wi oi = F ( ∑x w ) i i i =0 wn xn-1 x’s son valores de entrada w’s son pesos F es la función de activación La Neurona Artificial • Es un elemento procesador al que se aplica un conjunto de entradas, cada una representando la salida de otra neurona. • Estas entradas, que podemos llamar x, se multiplican por un peso (número real) asociado a ellas, que podemos llamar w, • Las multiplicaciones se suman y al resultado podemos llamarle net N −1 net = ∑ xi wi i =0 Funciones de Activación • La suma ponderada se "filtra" por medio de una función, llamada función de activación (f). • La función de activación tiene como objetivo el acotar los valores de salida de la neurona para mantenerlos en ciertos rangos. • La función de activación depende del tipo de red neuronal que se esté manejando. Hay funciones de activación lineales y no lineales output = f (net ) Ejemplo: • Analice una red con alimentación-hacia-adelante • Consideremos una red con dos unidades de entrada, don unidades ocultas y una unidad de salida. W1,3 1 3 W3,5 W1,4 5 W2,3 2 4 W2,4 W4,5 Aplicación • Una RNA se puede usar para clasificación: ▫ Para clasificaciones booleanas con entradas continuas, se tiene una única unidad de salida, con un valor por encima de 0,5 interpretado como una clase y con un valor por debajo de 0,5 como otra. ▫ Para k-clasificaciones, se divide el rango de la unidad de salida en k partes, pero es más común tener k unidades de salida separadas, donde el valor de cada una representa la verosimilitud de esa clase dada una entrada. Funciones de Activación Clásicas Función lineal (k es una constante) Función umbral o escalón (t es una constante) Función sigmoide Función tangente hiperbólica f ( x) = k * x 1 si x > t f ( x) = 0 si x ≤ t f ( x) = 1 1 + exp(− x) f ( x) = tanh( x) Ejemplo de una Función de Activación Lineal Ejemplo de Función de Activación no Lineal Función de Activación tangente hiperbólica 1.5 1 f(x) 0.5 0 -4 -2 -0.5 0 -1 -1.5 x 2 4 Tipos principales de redes neuronales • Dependiendo de la manera en que se organizan los elementos procesadores, las RNA se pueden clasificar como: ▫ De un nivel alimentadas hacia adelante ▫ De varios niveles alimentadas hacia adelante ▫ Recurrentes X RNA Y Diagrama de contexto y0 w00 x0 wm0 x1 Xn-1 Entradas .. . w02 w01 w10 w11 wm1 w0n RNA y1 w21 w1n y2 w2n wmn Ym-1 Salidas Redes Neuronales de un Nivel Son aquellas donde los elementos procesadores están organizados en una línea, recibiendo su entrada directamente del exterior y produciendo ellos directamente la salida o resultado de la RNA Topología de Redes Neuronales de un Nivel (Perceptrón) Una red Perceptrón consistente en Y0:m-1 (4) unidades de salida que comparten X0:n-1 (3) entradas w00 x0 wm0 x1 Xn-1 Entradas y0 .. . w02 w01 w10 w11 wm1 w0n y1 w21 w1n y2 w2n wmn Ym-1 Salidas Representación de RNA de un Nivel • Sea W una matriz de (n-1) x (m-1) que representa los pesos de una red neuronal de un nivel que tiene (n-1) entradas y (m-1) salidas. • Sea X un vector de (n-1) renglones que representa los valores de entrada a la red, e Y un vector de (m-1) renglones que representa los valores de salida de la red • Si N es el vector de los valores net asociados a cada neurona, tenemos que: N=X*W Y = F( N ) es la salida de la red Evaluación de una RNA de un Nivel Por ejemplo, si la red tiene 3 entradas y 3 salidas, esta operación equivale a: N = x0 x1 w00 x2 | w10 w20 w01 w11 w21 = x0 w00 + x1w10 + x2 w20 w02 w12 w22 x0 w01 + x1w11 + x2 w21 y0 = f ( x0 w00 + x1w10 + x2 w20 ) y1 = f ( x0 w01 + x1w11 + x2 w21 ) y2 = f ( x0 w02 + x1w12 + x2 w22 ) x0 w02 + x1w12 + x2 w22 Redes Neuronales con Varios Niveles Características de RNA’s con Varios Niveles • En estas redes existen varias capas o niveles de neuronas, donde las salidas de los neuronas en el nivel i se conectan a los neuronas en el nivel i+1. • Se dice entonces que este tipo de redes están "alimentadas hacia adelante" (feed-forward networks) • El primer nivel de neuronas se conoce como nivel de entrada. • El último nivel se conoce como nivel de salida. • Los demás niveles se conocen como niveles escondidos. Características de RNA’s con Varios Niveles (cont.) • La salida de este tipo de redes es la salida de los neuronas que se encuentran en la última capa. • Para determinar dicha salida, se calcula la salida de cada neurona, empezando por el primer nivel, y continuando hasta llegar al último. • En una red con varios niveles, la función de activación debe ser no-lineal, a fin de que pueda existir representación del conocimiento en los niveles escondidos. Estados de un sistema basado en RNA 1. Aprendizaje o entrenamiento ▫ Los pesos modifican su valor 2. Evaluación ▫ Los pesos se mantienen constante Entrenamiento de RNA’s • Las R.N.A. aprenden de ejemplos. • Una red es entrenada de manera que un conjunto de valores de entrada, aplicado en las neuronas de entrada, produzca una salida deseada en las neuronas de salida de la red. • Normalmente los valores de entrada y de salida se representan de manera numérica, ya sea por dígitos binarios o números reales. • La codificación de dichos valores depende de la arquitectura y características de la red neuronal utilizada. Ejemplo simple de un sistema de RNA para Clasificar Pixeles de entrada Codificación de La clasificación Entrenamiento Supervisado El aprendizaje se lleva a través de ejemplos que muestran explícitamente lo que se desea aprender. DA TOS DE ENTRADA ENTRENAMIENTO SAL IDA DESEADA PESOS Se requiere que cada vector de entrada (datos de entrada) esté relacionado a un valor de salida deseado. A estos dos vectores se les conoce como "par de entrenamiento". Ejemplo de Entrenamiento Supervisado Supongamos que se desea que una red aprenda la función booleana XOR (OR exclusivo). Sabemos que dicha función tiene la siguiente tabla de verdad: Ejemplo de Entrenamiento Supervisado (cont.) Podemos definir como conjunto de entrenamiento lo siguiente: ENTRADAS: SALIDAS DESEADAS: X0 = [ 0,0 ] X1 = [ 0,1 ] X2 = [ 1,0 ] X3 = [ 1,1 ] Y0 = Y1 = Y2 = Y3 = [0 ] [1 ] [1 ] [0 ] Entrenar significa que, cada par [Xi,Yi], se aplicará a la red repetidas veces siguiendo un algoritmo determinado, hasta que lo aprenda. Entrenamiento no Supervisado • En la naturaleza no es muy frecuente encontrar entrenamiento supervisado, sino mas bien entrenamiento no supervisado. • Por ejemplo, el cerebro de un bebé no recibe un "vector de salida" con las respuestas a como reaccionar a los miles de estímulos que recibe cada día. Entrenamiento no Supervisado (cont) • Este tipo de entrenamiento no requiere de conocer la salida deseada para cada entrada, sino que los pesos se van modificando de manera que producen salidas que sean consistentes. • En otras palabras, entradas similares producen las mismas salidas. DA TOS DE ENTRADA ENTRENAMIENTO PESOS CL ASES Ejemplo de Entrenamiento no Supervisado Se desea que una red aprenda un conjunto de símbolos, digamos, las letras del alfabeto. Se le muestran a la red repetidas veces los símbolos, de manera que esta los clasificará, y creará grupos de los mas parecidos, generando una representación "ideal" para cada grupo. El Perceptrón Estados de un sistema neuronal Patrón Patrones p/entrenar Experto Parámetros Entrenador respuesta esperada 1. Aprende Pesos 2. Evalúa USUARIO Clase asignada El Perceptrón Mc. Culloch y Pitts propusieron un modelo simple que consiste en una sola neurona: Red de perceptrones • Se pueden poner juntos varios de estos elementos, generando una red de perceptrones de un nivel entradas y0 w00 x0 wm0 x1 Xn w01 w10 .. . w02 w11 wm1 w0n y1 w21 w1n y2 w2n wmn Ym-1 salidas Regiones de Decisión Generadas con el Perceptrón • Para 2 entradas y una sola neurona, el perceptrón separa el plano de características en dos regiones, una de un lado de la línea y otra del otro lado. • En un espacio de dimensión mayor (3 o más entradas) el perceptrón divide al espacio en 2 regiones separados por un hiperplano. Porque es esto? •Veamos en 2 dimensiones, esto es, cuando hay dos entradas al perceptron (características). Tenemos que: OUTPUT = x0 w0 + x1w1 − φ Si x0 w0 + x1w1 − φ < 0 entonces OUTPUT = −1 ≥ 0 entonces OUTPUT = 1 Entonces, la decisión esta limitada por la recta: x0 w0 + x1w1 − φ = 0 x1 = − x0 w0 w1 φ + w1 Proceso de entrenamiento del Perceptrón SI INICIO Hay patrones NO FIN EVALUA RED MODIFICA PESOS Entrenamiento del Perceptrón PROCEDIMIENTO DE CONVERGENCIA (REGLA DELTA) • PASO 1: Inicialice el valor de los pesos Wi(0) y del umbral Φ con pequeños números aleatorios. Wi(t) representa el valor del i-ésimo peso en el tiempo t. Φ(t) es el valor del umbral. • PASO 2: Lea un nuevo vector de entrada X (Xo, X1,....Xn-1) y su correspondiente salida deseada D donde: Si la entrada corresponde a la clase A, D = 1. Si la entrada corresponde a la clase B, D = -1. Regla Delta (cont.) • PASO 3. Calcule la salida real de la neurona y(t): n −1 y (t ) = F (∑ ( wi (t ) xi (t )) − φ (t )) i =0 donde F es la función escalón REGLA DELTA (Cont.) • PASO 4: Modifique los pesos de acuerdo a la siguiente fórmula: δ = D − y (t ) Para cada peso wi calcule: ∆ i = ηδxi donde η es el coeficiente de aprendizaje ( 0 < η <= 1) wi (t + 1) = wi (t ) + ∆ i φ (t + 1) = φ (t ) − ηδ para 0 <= i <= n - 1. • PASO 5: Regrese al paso 2 hasta agotar el conjunto de entrenamiento.