Download Introducción a los sistemas neuronales de procesado de la
Document related concepts
Transcript
UPC E.T.S.E.T.B. - Dept. Enginyeria Electrònica Curso de Redes Neuronales Artificiales (1999-2000) Introducción a los sistemas neuronales de procesado de la información (NIPS) Autor: Sergi Bermejo Responsable del curso: Joan Cabestany 1 Introducción a los sistemas neuronales de procesado de la información (NIPS) Sergio Bermejo Department d’Enginyeria Electrònica Universitat Politècnica de Catalunya (UPC), Gran Capità s/n, Edifici C4 , 08034 Barcelona e-mail: sbermejo@eel.upc.es En todos los procesos de ingeniería existen problemas en los que no hay una teoría matemática que sea capaz de tratar con ellos adecuadamente. Tradicionalmente, los ingenieros han intentado resolver este tipo de problemas utilizando estrategias específicamente pensadas para cada problema concreto con el que se enfrentaban. Con el paso del tiempo éstas han dado lugar a un conjunto de técnicas de carácter heurístico más o menos estándar que en algunos casos proporcionan resultados relativamente satisfactorios y en otros no tanto. Afortunadamente se está en disposición de herramientas que pueden ayudar a construir de una manera menos heurística y algo más sistemática, dispositivos que se enfrenten a este tipo de problemas y ayuden a resolverlos (Fig. 1). Si podemos extraer de estos problemas medidas que reflejen de alguna manera su comportamiento, podremos entonces construir con la ayuda de un sistema de aprendizaje, un modelo o dispositivo que en determinadas condiciones reflejará aquellas partes de la estructura computacional del problema en cuestión que no pueda ser resuelta con otro tipo de técnicas más tradicionales. Debido a que las medidas pueden llevar asociadas consigo una determinada incertidumbre, puesto que por ejemplo se han realizado con aparatos de precisión limitada o bien el propio problema es susceptible de ser modelado en términos probabilísticos, lo que se infiere de los datos es típicamente un modelo estadístico. Los sistemas neuronales de procesado de la información (Neural Information Processing System), también conocidos con el nombre de redes neuronales artificiales (Artificial Neural Networks), pueden hacer razonablemente bien este tipo de trabajo. Son en su mayoría sistemas de aprendizaje estadístico que pueden inferir de un conjunto de datos extraídos del problema a través de un proceso de aprendizaje, estimadores de diferentes tipos de estadísticas que son almacenados en su arquitectura. La Figura 1 muestra ambas vertientes del problema con difícil modelización. En un caso a) el diseñador debe escoger del conjunto de herramientas existentes aquellas más adecuadas para el problema que debe tratar y plantear un diseño acorde con el problema y con la tecnología escogida. En el otro b), si el diseñador dispone de una tecnología de aprendizaje además del conjunto de herramientas tradicional, puede incorporar ésta en aquellas partes de su diseño en las que la tecnología tradicional no ofrece buenas soluciones. 2 +HUUDPLHQWDV HVWiQGDU +HUUDPLHQWDV HVWiQGDU Dis eñador 6LVWHPD GH SURFHVDGR GH OD LQIRUPDFLyQ 7HFQRORJtD GH DSUHQGL]DMH Char *output= “United”; Char *output= “United”; 6LVWHPD KtEULGR a) b) Figura .1. 1. Sistemas de procesado de la información. Los tres niveles de Marr. Problemas mal definidos. Sistemas de aprendizaje. En los sistemas de procesado de la información, las entradas deben ser tratadas de manera que produzcan a la salida resultados útiles de acuerdo con el problema que se está tratando de resolver (Fig. 2). Para construir estos sistemas nos podemos basar en algún paradigma válido para una amplia gama de problemas de diseño, como por ejemplo el conocido análisis-síntesis-evaluación (Brama, 1997), o por el contrario utilizar algún paradigma pensado más específicamente para el diseño de este tipo de sistemas, como son los tres niveles de Marr (Marr, 1977) (cap. 1; Marr, 1982). Este paradigma es del tipo “top-down” en donde el diseño se divide en tres partes bien diferenciadas (Fig. 3): 1. Formulación de una teoría computacional que describa el problema de información de procesado que se pretende resolver 2. Definición de un algoritmo que actúa sobre un espacio de entrada y salida particulares que implemente la teoría computacional definida 3. Construcción del algoritmo en una máquina física (software y/o hardware) 6LVWHPD GH SURFHVDGR GH OD LQIRUPDFLyQ Char *output= “United”; Figura 2. Un ejemplo de sistema de procesado de la información. En este sistema la entrada que es una imagen binaria que contiene texto manuscrito debe de ser procesada de manera que a la salida el sistema produzca los caracteres ASCII correspondientes a dicho texto. 3 Problema bien definido Conocimiento teórico Especificaciones: •funciones •restricciones ¿Qué? Teoría Computacional ¿Cómo? Entrada Salida algoritmo Construcción Física H&S Figura 3. Proceso de diseño en un sistema de procesado de información basado en los tres niveles de Marr. Pero, ¿qué sucede si la teoría que permite describir el problema a resolver no está completamente desarrollada? Esto sucede con frecuencia en problemas de inteligencia artificial ya que estos son problemas especialmente mal definidos debido a que pretenden emular capacidades cognitivas humanas. Es evidente que ya no podemos diseñar de manera tan sistemática dispositivos que traten con este tipo de problemas puesto que siempre habrá lagunas teóricas que nos impidan escribir de manera directa los algoritmos necesarios. En estas situaciones, es cuando los sistemas de aprendizaje entran a tomar protagonismo. Si no podemos desarrollar una teoría sobre la totalidad (o parte) de nuestro problema de ingeniería que nos permita construir un modelo algorítmico adecuado, podemos construirlo (el modelo) con la ayuda de un aprendiz artificial. Este sistema puede extraer del conocimiento de que se disponga del problema, un modelo que intente dar cuenta de su estructura computacional, por ejemplo, en forma de medidas o bien de reglas que expertos que trabajan en el problema determinen. De esta manera es posible construir sistemas de procesado de la información que históricamente han sido difíciles de constituir. Aunque como ya se ha visto, esto será únicamente posible en aquellos problemas en los que se disponga de un cierto conocimiento empírico (medidas, reglas). El sistema de aprendizaje necesita este conocimiento empírico para construir de forma automática el algoritmo. Ello resulta difícil o imposible de determinar de forma manual. Así en problemas de difícil modelización y en los que se dispone de un conocimiento empírico de los mismos, es todavía posible utilizar como paradigma de diseño los tres niveles de Marr si insertamos un aprendiz artificial que haga el papel de implementador automático de algoritmos (Fig. 4). Es posible, sin embargo, que la solución del aprendiz deba ser revisada y posiblemente corregida a través de un nuevo análisis del problema que ahora es más factible ya que se tiene un sistema físico en funcionamiento, y que describe mejor el problema a resolver. De esta manera el diseño en este tipo de sistemas es del tipo “meet-in-the-middle” (“top-down” y “bottom-up” a la vez). 4 Tecnología de aprendizaje Conocimiento teórico incompleto Problema mal definido ¿Qué? Conocimiento Teoría computacional a priori incompleta Conocimiento datos empírico Especificaciones: •funciones •restricciones Char *output= “United”; Aprendiz Datos de entrenamiento, validación y prueba Construcción física. H&S Figura 4. Proceso de diseño en un sistema con aprendizaje. 2. NIPS (Neural Information Processing System). Si como ingenieros debemos tratar con problemas de difícil modelización, que disponen de cierto conocimiento empírico extraído de los mismos, es posible entonces utilizar un sistema de aprendizaje como herramienta central integrada (“embedded”) en un diseño del tipo “meet-in-themiddle”. En la actualidad existen múltiples opciones a la hora de escoger sistemas de aprendizaje, siendo una de las más importantes los sistemas neuronales de procesado de la información (NIPS), también conocidos como sistemas conexionistas, redes neuronales artificiales (ANN) o simplemente redes neuronales (RN). Las ANN surgieron históricamente al crearse sencillos modelos matemáticos que intentaban explicar el comportamiento a nivel macroscópico de los sistemas neuronales biológicos (McCulloch, 1965). Desde entonces la relación entre los modelos neuronales artificiales y los biológicos no sólo se ha mantenido sino que se ha ampliado. Así podemos encontrar que modelos de redes neuronales artificiales, como el perceptrón multicapa o los mapas auto-organizativos de Kohonen, se parecen a la computación realizada en el cerebro (p.2; Haykin, 1994) (Kohonen, 1987) (Anderson, 1995) debido fundamentalmente a (ver Fig. 5): 1. Su arquitectura masivamente paralela y distribuida formada por neuronas (nodos, simples procesadores) conectadas entre sí dando lugar a una red, 2. Su conocimiento que es adquirido a través de un proceso de aprendizaje y almacenado en las conexiones entre neuronas. 3. Su capacidad computacional que puede ser considerada como adaptativa, autoorganizada y asociativa. Estas características hacen de ellos, sistemas atractivos para resolver problemas de inteligencia artificial, ya que uno puede tener la esperanza de que el comportamiento de las ANN se parezca al del cerebro. Aunque es necesario decir que el hecho de definir la computación neuronal artificial como un proceso de computación similar al del cerebro es claramente incompleto y puede inducir a importantes errores de apreciación en cuanto a las posibilidades reales de estos dispositivos. Se hace necesario definir su estilo de computación en términos menos especulativos y más 5 matemáticos. Ante todo las ANN geometrizan la computación. Estos sistemas utilizan representaciones internas numéricas para tratar con los estímulos que reciben y producir sus respuestas, construyendo transformaciones entre diferentes espacios multidimensionales numéricos para poder asociar de manera adecuada los estímulos de entrada con respuestas adecuadas en el espacio de salida. Así si asociamos a cada espacio multidimensional una norma, la neurocomputación puede entenderse dentro de un marco vectorial. Los números se transforman entonces en vectores y el comportamiento interno (o a nivel microscópico) de las ANN se puede interpretar geométricamente (Fig. 6). Arquitectura .5 .5 X 5.2 .9 .8 -.8 1 -2.5 .2 Y 1 .5 1 Problema mal definido datos HQWUDGD QHXURQD FRQH[LyQ VDOLGD Algoritmo de aprendizaje Figura 5. Las redes neuronales artificiales. Elementos y Características. A nivel macroscópico estos sistemas se pueden considerar en la mayoría de los casos como procesadores estadísticos de la información (Fig. 7). Es decir, suelen inferir (habitualmente de manera no paramétrica) a partir de los datos, determinadas estadísticas pertenecientes a los vectores aleatorios que conforman los espacios de entrada y salida. Cabe decir que la computación en términos estadísticos resulta un marco adecuado, puesto que para construir su solución, estos sistemas deben descubrir las regularidades o relaciones existentes entre los datos, que habitualmente muestran un cierto grado de ambigüedad. Así nos podemos encontrar que cada vez con mayor frecuencia las ANN son presentadas y estudiadas en un marco eminentemente estadístico (Bishop, 1995)(Jordan, 1996)(Bishop, 1996)(Ripley, 1997), aunque cabe decir que este tratamiento no es novedoso (Nilsson, 1965) (Duda, 1973). 6 1(x) ... ... x H w1 M(x) g(x) wM + τ(g(x)) M x g>0 V v τ g dH X -∞ g>0 +∞ a b wM+1 g(x)= ∑wi φi (x)+wM+1 & H’ f(x) & & ( )= g v (v& ) d H − d i=1 & & & w (v ) si v & w T & w + w & si v & T M +1 w + w H ≥ 0 M +1 < 0 Figura 6. Las ANN como procesadores geométricos. X . . ^ P(j/X) . . . . . . ^ P(Ci/X) ^ P(Ci/J) Figura 7. Las ANN como procesadores estadísticos. 2.1. Elementos. Los elementos de los que constan las ANN son los siguientes (Rumelhart, 1986): • • • • unidades de procesado (neuronas) que siguen un modelo de activación determinado (modelo neuronal) una forma de conexión entre las unidades y una regla de propagación a través de esas unidades (arquitectura de la red) una regla de aprendizaje (algoritmo de aprendizaje) que modifique a partir de la experiencia las conexiones entre unidades y/o los parámetros ajustables de las neuronas una conexión de la red a través de un conjunto de entradas y salidas con el entorno dentro del cual debe operar 2.1.1. Modelos neuronales. Una neurona o nodo es el elemento de procesado de información básico dentro de una red neuronal. En general existen muchos modelos neuronales diferentes ya que en la actualidad se ha desarrollado un amplio trabajo en este campo. No obstante hay algunos modelos que son los más conocidos ya que son los más utilizados para una gran parte de aplicaciones. De entre estos destacamos los siguientes: 7 1. el modelo perceptrón & & & M f (x ) = τ (g ); donde g (x ) = ∑ wi φ i (x ) + w M +1 (1) i =1 2. el modelo basado en la distancia de Mahalanobis & & & & & & f (x ) = τ (g ); donde g (x ) = (x − w ) A(x − w ) (2) ... x . . w1 ... X 1(x) M(x) M T g(x) + wM wM+1 g (x ) = ∑ w φ (x ) + w & & i M +1 i i =1 τ(g(x)) f(x) τ 1 (g ) = g ; lineal k τ 2 (g ) = sigmoide −β ; + 1 e g + 1 si g ≥ 0 τ 3 (g ) = ; escalón − 1 si g < 0 Figura 8. Neurona del tipo perceptrón. X . . x & w, A g(x) τ(g(x)) f(x) & & & T & & g (x ) = (x − w) A(x − w) τ 1 (g ) = g ; lineal τ 2 (g ) = e − βg ; exp onencial Figura 9. Neurona basada en la distancia de Mahalanobis. 2.1.2. Arquitecturas de red. Una vez elegido el tipo de neuronas o nodos, es necesario adoptar una topología determinada en el conexionado entre las neuronas y una forma de propagar las señales a través de la red resultante. Una manera habitual de estructurar las neuronas es organizarlas en capas interconectadas entre ellas. Puesto que suelen implementarse de manera digital, su activación es síncrona es decir se propagan a la vez todas las señales de una capa a la siguiente y así sucesivamente. En este marco nos podemos encontrar al menos con cuatro tipos de arquitectura de red: 8 1. Red “feedforward” de una sola capa. El tipo de red más simple, organizada en forma de capas, es aquella que tiene una única capa de neuronas (Fig.10). En ella hay una capa de entrada formada por nodos de entrada que se proyecta a la capa de salida, pero no al revés. Es decir la red proyecta sus conexiones únicamente de entrada hacia salida. X . . . . . . . . f(X) Figura 10. Arquitectura de red feedforward de una sola capa. 2. Red “feedforward” de más de una capa. En este tipo de redes feedforward hay una o más capas ocultas (Fig. 11). La función de las neuronas ocultas es intervenir entre la señal de entrada externa y la red de salida proporcionando al sistema un mayor poder computacional. Estas redes pueden estar totalmente conectadas, es decir todo nodo de una capa se conecta a todo nodo de la siguiente capa, o no. X .. ... . . . . . . Capa Capa de Capa entrada oculta #1 oculta #2 . . . . . . f(X) Capa de Salida Figura 11. Arquitectura de red feedforward de más de una capa. 3. Red recurrente. Se distingue de la red feedforward debido a que tiene al menos un bucle de retroalimentación, es decir alguna salida de algún nodo esta conectado hacia atrás (Fig.12). 4. Red “winner-takes-all”. En estas redes de una única capa existen conexiones laterales de inhibición que hacen que para cada patrón de entrada se active una única neurona (Fig.13). 9 . X . z −1 . . . . . . . . ... . . . f(X) . . z −1 Figura 12. Arquitectura de red recurrente. X .. Capa de entrada . . . . f(X) . . Capa de Salida Inhibición lateral Figura 13. Arquitectura winner-takes-all. 2.2. Aprendizaje. Una de las capacidades que hacen atractivas a las ANN es su capacidad para aprender de su entorno y mejorar su respuesta de acuerdo con alguna medida predefinida a través de un proceso de aprendizaje, que se da a lo largo del tiempo. Aprender significa básicamente que la red sufre un cambio de parámetros. Mientras dura el aprendizaje los parámetros libres de la red se adaptan a través de un proceso de estimulación del entorno en el que la red está inmersa (p.45; Haykin, 1994). El objetivo de dicho cambio es mejorar su respuesta al entorno que se cuantificará con la medida de que el algoritmo de aprendizaje dispone. 2.2.1. Paradigmas de aprendizaje. Existen diferentes tipos de aprendizaje que identifican diferentes maneras de relacionarse con el entorno. Destacamos las tres clases básicas de paradigmas de aprendizaje: • Aprendizaje supervisado. El elemento esencial del aprendizaje supervisado es que se dispone de un maestro externo. En términos prácticos esto significa que el sistema tiene un conocimiento del entorno, representado a través de un conjunto de ejemplos de entrada y salida {(xi, yi)}. El objetivo del proceso de aprendizaje es la construcción de una solución con las muestras extraídas del entorno que refleje su estructura computacional. Así el algoritmo de 10 aprendizaje irá pasando repetidas veces el conjunto de muestras por la red de manera que esta consiga reproducir para cada muestra de entrada xi, la deseada respuesta yi. Para ello se dispondrá de una función que evalúe en cada instante lo bien o lo mal que la red consigue reproducir la salida deseada, adaptándose de forma que cada vez la red reproduzca mejor el conjunto de muestras (Fig.14). Xi .. ... . . . . . . . . . . . . f(Xi) yi datos Algoritmo de aprendizaje + + ei T={(x i ,y i )} i=1..N Figura 14. Aprendizaje supervisado. Diagrama de bloques. • Aprendizaje de refuerzo. En un aprendizaje en línea de una función a través de un proceso de prueba y error diseñado para maximizar una medida de la respuesta del tipo escalar denominada señal de refuerzo. A diferencia del aprendizaje supervisado, aquí se dispone de {(xi)} y de un crítico que nos proporciona en cada instante la señal de refuerzo ri. Así el sistema deberá ejecutar una acción sobre el entorno para una entrada xi y esperar la respuesta del crítico en forma de la señal ri que le indicará si el sistema está ejecutando la acción correcta o no. Entonces el sistema únicamente se adaptará si no está respondiendo de manera correcta al estímulo de entrada (Fig.15). 11 Xi .. ... . . . . . . . . . Algoritmo de datos ei aprendizaje f(Xi) . . . Crítico xi T={(x )} i i=1..N Figura 15. Diagrama de bloques del aprendizaje de refuerzo. • Aprendizaje no supervisado o auto-organizado. En el aprendizaje auto-organizado no existe ningún maestro ni señal de refuerzo. Unicamente se dispone de un conjunto de muestras {(xi)} pertenecientes al espacio de entrada. El sistema se adapta a estas muestras de acuerdo con una medida que representa la calidad de representación de la red del espacio de entrada (Fig.16). • Xi .. datos ... . . . . . . . . . . . . f(Xi) Algoritmo de aprendizaje T={(x i )} i=1..N Figura 16. Diagrama de bloques del aprendizaje no supervisado o auto-organizado. 2.2.2. Tareas a aprender. La elección de un paradigma de aprendizaje viene bastante condicionada por el tipo de tarea que debe la red neuronal aprender. Algunas de estas tareas o problemas a resolver pueden ser las que 12 siguen: 1. Aproximación de funciones. Dada una función no lineal desconocida y=f(x) representada por un conjunto de muestras {(xi,yi)}, el problema consiste un construir un estimador de f. 2. Asociación. Existen dos formas de asociación: heteroasociación y autoasociación. En el primer tipo se pide que la red asocie un conjunto de pares entrada-salida {(xi,yi)}, mientras que en la segunda que sea capaz de recuperar a la salida versiones ruidosas del conjunto de muestras {(xi)} que se le presenten. 3. Clasificación de patrones. En los procesos de clasificación, los patrones (o vectores) de entrada deben de asignarse a un número fijo de clases. Se dispone de un conjunto de patrones etiquetados (se indica a que clase pertenecen) {(xi,equiqueta de clasei)} y se pide la construcción, a partir de dichos datos, de un clasificador que asigne correctamente futuros patrones de entrada a la clase que pertenecen con la mínima probabilidad de error posible. 4. Control. En este caso existe una planta a controlar que puede ser definida como {x(t),y(t)} donde x(t) es el control de entrada e y(t) es la salida de la planta resultante. El objetivo es construir un controlador de esta planta. 2.3. Ventajas de los NIPS. El uso de las redes neuronales permite aprovecharse de algunas de las intrínsecas características asociadas a estos dispositivos: 1. No-linealidad. Las neuronas o los nodos que forman parte de las redes son esencialmente elementos no lineales. De esta manera la red resultante también lo es. Históricamente la mayoría de los sistemas de procesado de la información han sido construidos utilizando dispositivos lineales, ya que han resultado más fáciles de estudiar y construir aunque por ello ciertos problemas intrínsecamente no lineales no han podido ser suficientemente bien tratados. Por consiguiente las redes neuronales pueden rellenar aquellos vacíos que los sistemas de procesado lineales no han podido ocupar. 2. Capacidad de estimación libre de modelo. Las ANN pueden estimar una función sin necesidad de conocer un modelo matemático que nos diga de que manera las salidas dependen de las entradas. De hecho muchos modelos neuronales pueden ser estudiados dentro de la inferencia estadística no paramétrica, ya que estiman a partir de los datos diferentes estadísticas sin asumir un modelo probabilístico concreto. 3. Autoprogramación. Como comentábamos anteriormente estos sistemas construyen ellos mismos un algoritmo a partir de datos empíricos extraídos del problema. Por lo tanto, no necesitan disponen de un algoritmo prefijado para el problema, sino que exploran los datos e infieren gracias a ellos un algoritmo. En fin, se autoprograman. De esta manera es posible construir soluciones a problemas para los que la definición manual de un algoritmo 13 resulta insatisfactorio (y algunas veces es imposible). 4. Tolerancia a fallos. Habitualmente podemos encontrar que en muchas redes neuronales la degradación de su respuesta frente a condiciones adversas (por ejemplo en caso de que algunas conexiones o neuronas fallen) no es abrupta sino suave. Es decir a medida que van fallando más partes la respuesta se ha degradando poco a poco. 5. Paralelismo masivo. Debido a la naturaleza masivamente paralela de los modelos neuronales es posible acelerar considerablemente el cálculo que deben realizar. Además esta misma característica les hace candidatos ideales para ser implementados utilizando tecnología VLSI. Referencias (Anderson, 1995) Anderson, James A. "An Introduction to Neural Networks", MIT Press, 1995 (Bishop, 1995) Bishop, Christopher M. "Neural Networks for Pattern Recognition", Oxford University Press, 1995 (Bishop, 1996) Bishop, Christopher M. "Theoretical Foundations of Neural Networks", Technical Report: NCRG/96/024, Aston University, also as Physics Computing '96, Krakow, Poland, 1996 (Brama, 1997) Brama, Dan and Maimon, Oded. "The Design Process: Properties, Paradigms, and Structure", IEEE Transactions on Systems, Man, and Cybernetics- Part A: Systems and Humans. Vol. 27, No.2, p. 146-66, March 1997 (Duda, 1973) Duda, R.O. & Hart, P.E. "Pattern Classification and Scene Analysis", WileyInterscience, 1973 (Haykin, 1994) Haykin, Simon. "Neural Networks. A Comprensive Foundation", IEEE Press, 1994 (Jordan, 1996) Jordan, Michael I. & Bishop, Christopher M. "Neural Networks", A.I. Memo No. 1562, Artificial Intelligence Laboratory, MIT, 1996 (Kohonen, 1987) Kohonen, Teuvo. "Adaptive, associative, and self-organizing functions in neural computing", Applied Optics, Vol. 26, No. 23, 1 December 1987 (Marr, 1977) Marr, David. "Artificial Intelligence- A Personal View", Artificial Intelligence, Vol. 9, p. 37-48, 1977 (Marr, 1982) Marr, David. "Vision- A Computational Investigation into the Human Representation and Processing of Visual Information", Freeman, 1982 14 (McCulloch, 1965) McCulloch, Warren S. "Embodiments of Mind", MIT Press, 1965 (Nilsson, 1965, 1990) Nilsson, Nils J. "The Mathematical Foundations of Learning Machines", Morgan Kaufmann, 1990 (Ripley, 1997) Ripley, B.D. "Can Statistical Theory Us Use Neural Networks Better?", Proceedings of the Interface '97, 29th Symposium on the Interface: Computing Science and Statistics, 1997 (Rumerhart, 1986) Rumelhart, D.E., Hinton, G.E. & McClelland, J.L. "A General Framework for Paralle Distributed Processing" en "PDP: Explorations in the Microstructure of Cognition", Vol 1: Foundations, MIT Press, 1986 15