320 likes | 1.2k Views
Reconocimiento de Patrones Redes Neuronales Artificiales. Curso de posgrado Enrique Ferreira Instituto de Ingeniería Eléctrica 03 de junio de 2014. Objetivos. Introducir el concepto de redes neuronales, perspectiva histórica, estructuras principales y aplicaciones fundamentales
E N D
Reconocimiento de Patrones Redes Neuronales Artificiales Curso de posgrado Enrique Ferreira Instituto de Ingeniería Eléctrica 03 de junio de 2014
Objetivos • Introducir el concepto de redes neuronales, perspectiva histórica, estructuras principales y aplicaciones fundamentales • Describir en detalle estructuras y algoritmos a utilizar en el contexto de reconocimiento de patrones • Conceptos de optimización • Conceptos de sistemas dinámicos Reconocimiento de Patrones
Hipótesis de trabajo • No se pretenden cubrir todas las estructuras neuronales y sus algoritmos respectivos • Complejidad • Objetivos y duración del curso • Dar las herramientas para que Uds. puedan seguir profundizando en el tema conforme a sus necesidades. Reconocimiento de Patrones
Organización • Motivación, Historia • Ingeniería inversa de procesos biológicos para el desarrollo de nuevos modelos de computación • Resolución de problemas complejos • Introducción • Conceptos fundamentales, notación a usar • Ejemplos de redes neuronales • Concepto de Aprendizaje • Métodos de entrenamiento • Aplicaciones • Problemas fundamentales Reconocimiento de Patrones
Perspectiva Histórica • Modelado de la estructura y funcionamiento cerebral • Es un modelo computacional completamente diferente del desarrollado en las computadoras digitales actuales. • distribuido • paralelo • no-lineal • auto-organizable • capacidad de aprendizaje • Realiza ciertas tareas mucho más rápido que las computadoras actuales, trabajando a velocidades mucho más lentas • reconocimiento de patrones, lenguaje, actividad sensorial y motora • no circunscrito solamente al cerebro humano • Evolutivamente optimizado • alta especialización anatómica y funcional • plasticidad: capacidad de adaptación Reconocimiento de Patrones
Estímulos Respuesta Red Neuronal Receptores Efectores Perspectiva Histórica • Modelado de la estructura y funcionamiento cerebral • Estructura funcional dentro del funcionamiento global del individuo • sistema reactivo • especialización • Neurona como unidad básica funcional del sistema • Topología de red o interconexión entre neuronas • Funcionamiento • entrada-salida • flexible, adaptable, a través de aprendizaje Reconocimiento de Patrones
Funcionamiento Cerebral • Modelado de la estructura y funcionamiento cerebral • Estructura jerárquica en capas • Niveles de organización y funcionamiento cerebral • crecen en complejidad • Sinapsis: nivel elemental de comunicación • Microcircuitos neuronales: • ensamble de sinapsis que producen operación deseada (~ASIC) • orden de m y velocidades de ms. • Circuitos locales: • ensambles de neuronas ( ~ 1 mm) para desarrollar operaciones localizadas del cerebro • Inter-regionales: • mapas, caminos que involucran diferentes partes del cerebro Reconocimiento de Patrones
Neurona biológica • Estructura • cuerpo: del orden de 100 m • dendritas: receptores (apical, basal) • axón: trasmisor de impulsos • Redes, interconexión • sinapsis: conexión entre neuronas • excitadora o inhibidora • base química, neuro-trasmisores • potenciales de acción • descarga neuronal (burst) (~ 50mV) • del orden de miles de sinapsis por neurona (en dendritas y axón) • Modelos • axón: línea de trasmisión • modelo eléctrico Reconocimiento de Patrones
bias Entradas w0 u1 w1 s función de activación w2 u2 y f(.) salida Sumador un wn pesos sinápticos Neurona Artificial • Modelo simplificado de neurona biológica • estático • representación entrada-salida. • Múltiples entradas, salida única • diferente influencia de entradas en salida mediante “pesos” (wi) • w: parámetros de la neurona • Relación entrada-salida no-lineal • diferentes opciones para f(.) • step, sat, sigm, tanh • Capacidad de adaptación • variación de sus “pesos” con algún objetivo • Existen otros modelos • agregando dinámica, • modelos no deterministas • relacionados con estructuras de redes especificas Reconocimiento de Patrones
u y Redes Neuronales Artificiales • Interconexión entre neuronas • Decide flujo de información en red • Total • genera lazos en flujo de datos • redes recurrentes • Parcial • en capas: entrada, internas, salida • Recurrente: contiene lazos • Feedforward: no contiene lazos • Junto con pesos y funciones de salida de cada neurona definen comportamiento global de la red • Se debe definir la forma de actualización de estados de cada neurona en la red • secuencial, asíncrono, sincrónico • especialmente importante en redes recurrentes o con dinámica temporal Reconocimiento de Patrones
u2 u1 wt.u=0 Ejemplo de Neurona: Perceptron • Perceptron • Separa espacio con hiperplano • y = f ( w1 u1 + w2 u2 + ... + wn un ), • f(s) = { 1 si s0, 0 si s<0 } • Puede incluir offset w0. • Importante históricamente • estudiado muy detalladamente (Minsky y Papert ‘69) • Es un clasificador lineal en 2 clases. • bueno si patrones linealmente separables • XOR problem • Análogo a clasificador de Bayes gaussiano. • minimiza probabilidad de error • clasificador denominado paramétrico Reconocimiento de Patrones
Ejemplo de Neurona: Adaline y=0 • Adaptive Linear Element • Estructura: • Como un Perceptron pero con función lineal a la salida. • Permite trabajar con problemas mas generales • Widrow y Hoff propusieron un método más eficiente computacionalmente denominado LMS para determinar parámetros del Adaline (1962). • similar a aplicar gradiente descendente • muy intuitivo Reconocimiento de Patrones
Wij3 Wij2 Wij1 x12 y1 u1 x11 x13 x22 y2 u2 x21 x23 x32 Ejemplo de Red: Perceptron Multicapa • Perceptron Multicapa • Todos los nodos tienen igual función de salida • Representación matricial • x: activación neuronal • v: entrada neta • Wi : pesos en capa i Reconocimiento de Patrones
Wij3 Wij2 Wij1 3 y1 u1 1 6 y1 4 u1 y2 u2 y2 2 7 1 2 3 4 5 6 7 u2 5 Ejemplo de Red: Perceptron Multicapa • Representación ordenada • Werbos (1972) • Red lineal • Activaciones dependen: • entradas • activaciones de neuronas precedentes • Derivadas ordenadas backpropagation Reconocimiento de Patrones
Wi x1 y x2 Ejemplo: Radial Basis Function Network • Red feed-forward • Combinación lineal de funciones base o receptores dadas. • Funciones Base: • Gaussianas, Logistic • Normalizadas en gral • Aplicaciones • Aproximación funcional, interpolación • Clasificación de datos • Clustering • Modelado y control de sistemas dinámicos • Comparable con sistema FIS Reconocimiento de Patrones
u y Ejemplo: Redes de Hopfield • Hopfield • McCulloch-Pitts (1943): modelo discreto. • Recurrente, totalmente conectada • Asociada con sistema dinámico • Actualización de activaciones • Extensiones: Neuronas con constante de tiempo, uso de probabilidad en salida • Concepto de energía y entropía desarrollado • Aplicaciones • Descripción de sistemas cristalinos, y fenómenos físicos asociados • Uso en optimización • ej: TSP, distribución, despacho de carga • Memoria asociativa • Deducir patrón asociado a partir de dato parcial • Representables en hardware • VLSI Reconocimiento de Patrones
Mapas Auto-Organizados • Self-organizing maps (Kohonen, 1982) • Identificar estructura en datos de trabajo • conservan topología de datos • Hipótesis: • Entradas similares producen salidas similares • Conjuntos entrada-salida similares agrupables • Estructura • red de una capa • distribución espacial especificada • capa competitiva • entradas: dimensión de espacio • Pueden usarse neuronas con dinámica • Neuronas competitivas - selección • Dada entrada, selecciona neurona con mayor activación • Uso de pesos para inhibición lateral • Cooperación: • Adaptación restringida a vecindad de neurona seleccionada • Aplicaciones • Clasificación de datos, Clustering • Componentes principales (PCA) • Codificación capa 2D Entradas (u) Reconocimiento de Patrones
Propiedades: Mapeo Universal • Pregunta: • Qué tipo de funciones puedo representar con una ANN? • La idea se remonta al problema #13 de Hilbert (1900). • Representar función de N variables como combinación lineal de funciones en una variable (bajar dimensionalidad del problema) • Respuesta: • Puedo representar el conjunto de funciones “suaves”. • Hay varias pruebas para diferentes arquitecturas • Kolgomorov (1957) • Cybenko (1960) • Hornik (1989) • Chen (1991) Reconocimiento de Patrones
Propiedades: Mapeo Universal • Idea: • Usando red con 2 capas ocultas es posible crear funciones tipo localizadas que combinadas pueden formar cualquier función “suave” • Prueba intuitiva: • Fácil de ver en R2 R. • Red: y = ANN (x1,x2) • Paso 1: • Que mapeo obtengo con una sola neurona? • y = logsig(.x1) • y = logsig(.x2) Reconocimiento de Patrones
b x1 1 y b -b 1 b 1 -1 Propiedades: Mapeo Universal • Paso 2: • Uso Perceptron Multicapa • Puedo lograr “pico” en cualquier valor de x1 con red de 1 sola capa oculta • el ancho del pico depende del valor de b. • Puedo hacer lo mismo con x2. Reconocimiento de Patrones
b x1 b 1 -b 1 b y 1 1 b x2 b 1 -2 -b 1 b Propiedades: Mapeo Universal • Paso 3: • Agrupo redes en cada entrada en una sola red para combinar picos en x1 y x2. • Ajustando parámetros puedo obtener un pico bien definido centrado en cualquier punto de R2. Reconocimiento de Patrones
Propiedades: Mapeo Universal a x1 -a 1 b1 • Paso 4: • Agregando una capa adicional • 2 capas ocultas • Combinando estos picos se puede aproximar cualquier función de R2 R con el grado de error que desee. c1 1 1 a x2 1 -a f1 d1 1 e1 -2 1 y a x1 -a 1 bn fn cn 1 1 a x2 1 -a dn 1 en -2 1 Reconocimiento de Patrones
Otras Propiedades • Discriminante universal: • Posibilidad de generar regiones para clasificar datos • Similar a mapeo universal • Generalización: • Capacidad de inferir resultados sobre valores de entrada no usados anteriormente. • Basada en: • capacidad interpoladora por continuidad funcional de salida • capacidad de extrapolación (cotas y dimensión VC) • Importante a la hora de determinar tamaño de red a usar • Robustez: • Al malfuncionamiento de alguna neurona (fault tolerance) • Debido al almacenamiento distribuido de la información. • Adaptabilidad: • A través de sus parámetros (pesos, activación) • También con la estructura de la red. Reconocimiento de Patrones
Aprendizaje • Dada estructura de red, proceso de modificación de sus parámetros para lograr un comportamientodeseado de la misma • Estructura de la red también puede ser “aprendida” • Métodos de aprendizaje: • Supervisado • existe “tutor” que me dice lo que la red debe hacer • ej: reproducir mapeo entrada-salida dado (patrón) • No supervisado • generar clasificación propia de conjunto de patrones • ej: clustering • Reinforcement Learning • aprende basado en señal de evaluación : bien/mal (reward) • ej: ajedrez, backgammon (señal de refuerzo: gané/perdí) Reconocimiento de Patrones
Aprendizaje: On-line vs Off-line • Diferentes formas de adaptar la red de acuerdo con la forma en que se usa la información de entrenamiento (e.g. patrones). • Aprendizaje Off-line (batch) • adaptación de parámetros de la red tomando el conjunto total de patrones de entrenamiento • usualmente llamado época (epoch) • problemático con muchos datos • Aprendizaje On-line (recursivo) • adaptación de parámetros hecha a medida que los patrones son obtenidos o usados en la red • Métodos intermedios • adaptación cada k patrones (epoch size) Reconocimiento de Patrones
Aprendizaje: Optimización • La capacidad de aprender proviene de la elección de los parámetros de la red. • Comportamiento deseado de la red error asociado • Adaptación de parámetros optimización de una función de error • Métodos de optimización: • Error lineal en parámetros • mínimos cuadrados y derivados • batch o recursivo • Error no-lineal en los parámetros • con/sin uso de derivadas • batch o recursivo • Más complejos que lineales • Combinación de ambos según arquitectura de ANN • Aprendizaje de la estructura de ANN • En gral se realiza en un lazo superior del algoritmo (batch). Reconocimiento de Patrones
Aproximación funcional y=f(x) Supervisado: {(xi,yi) | yi=f(xi) } Interpolación, extrapolación Reconocimiento de patrones Clasificación Imágenes, voz, lenguaje Supervisado: (ui , clasei) no-supervisado extracción de características Identificación de modelos Series temporales trayectorias (uk, yk), k=1..N Modelado de Sistemas físicos dx/dt = f(x,u,t), y=g(x,u,t) Neuro-Control Planificación, Regulación, Seguimiento Robótica, sistemas complejos Supervisado, Reinforcement Learning Aplicaciones Reconocimiento de Patrones
Simplificaciones prácticas • Trabajaremos con redes feedforward • elimina dinámica interna • puede existir dinámica a partir de interconexiones con otros sistemas • mapa estático entrada-salida • uso extendido en aplicaciones • reconocimiento de patrones • data mining • neuro-fuzzy y neuro-control • mayor desarrollo teórico y experiencia práctica • mapeo universal • aprendizaje • algoritmos, convergencia, complejidad • regularización Reconocimiento de Patrones
Software para ANN • Stuttgart Neural Network Simulator (SNNS) • muy desarrollado • Unix, Linux • estructuras y algoritmos de entrenamiento • http://www-ra.informatik.uni-tuebingen.de/SNNS/ • Matlab, Scilab • toolboxes específicos • GUI (matlab: nntool) • análisis, optimización • Programas específicos • Dentro de aplicaciones • Estadística, Control Reconocimiento de Patrones
Referencias • C. Bishop, “Neural Networks for pattern recognition”, Oxford Press, 1995. • Simon Haykin, “Neural Networks”, Prentice Hall, 1999. • Hertz, Krogh and Palmer, “Introduction to the theory of Neural Computation”, Addison-Wesley, 1991. • Jang et al. “Neuro-fuzy and Soft Computing”, Cap. 8-11, Prentice Hall, 1997. • Duda and Hart, Cap. 5 y 6. Reconocimiento de Patrones