• No se han encontrado resultados

Análisis y desarrollo de un sistema de aprendizaje en redes paralelas

N/A
N/A
Protected

Academic year: 2020

Share "Análisis y desarrollo de un sistema de aprendizaje en redes paralelas"

Copied!
163
0
0

Texto completo

(1)FACULTAD DE INFORMÁTICA UNIVERSIDAD POLITÉCNICA DE MADRID. Trabajo Fin de carrera ANÁL ISIS. Y. DESARROLLO DE UN SISTEMA DE. APRENDIZAJE EN REDESPARALELAS. Alumna: Mª del Carmen Tarrat Alcalde Tutor: Gabriel Cristóbal Pérez Septiembre, 1987.

(2) ÍNDICE. l. INTRODUCCIÓN. 1. 2. ARQUITECTURAS PARALELAS. EL CONEXIONISMO 2 . 1 . INTRODUCCIÓ N. 6. 2.2. CLASIFICACIÓ N DE LOS SISTEMAS CONEXIONISTAS. 10. 2.3. REPRESENTACIONES DISTRIBUIDAS. 13. 2 . 4 . E L SISTEMA NETL. 15. 2.5. REDES D E TRANSMISIÓ N D E VALORES. 21. 2.6. APRENDIZAJE D E REPRESENTACIONES. 25. 2 . 6 . 1 . RETROPROPAGACIÓ N DEL G RADIENTE. 26. 2.6.2. PROCEDIMIENTO A R-P. 28. 2 . 7 . SATISFACCIÓ N D E RESTRICCIONES E N REDES PARALELAS. 29. 2 . 8 . APLICACIONES DE LOS SISTEMAS CONEXIONISTAS. 30. 3. LA MÁQUINA DE BOLTZMANN 3 . 1 . INTRODUCCIÓ N. 32. 3 . 2 . ESTRUCTURA Y COMPORTAMIENTO D E LA MÁQUINA. DE BOLTZMANN. 33. 3.3. REPRESENTACIÓ N DEL CONOCIMIENTO EN LA MÁQUINA. DE BOLTZMANN. 45.

(3) 4. APRENDIZAJE 4.1. INTRODUCCIÓ N. 46. 4.2. APRENDIZAJE EN LA MÁQUINA DE BOLTZMANN. 47. 4.3. ALGORITMO DE APRENDIZAJE. 54. 4.4. CR ÍTICA DE LOS PROCEDIMIENTOS DE APRENDIZAJE. 58. 5. EJEMPLO DE APRENDIZAJE EN UNA MÁQUINA DE BOLTZMANN 5.1. EL PROBLEMA DEL CODIFICADOR. 60. 5.2. COMUNICACIÓ N DE INFORMACIÓ N ENTRE MÓ DULOS. 64. 6. COMPORTAMIENTO DE LOS SISTEMAS CONEXIONISTAS 6.1. INTRODUCCIÓ N. 67. 6.2. INTERSECCIÓ N DE CONJUNTOS. 68. 6.3. CIERRE TRANSITIVO. 69. 6.4. CONTEXTOS Y PARTICIONES. 70. 6.5 . RECONOCIMIENTO POR MEJOR APROXIMACIÓ N. 71. 6.6. RECONOCIMIENTO GESTALT. 72. 7. SIMULACIÓN DE LA MÁQUINA DE BOLTZMANN EN UN COMPUTADOR LISP 7 .1. INTRODUCCIÓN. 74. 7 . 2 . ESTRUCTURA DE LA RED. 76. 7 .3. ALGORITMO DE APRENDIZAJE. 79. 7.4. INTERFACE DE CREACIÓN DE LA RED. 84.

(4) 8. BIBLIOGRAFÍA. 88. 9. APÉNDICES. 91.

(5) l. INTRODUCCIÓN. El cerebro humano tiene una estructura muy diferente a la de los computadores digitales convencionales. Está compuesto por un gran número de pequeñas unidades, las neuronas, capaces de actuar en paralelo, en lugar de tener un único procesador muy rápido y potente pero poco flexible. También es diferente en el modo de almacenar el conocimiento, ya que el cerebro lo hace modificando la interacción entre sus elementos de proceso, mientras que los computadores lo hacen mediante la asignación de bits en una memoria de propósito muy general, pero pasiva. También hay que considerar la resistencia del cerebro ante pequeños daños físicos, y su capacidad para aprender de la experiencia en lugar de ser programado explícitamente. A pesar de los numerosos estudios realizados sobre el comportamiento del cerebro todavía no se ha conseguido averiguar cuál es la que utilizan las neuronas para representar las estructuras del conocimiento, a menudo muy complejas. También es un misterio para nosostros, quizás aún mayor, cómo el sistema de percepción (vista, oído, tacto, etc.) es capaz de transformar el cúmulo de señales que recibe en representaciones internas útiles y consistentes; sin mencionar la rapidez con que realiza dicha transformación. Por supuesto, tampoco sabemos cómo aprende nuevos esquemas sin utilización aparente de un procedimiento explícito y general. Recientes. -1-.

(6) investigaciones han presentado un gran número de teorías diversas sobre el funcionamiento del cerebro, aunque ninguna de ellas haya sido demostrada suficientemente para ser admitida como cierta. Para muchos investigadores, el cerebro utiliza mecanismos de cálculo que pueden aplicarse a las arquitecturas masivamente paralelas desarrolladas en los últimos años en el campo de la Inteligencia Artificial. La única dificultad consiste en descubrir cuáles son estos mecanismos. Un objetivo muy importante de la Inteligencia Artificial ha sido, desde sus primeros tiempos, la búsqueda de esquemas de aprendizaje aplicables a los computadores. El aprendizaje se puede considerar como una de las capacidades más relevantes del comportamiento inteligente, y por ello, cualquier sistema que pretenda simular dicho comportamiento ha de ser capaz de realizar algún tipo de aprendizaje. Las primeras investigaciones se realizaron sobre mecanismos como el Perceptron y otros tipos de redes asociativas. Estos sistemas mostraron la posibilidad de asignar pesos a las conexiones entre las unidades de entrada y salida, de forma que la presentación de un vector de entrada causara la activación de las unidades de salida adecuadas. Sin embargo, la investigación sobre las redes asociativas simples no tiene mucho interés, ya que la mayoría de los problemas que se presentan en la realidad son demasiado complejos para poder ser abordados por estos sistemas.. Es preciso. modificar las redes asociativas, añadiéndoles niveles internos de unidades "escondidas" (hidden units). El aprendizaje, entonces, se convierte en la tarea de decidir cómo se deben utilizar estas unidades escondidas. Encontrar un algoritmo de aprendizaje adecuado es un problema de enorme dificultad, porque lo que se pretende es que la red encuentre su propio esquema de representación, y el espacio de esquemas posibles en el que ha de buscar es demasiado grande para que pueda ser explorado de forma exhaustiva.. -. 2. -.

(7) Las investigaciones sobre algoritmos de aprendizaje han venido desarrollándose desde hace muchos años, obteniéndose pocos progresos. Sin embargo, en los últimos años se han propuesto nuevos algoritmos de aprendizaje, la mayoría de ellos de gran interés. Algunos de ellos utilizan un mecanismo de aprendizaje basado en la disminución del gradiente en el espacio de pesos de la red. Es decir, ajustan los pesos de las conexiones de forma que se reduzca el error producido en el funcionamiento global de la red. La Máquina de Boltzmann y el procedimiento de Retropropagación del gradiente utilizan este mecanismo, y han demostrado su utilidad en un gran número de problemas. Estos dos sistemas utilizan representación del conocimiento distribuida, es decir, el conocimiento en lugar de estar localizado en unidades individuales de la red, se encuentra en los diferentes patrones de activación del conjunto de las unidades que la componen. El problema más importante de estos sistemas es su enorme lentitud, que se ve incrementada con el aumento del número de unidades de la red. También hay que mencionar en su contra la diferencia que parece existir entre el verdadero funcionamiento del cerebro y el proceso de disminución progresiva del gradiente. Los objetivos que se plantean actualmente los investigadores en este área se fijan en la obtención de métodos que aceleren el procedimiento de disminución del gradiente y en encontrar la forma de organizar las redes multinivel para que sus unidades consigan minimizar el error global mediante la consecución de objetivos locales. Las redes masivamente paralelas están alcanzando un gran éxito en la resolución de problemas de reconocimiento y en las denominadas búsquedas de relajación en las que han de satisfacerse múltiples restricciones simultáneamente. Sin embargo, existen muchas objecciones que plantear a los esquemas masivamente paralelos, y han de resolverse algunos problemas graves antes de que puedan ser. -. 3. -.

(8) efectivamente aceptados como un nuevo estilo de computación. Entre las cuestiones más importantes se encuentran las siguientes: - ¿La red llegará a estabilizarse o permanecerá en una oscilación indefinida sin ningún objetivo?. - Admitiendo que la red llegue a estabilizarse deteniendo su funcionamiento en algún momento, ¿cuál es el significado de tal proceso?, ¿qué calcula la red con ello?. Es necesario poder determinar qué es lo que la red debe calcular y comprobar que efectivamente lo hace. - ¿Cuánto tiempo necesita la red para detenerse en una solución?. En caso de necesitar miles de iteraciones hasta alcanzar el equilibrio difícilmente puede admitirse el sistema como un modelo de la forma en la que el cerebro humano resuelve los problemas de satisfacción de restricciones, ya que éste lo hace muchísimo más rápido. - ¿Qué cantidad de información necesita cada unidad para poder transmitirla a las unidades de su entorno?. En muchos de los esquemas de relajación las unidades comunican a las demás valores muy afinados en cada una de las iteraciones del proceso. Este comportamiento no se corresponde con el que se supone que existe entre las neuronas del cerebro, por lo que es necesario buscar uno más adecuado. - ¿Cómo han de ser los pesos que codifican el conocimiento adquirido por el sistema?. Algunas tareas de bajo nivel permiten que estos pesos sean ajustados por el programador, pero en problemas de más alto nivel es necesaria la utilización de algún procedimiento de aprendizaje que se encargue de ajustar los pesos automáticamente.. -. 4. -.

(9) Todas estas objecciones van resolviéndose poco a poco, encontrándose arquitecturas paralelas y procedimientos de aprendizaje cada vez más interesantes y efectivos. Este trabajo presenta una visión general de las arquitecturas conexionistas más interesantes estudiadas hasta el momento, especificando sus características principales, así como sus ventajas y sus inconvenientes. Todas ellas poseen características similares, pero sus prestaciones son muy diferentes para cada una de las tareas que se les proponen. Se hace especial mención de una de estas arquitecturas, la Máquina de Boltzmann, cuya estructura y algoritmo de aprendizaje se estudian en detalle. La Máquina de Boltzmann puede considerarse como un tipo particular de red paralela que es capaz de aprender las restricciones que caracterizan a un dominio concreto mediante presentación de ejemplos extraidos del mismo. La red modifica los pesos de sus conexiones para construir un modelo interno que produzca ejemplos con. la misma distribución de probabilidad que los que le han sido mostrados. Una vez terminado el proceso de aprendizaje, la red es capaz de interpretar correctamente cualquier entrada que se le presenta, obteniendo la salida correspondiente. Cuando se le presenta un ejemplo de entrada parcial, la red puede completarlo encontrando los valores de las variables internas que han generado el ejemplo parcial, y utilizándolos para generar el resto del ejemplo. Asimismo, en este trabajo se presentan los fundamentos matemáticos que justifican el funcionamiento del sistema, así como sus posibilidades de aprendizaje.. - 5-.

(10) 2. ARQUITECTURAS PARALELAS. EL CONEXIONISMO. 2.1. INTRODUCCIÓN. La tecnología desarrollada hasta ahora en el campo de la Inteligencia Artificial es capaz de simular algunas de las funciones mentales de alto nivel que los seres humanos realizan con bastante facilidad. Sin embargo, todavía un computador no ha sido capaz de incorporar a su funcionamiento ciertos aspectos fundamentales de lo que comúnmente se considera el "comportamiento inteligente". Entre estos destacan especialmente el sentido común y casi todas las capacidades sensoriales (visión y reconocimiento de lenguaje principalmente). El error parece encontrarse en el planteamiento original, es decir, en el empeño de simular el comportamiento del cerebro humano, una máquina de proceso paralelo, con los computadores de los que se dispone en la actualidad, cuyo funcionamiento es eminentemente secuencial. Algunos de los elementos que parecen faltar a la actual tecnología utilizada en Inteligencia Artificial, y que el cerebro humano posee, son los siguientes: - La memoria humana es capaz de almacenar una gran cantidad de conocimiento de tipos muy diversos, y además también puede recuperarlos de forma muy rápida y sin esfuerzo aparente. El fenómeno denominado sentido común, que. -. 6. -.

(11) poseen todos los seres humanos, parece estar estrechamente relacionado con la disponibilidad de una gran cantidad de conocimiento, pero no aislado y disperso, sino fuertemente ligado y relacionado. Los computadores son capaces de almacenar gran cantidad de información, pero hasta el momento no se ha descubierto la forma en que dicha información pueda convertirse en conocimiento que se incorpore a las actividades de la máquina de una forma efectiva. - Las habilidades en el campo del reconocimiento que exhiben los seres humanos superan a las de los computadores en la mayoría de los dominios. En todas las actividades relacionadas con el reconocimiento, ya sea visión, entendimiento del lenguaje hablado o cualquier otro tipo de tarea de alto nivel, la operación clave es la capacidad de localizar, entre muchos candidatos, el que mejor se ajusta al elemento que debe ser identificado. Los humanos tenemos esa capacidad, e incluso podemos utilizarla adecuadamente con datos de entrada distorsionados o fuertemente contaminados con ruido. Los computadores, por el contrario, todavía no son capaces de realizar localizaciones tan rápidas como las que cualquier persona puede hacer, aparentemente de la forma más sencilla y natural. - Tradicionalmente la Inteligencia Artificial ha centrado sus esfuerzos en la búsqueda de una forma de razonamiento basada en el tratamiento simbólico de la información, que es el que se creía fundamento básico de la inteligencia humana. Sin embargo, si bien este tipo de razonamiento es utilizado en ocasiones por el hombre, también es cierto que en muchos casos la información es tratada de una forma mucho más sencilla, que todavía no ha podido ser realmente identificada. Hasta ahora, la Inteligencia Artificial ha venido utilizando estrategias cada vez más complejas para conseguir reducir la extensión del espacio de búsqueda en problemas complejos, disminuyendo el tiempo de computación empleado. Existe, sin embargo, una alternativa a este planteamiento, que consiste en resolver los problemas con métodos menos complicados, de tipo cíclico, utilizando enormes. -. 7. -.

(12) cantidades (del orden de millones) de procesadores sumamente simples para conseguir la resolución de tareas en un tiempo razonable. Este planteamiento está claramente orientado a tratar de reproducir los esquemas cerebrales, incluyendo para ello la utilización de estructuras parecidas a la organización del cerebro. Algunos investigadores han comenzado a explorar la utilidad del uso de arquitecturas masivamente paralelas para superar las limitaciones del proceso simbólico convencional utilizado hasta ahora. Muchas de estas arquitecturas paralelas se denominan "conexionistas", ya que el conocimiento permanente que posee el sistema se encuentra almacenado en forma de patrones de conexión, normalmente denominados fuerzas de conexión, entre los elementos de proceso. De esta forma, el mismo conocimiento es el que determina de modo directo cómo deben interactuar entre sí los elementos simples de proceso, en lugar de permanecer almacenado de forma pasiva en una memoria esperando que la CPU acceda a consultarlo. Existen diferentes sistemas que pueden ser denominados conexionistas, algunos utilizan representaciones simbólicas y formales y otros, por el contrario, se basan en aproximaciones más analógicas y simples. El término "conexionismo" fue utilizado por primera vez por Jerry Feldman, refiriéndose al estudio de un cierto tipo de arquitecturas masivamente paralelas que empezaban a aparecer en las investigaciones dentro de la Inteligencia Artificial. Los diferentes sistemas conexionistas tienen en común su estructura. Ésta se compone de un gran número de elementos simples, denominados "unidades", conectadas unas a otras de diferentes formas, componiendo un sistema en red con topologías diversas. Cada una de las unidades almacena internamente muy poca cantidad de información, normalmente unos pocos "bits de marca" o un valor numérico o "nivel de activación". Esta información de los elementos simples es utilizada como memoria de trabajo a corto plazo. El almacenamiento de información a largo plazo se consigue alterando el patrón de interconexiones entre las unidades, o. -8-.

(13) modificando una cantidad asociada con cada conexión, que se conoce como su "peso" o "fuerza". La utilización de las conexiones para almacenar la información en lugar de las convencionales celdas de memoria, es el motivo del nombre dado en general a todas las arquitecturas de este tipo. Las unidades de proceso en estos sistemas no se rigen por programas individuales. Sólo pueden realizar un pequeño conjunto de acciones, como aceptar señales de entrada, realizar determinadas operaciones booleanas o aritméticas simples sobre los datos, o enviar señales a las unidades del sistema a las que estén conectadas. Estas operaciones pueden ser totalmente autónomas, incorporándose como parte del comportamiento interno de cada unidad; o pueden controlarse mediante el uso de comandos por parte de un controlador externo que puede ser incluso un computador convencional. Una arquitectura de este tipo es capaz de tener en cuenta gran cantidad de conocimiento de forma simultánea cuando ha de tomar una decisión, y puede también valorar muchas opciones a la vez. Esta capacidad se debe al hecho de que las conexiones pueden llevar varias señales simultáneamente, y las unidades elementales pueden funcionar en paralelo integrando todos los datos de entrada que reciben de otras unidades. En algunos sistemas conexionistas el paralelismo se utiliza para realizar cierto tipo de búsqueda "bruta" entre todas las unidades que componen la red, considerando cada una de ellas como un componente elemental dentro de la base de conocimiento.. Otros sistemas hacen uso del paralelismo para. permitir. representaciones más ricas y menos "convencionales". Este tipo d e esquemas representan cada elemento de conocimiento mediante un patrón de actividad sobre un determinado número (siempre una cantidad grande) de unidades elementales. Este mismo grupo de unidades puede representar un elemento diferente sólo modificando el patrón de actividad (los valores de las unidades o los pesos de las conexiones). La. -9-.

(14) existencia de muchas conexiones representando muchas porciones pequeñas de conocimiento hace que éstas jueguen un importante papel en la determinación de las mejores alternativas a la hora de tomar una decisión. Sea cual sea la estrategia de representación del conocimiento que se utilice dentro de la arquitectura conexionista, el interés de estas arquitecturas es evidente. Este interés se basa en su capacidad para tener en cuenta a la vez gran cantidad de conocimiento, cuestión bastante difícil de conseguir con las arquitecturas secuenciales que se utilizan actualmente.. 2.2. CLASIFICACIÓN DE LOS SISTEMAS CONEXIONISTAS. Una característica importante de los esquemas conexionistas es el tipo de señal que se transmite entre los diferentes elementos de proceso. Fahlman propone una clasificación de los sistemas en base a este concepto. La división contiene tres clases: - Sistemas que transmiten mensajes. - Sistemas que transmiten marcadores. - Sistemas que transmiten valores.. Los sistemas que transmiten mensajes son los más complejos y a la vez los más potentes. A veces su excesiva complejidad hace que no se consideren verdaderos sistemas conexionistas, ya que las unidades de proceso han de ser bastante complejas y tener una capacidad de almacenamiento grande para poder conservar los mensajes recibidos y no procesados. Estos sistemas transmiten mensajes simbólicos entre las. -. 10. -.

(15) unidades que los componen. Esta arquitectura no parece ser un modelo muy acertado del comportamiento interno del cerebro, por lo que su estudio no ha suscitado mucho interés. Los sistemas que transmiten marcadores son los más simples y también los más limitados. La comunicación entre las unidades de proceso se realiza en forma de marcadores de un bit. Cada unidad tiene capacidad para almacenar unos cuantos marcadores distintos (normalmente 16) y para realizar algún tipo de operación booleana (típicamente la operación OR) sobre los bits de marca que recibe de otras unidades. En un sistema de este tipo las unidades están conectadas mediante uniones hardware que son las encargadas de transmitir los marcadores. Estas uniones actúan de hecho como líneas dedicadas, por lo que puede existir un gran tráfico de marcadores en paralelo. En el tercer tipo de sistemas lo que se transmite entre las unidades son valores continuos o cantidades numéricas. Las unidades en estos casos realizan operaciones aritméticas sobre los valores que reciben de otras unidades de la red. Una ventaja de estas arquitecturas es que nunca llegan a colapsarse, ya que si una unidad recibe diferentes valores por varias conexiones, los combina aritméticamente obteniendo un solo valor, que es el que la unidad adopta como realmente recibido. Una diferencia importante entre el planteamiento conexionista y otro tipo de arquitecturas paralelas desarrolladas en investigaciones al respecto, denominadas "modestamente paralelas", es la capacidad que tienen los esquemas conexionistas de asignar un elemento de proceso a cada pequeña subtarea extraída de la tarea original, suponiendo siempre que existen suficientes unidades de proceso simples para poder manejar el problema propuesto. En una arquitectura paralela convencional se utiliza un número fijo de grandes y potentes procesadores, y se intenta fragmentar el problema en un número de piezas igual al número de procesadores para que cada una de ellas pueda ser ejecutada concurrentemente.. -. 11. -.

(16) En un sistema secuencial el tiempo necesario para realizar tareas como extraer un conjunto finito de elementos de la memoria o considerar un conjunto finito de hipótesis, es directamente proporcional al tamaño del conjunto, es decir, crece linealmente con el número de elementos del conjunto (elementos de memoria, hipótesis consideradas, etc.). El planteamiento que se ha llamado modestamente paralelo intenta conseguir un incremento de la velocidad de proceso con la utilización de N procesadores funcionando en paralelo. El planteamiento conexionista se basa en la realización de estas tareas en tiempo constante, pero sin embargo, en estos sistemas es el hardware utilizado el que crece linealmente con el número de elementos de memoria considerados o el número de hipótesis. Este hecho, que puede parecer un enorme obstáculo para el desarrollo de estos sistemas, no se ve tan grave si en lugar de considerar cada una de las unidades de proceso como una C P U completa, se interpreta como una clase especial de celda de memoria capaz de almacenar la información en sus conexiones, es decir, en el peso de sus conexiones con otras unidades. De esta forma se ve bastante clara la necesidad de disponer de un número suficiente de celdas de este tipo para poder representar el conocimiento que se tiene sobre una tarea en particular. Hasta el momento no hay muchos investigadores ocupados en este campo, aunque poco a poco el interés va aumentando a medida que se obtienen resultados prometedores. Pese a este escaso número de investigadores, son muchos los tipos diferentes de arquitecturas conexionistas que se han estudiado y con las que se han realizado experiencias muy interesantes.. -12-.

(17) 2.3. REPRESENTACIONES DISTRIBUIDAS. La forma más simple de representar el conocimiento en una red masivamente paralela es utilizar "representaciones locales", en las que cada concepto se representa por una parte específica de la estructura interna de la red. Por ejemplo, si el sistema tiene que trabajar con el concepto "elefante", le bastaría con activar la unidad que lo representa para poder hacer uso de él. Este tipo de representación es muy sencilla de realizar y también es fácil de entender. El problema más grave de un sistema que represente el conocimiento de esta forma es su falta de seguridad. Si por cualquier causa la unidad que representa un concepto resulta estropeada o deja de funcionar, el sistema pierde todo el conocimiento que ella contenía, y, por supuesto, todas sus conexiones dejan de tener sentido. Este hecho es la causa de muchos problemas, especialmente de fiabilidad, ya que obviamente en un sistema con millones de unidades, no es sencillo conseguir que todas funcionen correctamente en todo momento. Además, con este esquema de representación, la mayoría de las unidades estarán inactivas la mayor parte del tiempo, a no ser que se esté utilizando continuamente la parcela de conocimiento que representan. Muchos de los neurólogos y estudiosos del cerebro humano están en contra de esta teoría. Consideran que el cerebro no utiliza este esquema de representación local, sino que mantiene el conocimiento distribuido a lo largo del conjunto de las neuronas que lo componen. El mismo concepto de elefante anteriormente descrito se representaría de forma distribuida como un determinado patrón de activación sobre un número bastante grande de neuronas o unidades. A menudo se utiliza la analogía de esta interpretación del conocimiento con los hologramas, en los que, como es sabido, cada punto de la imagen se construye tomando información sobre el resto de los. - 1 3-.

(18) puntos que la componen. La representación distribuida del conocimiento, al igual que el holograma, posee una alta fiabilidad, de forma que si se destruye parte de la información la imagen aparece ligeramente degradada, pero no se pierde totalmente. Sobre una red paralela el efecto en cuanto a fiabilidad es el mismo, si se estropean una o varias unidades (o su funcionamiento no es el correcto), el patrón representado es imperfecto, pero puede ser utilizado porque esencialmente continúa siendo el mismo. Cada uno de los comportamientos macroscópicos (globales) de la red se consigue mediante la integración del funcionamiento de un gran número de unidades microscópicas. Por ello, cualquier subconjunto pequeño de estas unidades elementales, incluso elegido de forma aleatoria, puede desaparecer o funcionar incorrectamente sin que se registre ningún cambio sustancial en el comportamiento macroscópico del sistema. Esta propiedad, que hace que estas arquitecturas sean inherentemente tolerantes a fallos, resulta muy interesante para la construcción de redes de alto grado de paralelismo, es decir, compuestas por millones de unidades. Este tipo de representación distribuida tiene también sus problemas. El más importante de ellos es su falta de claridad. La dispersión del conocimiento hace que la estructura sea difícil o incluso imposible de entender por una persona que no haya intervenido en su construcción. Por el mismo motivo, resulta prácticamente imposible que cualquier persona sea capaz de modificar el conocimiento contenido en el sistema, incluso aquellas personas que lo conocen bien han de tener cuidado, ya que la alta integración e interrelación de los conceptos puede resultar alt erada fácilmente, destruyendo el significado que se le quería dar al conjunto del sistema. Añadir una pequeña cantidad de conocimiento a nivel macroscópico en el sistema requiere modificar las interacciones entre un gran número de unidades microscópicas, de forma que el efecto global represente el nuevo conocimiento adquirido. Este proceso de modificación es, por su complejidad, prácticamente imposible de realizar "a mano" incluso para un problema sencillo y una red simple con un número pequeño de unidades. Por ello es evidente la necesidad de conseguir algún tipo de esquema de. -. 14. -.

(19) aprendizaje automático que evite el enorme trabajo que supone la modificación manual de la estructura. La importancia del problema es tan grande que, de no existir tal esquema automático, las representaciones distribuidas serían casi imposibles de manejar y su estudio no merecería la pena, ya que su valor sería escaso.. 2.4:. EL SISTEMA NETL. El sistema NETL es un ejemplo de arquitectura paralela que utiliza representación local del conocimiento. Fue diseñado para permitir el almacenamiento y posterior recuperación de un gran número de aserciones o hechos simbólicos. Además se pretendía que el sistema pudiera realizar algunas búsquedas y deducciones poco complejas sobre el conocimiento que había acumulado. Un sistema NETL puede considerarse como una realización hardware de una red semántica. Una red semántica es una estructura en forma de grafo en la que los nodos representan conceptos y los arcos entre ellos representan las relaciones existentes entre los conceptos. Ambos, nodos y arcos de la red, pueden estar etiquetados con identificativos de los conceptos y relaciones que representan. La figura l(a) representa un ejemplo de red semántica que contiene cierto conocimiento relativo a elefantes, y la figura l(b) el sistema hardware que constituye la representación NETL de una parte de la misma red semántica. En un sistema NETL cada nodo de la red semántica se representa por una unidad de proceso simple. Estas unidades tienen capacidad para almacenar algunos marcadores de un bit y realizar operaciones booleanas sencillas sobre ellos. Los arcos de la red semántica también se representan por unidades de proceso simples, que están conectadas a dos o más unidades que representan nodos. Las unidades que representan a los arcos también pueden realizar operaciones booleanas sencillas sobre. - 1 5-.

(20) Ser vivo. Necesita Oxígeno. Planta. Mamífero. Gris. Sam Figura l(a). Parte de una red semántica sobre elefantes.. �------. •unidad-nodo "Elefante". �------1. ...____. unidad-arco "es un". unidad-nodo "Sam". 1-------1-. .,-'. ',. /. 1-------t - - -. /. \ 1 I ,.. Red de conmutación '. '. '. \ 1 I I. ,_______..,_. .,"'. /. Bus compartido Computador de control Figura l(b). Hardware NETL correspondiente a "Sam es un elefante". - 1 6-.

(21) los marcadores, pero normalmente su actividad suele limitarse a pasar o transmitir marcadores entre las unidades que representan nodos (unidades-nodo) a las que están conectadas. Todas las unidades del sistema NETL (unidades que representan nodos y unidades que representan arcos) pueden funcionar simultáneamente como respuesta a comandos enviados por un sistema controlador externo, normalmente un computador secuencial como los que estamos acostumbrados a utilizar. Cada vez que se añade un hecho nuevo al sistema, éste debe ser aumentado añadiéndole nuevas unidades-nodo y nuevas unidades-arco que representen el nuevo hecho introducido. La capacidad que tienen las conexiones entre las unidades-nodo y las unidades-arco de transportar señales de forma simultánea obligan a representarlas en el sistema físico como verdaderas líneas dedicadas. Estas conexiones no pueden representarse, por ejemplo, como direcciones transmitidas por medio de un bus compartido, porque no sería posible la transmisión de varias señales al mismo tiempo entre distintas conexiones. En los sistemas NETL físicos construidos hasta el momento las conexiones no son verdaderas líneas dedicadas, es decir, no existe un cable conectando cada par de unidades que lo necesitan porque resultaría excesivamente caro. La solución adoptada es la utilización de un sistema interno de conmutación que sea el encargado de conectar de forma directa las unidades cuando sea necesario para la transmisión de comandos o marcadores. Este subterfugio hace que el sistema físico carezca de la capacidad de paralelismo total que posee el modelo teórico, pero sin embargo posibilita su realización práctica. Una red NETL es capaz de realizar búsquedas e inferencias simples, pero que van más allá de las acciones que puede realizar una memoria asociativa simple. Un ejemplo de ello puede ser la operación "herencia" comúnmente utilizada en la mayor parte de los sistemas de Inteligencia Artificial. El mecanismo de la herencia permite que cualquier hecho conocido sobre un elemento de la red pueda ser aplicado a todas las subclases e individuos que se encuentran por debajo de él en la jerarquía. -. 17. -.

(22) de sus arcos de tipo "es un" (estos arcos son utilizados en las redes semánticas para representar la pertenencia de un elemento a una clase determinada de individuos). La herencia puede extenderse y aplicarse a cualquier nivel de la red, por lo que su utilización requiere un mecanismo que permita explorar de forma rápida y eficiente cualquier parte de la red. En una red NETL la herencia se consigue mediante la propagación de marcadores entre las unidades de proceso simples. Por ejemplo, si se desea encontrar el valor de una determinada característica de una unidad, el controlador se encargará de asignar el valor 1 al marcador de esa unidad, ordenando a continuación que cualquier unidad que represente un arco del tipo "es un" y tenga un nodo situado debajo de él en la jerarquía con el marcador a 1, pase este valor al nodo que está conectado con él por el otro lado (el situado por encima del anterior en la jerarquía). Cuando la red haya terminado el proceso de transmisión de marcadores y quede estabilizada, todas aquellas unidades que la componen que tengan el marcador con valor 1 son aquellas de las que la unidad original puede heredar alguna propiedad. En este momento el controlador debe ordenar a todas las unidades que representan la conexión con la característica que se busca, que aumenten el marcador de sus conexiones en una unidad, con lo que todas las unidades de la red NETL cuyo valor del marcador sea igual a 2 son las que representan la característica buscada. En este proceso pueden obtenerse bastantes unidades que verifiquen las condiciones en el caso más general, o puede obtenerse una única unidad como solución o incluso ninguna. El procedimiento seguido para obtener este valor constituye una secuencia de inferencia de carácter completamente general. Es decir, se puede obtener cualquier información presente en la red sin más que seguir el procedimiento descrito con asignaciones concretas de los identificadores de las unidades-nodo y las unidades-arco. La capacidad de los sistemas NETL para realizar en paralelo y de forma muy eficiente intersección de conjuntos, los hace muy adecuados para ciertas tareas. -. 18. -.

(23) de reconocimiento altamente específicas (aunque no excesivamente frecuentes en problemas reales). Supóngase que se desea obtener toda la información que posee la red sobre un elemento del que se conocen tres características determinadas. Esto es, se buscan aquellos elementos de la red que poseen la intersección de las características especificadas. Mediante propagación de marcadores se pueden identificar todos los elementos con la primera característica y de igual forma otros dos marcadores diferentes pueden identificar los elementos que poseen las características segunda y tercera. Una vez realizada esta tarea de "marcado", el controlador sólo ha de enviar a la red el comando adecuado para que se identifiquen todas aquellas unidades de la red que posean los tres marcadores. De esta forma tan simple y rápida pueden obtenerse todos los miembros de una intersección de características. Una propiedad muy interesante de este proceso es que el tiempo empleado en la realización de la tarea es siempre constante y resulta independiente del número de elementos de los conjuntos de los que se desea obtener la intersección. Esta forma de intersección puede interpretarse como una clase especial de reconocimiento. Si se considera el proceso anteriormente descrito como reconocimiento, puede observarse que resulta muy sólido en algunos aspectos, pero a la vez se muestra bastante débil en otros. En el lado positivo hay que tener en cuenta que la red NETL puede examinar a la vez todas las descripciones que conoce, sin necesidad de utilizar ningún tipo de criterio heurístico que pudiera desechar de antemano la respuesta correcta. También cabe destacar en el lado positivo que la red no necesita conocer como entrada todas las características que identifican al o a los elementos buscados, es suficiente con un subconjunto de estos datos, con tal que se realice la identificación concreta. Pero incluso si no se conocen las características suficientes, la red es capaz de obtener un conjunto de posibilidades tan reducido como le sea posible, simplificando en ocasiones tareas de identificación de características. Esta propiedad resulta de gran ayuda en determinados tipos de problemas. En el lado. -. 19. -.

(24) positivo hay que incluir además la propiedad de poder incorporar de forma inmediata cualquier conocimiento nuevo como parte efectiva del proceso de reconocimiento que se describió anteriormente. Por último, hay que añadir la gran sencillez de este tipo de representación, perfectamentre inteligible para cualquier persona mínimamente introducida en el uso de sistemas de estas características. Como partes débiles de los sistemas NETL hay que señalar el tratamiento atómico que confiere a cada dato, representándolo por una sola unidad sea cual sea la complejidad inherente que éste tenga. Además sólo puede notar la existencia o ausencia de cada dato individual, siendo incapaz de reflejar ningún tipo de situación intermedia. En este aspecto, las redes NETL se comportan de forma similar a los sistemas simbólicos tradicionalmente utilizados en Inteligencia Artificial, obteniendo buenos resultados en dominios "limpios" en los que no se registre ninguna distorsión o alteración de los datos. Por ejemplo, no son sistemas adecuados para la resolución de problemas de percepción en los que se necesitan datos obtenidos de sensores que captan señales de bajo nivel, a menudo muy contaminadas por el ruido.. La arquitectura de un sistema NETL ha sido hasta el momento solamente simulada, nunca realizada físicamente. Sin embargo, no es una arquitectura conexionista excesivamente compleja. Sus unidades, tanto las que representan nodos como las que representan arcos, son tan simples que no resultaría muy difícil integrar varios miles de ellas en un solo chip. La causa principal que dificulta su realización práctica es la estructura de conmutación de conexiones anteriormente descrita. El diseño y posterior construcción de un sistema de conmutación adecuado a esta arquitectura parece demasiado complejo para intentar acometerlo con el estado actual de la tecnología. No hay que olvidar, sin embrago, que un estudio realizado por Fahlman demostró que la construcción de una máquina con estructura NETL costaría sólo unas cuantas veces lo que cuesta la construcción de una memoria convencional con capacidad para almacenar la misma cantidad de información. De cualquier forma,. -. 20. -.

(25) el problema parece ser solamente económico, por lo que cabe esperar que pueda ser superado en un margen de tiempo pequeño. Los sistemas NETL son casi los más utilizados en sistemas reales, aunque sólo son simulaciones la mayor parte de ellos. La "Máquina Conexionista", construida por Thinking Machines, por ejemplo, fue diseñada en parte como realización de una base de conocimiento al modo NETL, aunque el diseño hardware es todavía lo suficientemente general como para permitir la realización de muy diversos tipos de tareas. La versión actual de esta máquina está compuesta por 64000 unidades de proceso elementales, lo que le confiere suficiente capacidad para manejar una considerable cantidad de conocimiento. El proyecto de realización de una máquina conexionista con un millón de unidades de proceso resulta una perspectiva excitante, ya que con tal número de unidades sería posible manejar la cantidad de conocimiento suficiente para poder dotar al sistema de un cierto grado de sentido común. En este sentido cabe señalar que en el proyecto Esprit 11 sobre modelos conexionistas de la Comunidad Europea se pretende construir una máquina conexionista compuesta por un millón de elementos de proceso.. 2.5. REDES DE TRANSMISIÓN DE VALORES. La arquitectura de las redes NETL no era la adecuada para el planteamiento de algunos problemas de reconocimiento verdaderamente complejos que se presentan frecuentemente en el mundo real. La mayor parte de estos problemas, ya sean visión, entendimiento del lenguaje hablado o diagnóstico médico, se enfrentan con datos a menudo poco precisos, inciertos y fuertemente distorsionados por ruido, además de no ser posible un ajuste perfecto entre la estructura real y la obtenida como solución. Es también frecuente encontrar en la. -2 1 -.

(26) realidad problemas en los que algunos de los datos apoyan de forma evidente una determinada hipótesis, mientras que otros datos sólo sugieren una posibilidad. En otros problemas, por el contrario, existen datos cuya presencia es imprescindible y otros cuya aparición es importante sólo en un cierto grado. Los problemas reales presentan tal variedad y complejidad, que no pueden ser adecuadamente resueltos por un sistema que presenta las restricciones de las redes NETL. Otro tipo de arquitectura conexionista, los denominados sistemas de transmisión de valores, parecen adaptarse mejor a las exigencias que imponen los problemas extraidos de la realidad. Como ya ha sido comentado, en estos sistemas las conexiones entre unidades poseen un valor numérico que se denomina "peso" de la conexión. Cada unidad de proceso del sistema calcula la suma de los pesos que recibe y somete el valor obtenido a la acción de una función no lineal cuyo resultado se convierte en el valor que la unidad pasará o transmitirá a otras unidades conectadas con ella. Este tipo de arquitectura puede realizarse sobre hardware analógico o digital, pero a efectos de cálculo, puede considerarse como un tipo de computador analógico. Mediante la utilización de unidades como las descritas puede construirse un sistema de reconocimiento estructurado en niveles y capaz de manejar observaciones no totalmente ciertas, variando su grado de evidencia. En este sistema pueden distinguirse dos tipos de unidades: unidades de entrada y unidades de salida. Cada unidad de entrada representa un dato observable, y su valor puede interpretarse de diversas formas: puede ser la probabilidad de que el dato representado esté presente, la magnitud de una determinada cantidad continua, o la probabilidad de que una cantidad se encuentre dentro de un intervalo fijado. La interpretación del valor de las unidades depende de cada problema particular. Las unidades de salida representan las hipótesis que se desea evaluar con el sistema.. -. 22. -.

(27) La red más simple de este tipo contendría sólo unidades de entrada conectadas directamente a las unidades de salida mediante un conjunto de conexiones cuyos pesos son susceptibles de modificación. Con esta configuración no es necesario asignar los pesos de las conexiones "a mano", esta estructura es muy semejante a una propuesta por Rosenblatt a la que se denominó Perceptron. Como ya se demostró, existe un algoritmo aplicable a esta red y tal que, dado un conjunto de vectores de entrada con sus correspondientes vectores de salida, calcula de forma iterativa el conjunto de pesos de las conexiones que hace posible que la red ajuste adecuadamente la entrada y la salida. El algoritmo del Perceptron es siempre capaz de encontrar dicho conjunto de pesos, si es que existe. El problema principal es que, para la mayoría de las tareas que resultan de interés no existe un conjunto de pesos adecuado en una red de dos niveles como la descrita. En la mayoría de los casos el problema que se desea abordar no admite el tratamiento que una red de dos niveles aplica a los datos de más bajo nivel, considerando cada uno de ellos como una fuente de evidencia completamente independiente del resto. Es necesario, para poder resolver estos problemas incorporar a la red uno o más niveles intermedios de unidades, que suelen denominarse unidades no visibles o escondidas. Estas unidades no visibles son las que realizan la combinación de las observaciones primarias (los vectores de entrada) en datos de un orden superior de correlación que contribuyan de forma más eficiente a la determinación de los vectores de salida correctos. Una simple muestra de la necesidad de este tipo de unidades es la resolución de un problema tan sencillo como el reconocimiento de vectores desplazados un bit, ya sea hacia la derecha o hacia la izquierda. Este problema no puede ser resuelto por una red de dos niveles porque cada bit de entrada, considerado independientemente de los demás no proporciona ninguna información útil para la determinación del desplazamiento. La información relevante para la resolución del problema está contenida en el comportamiento conjunto de las. -23-.

(28) combinaciones de todos los bits de entrada. Para poder manejar convenientemente esta información hay que utilizar uno o más niveles de unidades escondidas, que puedan extraer las combinaciones de información que conducirán al sistema a la obtención de la salida adecuada. Una vez justificada la necesidad de la existencia de las unidades escondidas, se presenta el problema de averiguar cuál de las muchas combinaciones posibles de estas unidades (de orden exponencial) es la más adecuada para poder predecir correctamente las salidas. El algoritmo de aprendizaje del Perceptron no es aplicable a este tipo de redes, por lo que se han ideado otro tipo de procedimientos y técnicas que sí pueden aplicarse a redes con más de dos niveles. Minsky y Papert [Minsky, 1 969] realizaron diferentes estudios en esta línea, tratando de descubrir un método para conseguir averiguar cuáles eran las tareas que necesitaban el uso de unidades escondidas para su realización y cuáles no. Sus trabajos les llevaron a demostrar que un buen criterio de clasificación de tareas consiste en tomar como medida el número de unidades de entrada que deben conectarse a cada una de las unidades escondidas. Esta medida, según fue demostrado por ellos, determina el orden de los resultados estadísticos que pueden ser extraidos del sistema. Sin embargo, sus descubrimientos se detuvieron aquí, sin haber encontrado un procedimiento para que la red aprendiera la configuración adecuada de los pesos de las unidades, e incluso sugiriendo la posible inexistencia de un procedimiento general y simple capaz de realizarlo. Las redes paralelas y sus derivaciones fueron ampliamente criticadas en los años que siguieron a las publicaciones de Minsky y Papert. Principalmente se argumentaba la escasa efectividad de las redes para las que sí existía algoritmo de aprendizaje, lo que limitaba mucho el alcance de las arquitecturas neuronales. Sin embargo, actualmente, con los avances alcanzados en el entendimiento de la naturaleza del paralelismo y la sustancial mejora de los computadores utilizados. -24-.

(29) como herramientas de trabajo, se ha despertado de nuevo el interés por este tipo de arquitecturas, principalmente por su especial aplicación a tareas de percepción.. 2.6. APRENDIZAJE DE REPRESENTACIONES. Las redes con estructura en tres niveles estudiadas por Minsky y Papert no tienen libertad para elegir las representaciones internas porque los pesos entre las conexiones de las unidades de entrada y las unidades escondidas del nivel intermedio están predeterminados y el sistema no puede aprender. Si se permite que estos pesos "aprendan", la red podrá determinar por sí misma lo que deben representar las unidades escondidas. Si se extiende este esquema puede conseguirse un tipo de aprendizaje muy interesante y bastante potente. La parte negativa de este sistema de aprendizaje sería la dificultad para encontrar un procedimiento que sea capaz de encontrar por sí mismo las representaciones internas adecuadas. Por otra parte, el espacio de representaciones posibles es tan grande (depende exponencialmente del número de unidades), que el procedimiento ha de ser necesariamente muy lento, incluso si sólo explorase aleatoriamente el espacio de representaciones.. Sin embargo,. diferen t e s invest igadores h a n. propuesto varios. procedimientos que se presentan brevemente a continuación, d e los cuales los más interesantes son: - Retropropagación del gradiente (Back-propagation). -25-.

(30) 2.6.1. RETROPROPAGACIÓN DEL GRADIENTE. Este procedimiento fue descubierto de forma independiente por tres investigadores, David Rumelhart, David Parker y Yann Le Cun. El procedimiento realiza dos pasadas para cada vector de entrada presentado a la red. El paso hacia adelante consiste en presentar el vector correspondiente en las unidades de entrada, dejando que la actividad discurra desde las unidades de entrada a través de los diferentes niveles de la red hasta producir un vector de salida. En el paso hacia atrás se propaga hacia atrás el valor de la derivada del error (se considera como error la diferencia entre el vector de salida obtenido y el vector de salida que se debía haber obtenido realmente). Este procedimiento permite que la red calcule, para cada uno de sus pesos, el gradiente del error respecto a dicho peso, y modifique los valores en la dirección adecuada para producir una disminución del valor del error. De esta forma el aprendizaje funciona mediante la realización del gradiente descendente a lo largo de la superficie del error sobre el espacio de pesos configurado por la red. El procedimiento de Retropropagación del gradiente ha mostrado ser capaz de aprender un gran número de representaciones interesantes en las unidades no visibles. Ha sido utilizado con éxito para problemas como el paso de información a través de canales con ancho de banda muy pequeño o la obtención de filtros óptimos para discriminar entre señales muy similares contaminadas por ruido. Los autores Sejnowski y Rosenberg [Sejnowski, 1986] realizaron un trabajo muy interesante en el que se mostró cómo se podía realizar el proceso d e entrenamiento d e una red que trabaja con Retropropagación del gradiente para transformar adecuadamente los vectores de su entrada, que representan una. -26-.

(31) secuencia de letras, en vectores de salida representando su esquema fonético. Los vectores de salida pueden utilizarse para alimentar un dispositivo de síntesis de voz, obteniendo la secuencia hablada correspondiente al texto presentado en la entrada. Los ejemplos utilizados en las pruebas de este sistema demostraron que la red era capaz de extraer tanto las regularidades presentadas en los patrones. de entrada,. como determinadas excepciones específicas que se encuentran en la pronunciación de algunas palabras inglesas. La Retropropagación del gradiente puede utilizarse también para obtener las restricciones semánticas presentes en un conjunto de hechos. Este aspecto ha sido estudiado por Geoffrey Hinton. Él trabajó con una red compuesta por cinco niveles de unidades, a la que entrenó en el reconocimiento de 100 triadas relativos al conocimiento sobre los miembros de dos familias de diferentes nacionalidades. Las triadas eran del tipo (Victoria tiene-padre Christopher) o (Christopher tiene-esposa Penélope), etc. Los vectores de entrada presentados al sistema representaban los dos primeros términos de la triada, y los de salida el tercero de ellos. En las primeras fases del entrenamiento los vectores de entrada no tenían excesivo sentido para la red, puede decirse que los consideraba como símbolos arbitrarios. Sin embargo, tras un cierto tiempo de entrenamiento, las triadas comenzaban a tener sentido para el sistema, e incluso era capaz de generalizar el conocimiento adquirido para tratar adecuadamente triadas en las que no había sido entrenado. Hinton observó también mediante recopilación del conjunto de triadas que activaban cada una de las unidades escondidas que éstas habían aprendido a representar ciertas propiedades que no se habían utilizado en ningún patrón de entrada o salida, como "italiano" o "viejo". El proceso de aprendizaje mediante Retropropagación del gradiente puede verse, considerado localmente, como un simple proceso de ajuste de los pesos de las conexiones. Pero, atendiendo al comportamiento global de la red, puede decirse que ésta realiza aprendizaje estructural, creando términos nuevos para poder representar. -. 27. -.

(32) regularidades en el dominio del problema. Este ejemplo puede servir también para ilustrar el tipo de representación distribuida que se utiliza en el sistema, ya que la representación interna de la red sobre cada una de las personas reflejadas en los vectores se plasma como un diferente patrón de activación de las unidades escondidas. El método de Retropropagación del gradiente presenta muchas similitudes con el algoritmo de Baum-Welch, diseñado para realizar ajuste de parámetros en autómatas de estado finito con funcionamiento estocástico. Estos autómatas se utilizan ampliamente como modelos generativos en sistemas de reconocimiento del lenguaje hablado. La semejanza de los dos procedimientos ha causado una gran extensión del uso de redes conexionistas con procedimiento de aprendizaje de Propagación Hacia Atrás para este tipo de problemas de reconocimiento. Las posibilidades de las redes conexionistas han suscitado gran interés, ya que pueden resolver muchas de las limitaciones que presentaban los autómatas de estado finito. El problema más grave lo constituía el gran número de nodos que se necesitan para poder representar en un autómata la información sobre los diferentes sonidos (2n, siendo n el número de bits necesarios para codificar la información). Los sistemas conexionistas resuelven perfectamente este problema, ya que permiten la activación de varias unidades a la vez.. 2.6.2. PROC:RDIMIENTO AR-P. El procedimiento de aprendizaje A R-P fue descrito por Andy Barto [Barto,1985]. Con él mostró la forma en la que redes compuestas por unidades sencillas con funcionamiento estocástico son capaces de aprender a cooperar con objeto de maximizar una señal crítica que depende del vector de salida y es, a su vez,. -28-.

(33) recibida por cada una de las unidades que componen la red. El método resulta mucho más lento que el de propagación hacia atrás, principalmente por no utilizar directamente el cálculo del gradiente para la modificación de los pesos. En lugar de realizar este cálculo, trata de descubrir cuál es el efecto de la modificación de cada peso de la red mediante experimentación con diferentes valores obtenidos variando el peso original aleatoriamente. Sin embargo tiene la ventaja de no necesitar dos pasadas diferentes para realizar el aprendizaje, por lo que parece acercarse más al comportamiento real del cerebro humano.. 2.7. SATISFACCIÓN DE RESTRICCIONES EN REDES PARALELAS. La consideración asumida hasta el momento de que la interpretación perceptual (lo que se denomina en general reconocimiento) consiste en la transformación de un cierto vector de entrada a través de sucesivos niveles de unidades hasta obtener su adecuada clasificación es bastante restrictiva si se consideran las tareas que se presentan con ejemplos reales. La mayoría de los problemas de reconocimiento requieren la asimilación simultánea de varios niveles de datos, y un resultado estructurado, en lugar de la obtención de una única categoría de clasificación. Para estas tareas es necesaria un red de tipo conexionista, pero que sea capaz de almacenar la maraña de restricciones existentes en sus diferentes niveles, tomándolas como condiciones límite del entorno y evolucionando hasta encontrar la mejor solución que las cumpla. Se puede permitir que el sistema no cumpla la totalidad de las restricciones para que pueda explorar todas las posibilidades encontrando la verdadera solución óptima. Una buena forma de garantizar que la red, una vez puesta en funcionamiento, llegará a un estado de reposo, consiste en. -29-.

(34) demostrar que existe una determinada función de costo cuyo valor disminuye con cada modificación de los pesos de las conexiones. Hummel y Zucker [Hummel, 1983] demostraron la existencia de tal función para el caso de redes que transmiten valores y cuyas conexiones son simétricas, es decir, el peso es el mismo sea cual sea la dirección considerada. Aproximadamente al mismo tiempo, Hopfield [Hopfield, 1982] descubrió una función de coste, que denominó energía, aplicable a redes con unidades binarias con un valor umbral y conexiones simétricas. Este planteamiento es el utilizado en el sistema conexionista denominado Máquina de Boltzmann, que es el objeto principal de este trabajo y será presentada ampliamente en sucesivos capítulos.. 2.8. APLICACIONES DE LOS SISTEMAS CONEXIONISTAS. Las redes conexionistas han sido aplicadas a muchos tipos de problemas diferentes, que van desde el área del cálculo numérico hasta las más complejas tareas de reconocimiento de formas. En este último campo han sido utilizadas especialmente en labores de visión computacional, campo para el que parecen especialmente adecuadas. Hopfield, por ejemplo, demostró el poder computacional de la red que él mismo diseñó utilizándola para resolver el conocido "Problema del Viajante". Algunos autores han utilizado las redes paralelas de este tipo para resolver problemas puramente simbólicos como el aprendizaje de relaciones, mientras que otros han resuelto problemas tan complejos como el "Problema de Hitchcock" o tan comunes como la resolución de sistemas de ecuaciones.. -. 30. -.

(35) En definitiva, las arquitecturas conexionistas han demostrado su eficacia en dominios muy diferentes, en los que son necesarias diferentes características. Este hecho ha provocado la enorme popularidad que han adquirido estos sistemas en los últimos años.. -. 31. -.

(36) 3. LA MÁQUINA DH BOLTZMANN. 3.1. INTRODUCCIÓN. La investigación sobre las redes basadas en componentes neuronales fue abandonada por sus escasos resultados a finales de los años sesenta. La publicación del libro de Minsky y Papert [Minsky, 1969] sobre el Perceptron fue la última registrada sobre este tema. Sin embargo, no se han abandonado los estudios de la estructura del cerebro humano, con los que se intenta descubrir cuál es el mecanismo que hace de él un perfecto reconocedor de patrones.. Siguiendo las ideas primitivas de las redes neuronales, y teniendo en cuenta los avances realizados tanto en el campo de la neurofisiología como en el de la microelectrónica, se ha "resucitado" de nuevo la investigación sobre redes de estas características. En la universidad estadounidense Carnegie-Mellon, un equipo de investigadores, con Geoffrey Hinton a la cabeza, ha desarrollado un sistema basado en los principios de las redes conexionistas, pero cuya eficiencia supera grandemente la de otros sistemas del mismo tipo presentados hasta el momento. Ellos han llamado a su sistema Máquina de Boltzmann, en honor de Ludwing Boltzmann, fundador de la. - 32-.

(37) mecánica estadística. Más tarde podrá comprobarse que el nombre elegido se debe a la fundamentación probabilística del funcionamiento del sistema. La Máquina de Boltzmann trata de modelizar el funcionamiento del cerebro humano, si bien es necesario t ener en cuenta que algunas de sus características difieren sustancialmente de la estructura real del mismo. Sin embargo, el comportamiento global puede considerarse bastante semejante, ya que se trata de una red neuronal capaz de realizar aprendizaje tras una fase de entrenamiento. Los autores definen el sistema como "una organización computacional. paralela, adecuada para la realización de tareas en las que es necesaria l a satisfacción de restricciones, interviniendo u n gran núm ero d e restricciones denominadas "débiles'' (cuya satisfacción contribuye al éxito en la realización de la tarea, y cuyo fallo no es excesivamente importante)".. 3.2. ESTRUCTURA Y COMPORTAMIENTO DE LA MÁQUINA DE BOLTZMANN. La Máquina de Boltzmann se compone de elementos de computación primitivos denominados "unidades". É stas se encuentran conectadas entre sí sin reglas específicas mediante "uniones" bidireccionales. Todas las unidades de una red son exactamente iguales, y el funcionamiento también es idéntico para todas ellas. Las unidades se comportan como elementos binarios en cuanto a su estado. Es decir, en cada instante, una unidad puede encontrarse en uno de sus dos posibles estados, "activa" (on) o "inactiva" (off). El estado de una unidad cualquiera dentro de la red se. -33-.

(38) determina en función de los estados de las otras unidades conectadas a ella y del "peso" de las respectivas uniones. Cada unión tiene asociado un valor numérico, que es llamado su "peso". Este valor es el mismo en las dos direcciones de la conexión, es decir, las uniones entre las unidades de la red son simétricas (esta restricción, no cumplida por las conexiones neuronales del cerebro humano, es bastante fuerte). Los pesos de las uniones pueden tomar valores numéricos de cualquier signo.. Figura 2. Representación de una posible topología de una Máquina de Boltzmann.. Según esta descripción, la Máquina de Boltzmann puede clasificarse como un sistema conexionista que transmite valores, ya que las conexiones entre las uniones no transmiten ni marcadores que puedan ser almacenados en las unidades, ni, por supuesto ningún tipo de mensajes, ya sean simples o complejos. Las unidades que componen una Máquina de Boltzmann sólo son capaces de realizar la suma aritmética. - 34-.

(39) de los valores que reciben de otras unidades por medio de las conexiones, por lo que se pueden considerar unidades de proceso muy simples. Una red cuya topología se ajusta a la descrita para la Máquina de Boltzmann puede ser la que muestra la figura 2. Como puede apreciarse en la figura, no existe ningún t ipo de restricción en cuanto al número o configuración de las uniones entre las distintas unidades. El cálculo del estado de una unidad dentro de la red se realiza mediante el procedimiento que se expone a continuación. Se considera que cada unidad posee un valor umbral para pasar del estado inactivo al estado activo. Es decir, la unidad estará en estado activo si la suma de los pesos de sus uniones con otras unidades activas supera el valor umbral. En caso de que la suma no supere dicho valor, la unidad se encontrará inactiva. Sin embargo, el comportamiento no es tan simple, ya que los resultados obtenidos de esta forma no eran excesivamente satisfactorios. En realidad, las unidades se comportan de forma probabilística. Este comportamiento produce el mismo efecto que produciría un umbral no fijo, sino oscilante. La oscilación del umbral vendría dada por el valor de la suma de los pesos; cuanto mayor es el valor, mayor es la probabilidad de que la unidad pase al estado activo, que es lo mismo que decir que ha disminuido el valor del umbral. De esta forma no puede asegurarse que la misma entrada (los mismos pesos y las mismas unidades vecinas activas) produzca la misma respuesta de forma determinista. Aunque no se conoce con certeza el comportamiento de las neuronas del cerebro humano, sí parece estar comprobado que no es determinista, por lo que cualquier mecanismo que pretenda reproducir los patrones de funcionamiento del cerebro ha de tratar de evitar el determinismo en la medida de lo posible. Para modelizar el mundo real con este sistema, el significado que toma cada uno de sus componentes es el siguiente:. - 3 5-.

(40) - Una unidad en estado activo o inactivo significa que el sistema acepta o rechaza, respectivamente, una hipótesis elemental (representada por la unidad) sobre el conjunto del sistema. - El peso de la unión entre dos unidades representa una restricción débil entre dos hipótesis. Si el valor del peso es positivo significa que las dos hipótesis representadas por las unidades conectadas "tienden a soportar" o a reforzar alguna otra hipótesis. Es decir, que si las dos hipótesis son aceptadas (las dos unidades están activas), la probabilidad de que la tercera sea aceptada aumenta. Por el contrario, si el valor del peso es negativo, significa que las dos hipótesis no deben ser aceptadas simultáneamente. Normalmente en el tratamiento de este tipo de redes se utiliza la convención de considerar los estados de las unidades como cifras binarias. Es decir, el estado activo se representa con el valor 1, y el estado inactivo con el valor O. De esta forma, las combinaciones de los estados de las unidades de la red pueden codificarse como números binarios o incluso como vectores del mismo tipo, permitiendo un manejo más sencillo de las configuraciones globales de la red en cada instante. En cuanto al tratamiento de la red como entidad global, algunos autores la consideran incluida en el grupo de mecanismos de "caja negra" [Forsyth, 1986]. Estos mecanismos presentan una pequeña parte visible, pero su estructura interna permanece oculta, de forma que sólo es posible apreciar su comportamiento en cuanto a los resultados obtenidos, pero no muestra cómo llega a obtenerlos. La Máquina de Boltzmann se ajusta a esta estructura considerando parte de sus unidades como unidades de entrada, otras como unidades de salida, y manteniendo el resto como unidades escondidas, pertenecientes a la "caja negra". Todas esta unidades, sin embargo, son del mismo tipo y se comportan de la misma forma. Con este. -36-.

(41) planteamiento la máquina se parece más a un mecanismo con el que se puede trabajar y realizar modelizaciones mediante asignación explícita de los valores adecuados a las unidades de entrada y salida. La estructura de la Máquina de Boltzmann está muy relacionada con un sistema descrito en el año 1 982 por J.J. Hopfield [Hopfield, 1 982]. En este sistema Hopfield asignaba a cada estado global de la red un valor numérico único, al que denominó su "energía". La semejanza entre el sistema descrito por Hopfield y la red ideada por Hinton, permite también asignar a los estados globales de la Máquina de Boltzmann un valor de energía. Este valor depende de los estados de las unidades y de los pesos de las uniones de acuerdo con la siguiente fórmula:. E=. -. "'""' 8 . s "'""' w IJ. . s.I sJ. + L_. ¡ ¡. L_. i. i. siendo: Wij : peso de la unión entre las unidades i y j.. s¡ : valor binario correspondiente al estado de la unidad i; 1 si es activa, O si es inactiva. 0¡ : umbral de la unidad i.. El significado de este valor global de una configuración de la red dada es la medida en la que esa asignación de hipótesis (representadas por las unidades) no cumple las restricciones implícitas en el dominio del problema (las restricciones están representadas por la topología de la red y los pesos de las uniones que se hayan establecido).. -. 37. -.

(42) Así pues, el funcionamiento de la red ante una determinada asignación de valores a las unidades consideradas de entrada, ha de ir encaminado a modificar su estructura interna (estados de las unidades y pesos de las conexiones), de forma que la energía global de la red se minimice. Para ello, cada unidad elemental debe ser capaz de comportarse de forma que contribuya a la minimización de la energía global de la red. Hopfield demostró en su trabajo que si se cumplen determinadas condiciones, el sistema siempre evoluciona hasta alcanzar una situación de reposo en la que el valor de la energía de la red es mínimo. Este mínimo no tiene por qué ser necesariamente el mínimo global de la red, de hecho en la mayoría de los casos es simplemente un mínimo local. Hopfield propuso un sencillo procedimiento para encontrar una combinación de valores que constituyan un mínimo local del valor de la energía. El procedimiento consiste en asignar a cada hipótesis (cada unidad), de sus dos estados posibles, aquél que produzca el menor valor de la energía global, dado el valor del resto de las hipótesis (el resto de las unidades de la red) en ese momento. Si este proceso de decisión de estado es realizado por las unidades de la red de forma asíncrona y se considera despreciable el tiempo de transmisión de los estados a través de las conexiones, se alcanza un mínimo local de energía con toda seguridad. Dado que las conexiones entre las unidades son simétricas, puede decirse que la diferencia de energía global del sistema aceptando la hipótesis k (unidad k activa) y rechazándola (unidad k inactiva), viene determinada de forma local por la unidad k, independientemente del resto de las unidades de la red. El valor de esta diferencia, denominado "hueco de energía" de la unidad k, se expresa mediante la siguiente relación:. /::. Ek =. 2 i. -. 38. wki 8i - 8k. -.

(43) donde los símbolos tienen el mismo significado que en la fórmula de la energía escrita anteriormente. Así pues, del estudio de esta expresión puede concluirse la sencilla regla de funcionamiento para las unidades que ya se había presentado. Además queda también demostrado que el uso de esta regla consigue minimizar la energía global de la red. La regla de decisión es, pues, la siguiente: para minimizar la contribución de una unidad a la energía global, ésta debe adoptar el estado activo si la entrada que recibe del resto de las unidades (suma de los pesos de sus uniones con otras unidades activas) supera el valor de su umbral; de lo contrario, debe adoptar el estado inactivo. En este momento puede hacerse una consideración sobre los valores 8¡, correspondientes a los umbrales de las unidades, que han aparecido en las ecuaciones anteriores. Estos valores pueden ser eliminados debido al hecho de que el efecto producido por 8¡ en la enegía global del sistema es idéntico y de sentido contrario al efecto de una unión con peso -8¡ entre la unidad i y una unidad especial que, por definición, se encuentre siempre en estado activo. Esta unidad especial, que puede denominarse "unidad cierta", no es necesario que exista de forma real en la composición de la red, sin embargo, es conveniente suponer su existencia a efectos de simplificación de los cálculos. Esta simplificación se deriva del hecho de que la existencia de la "unidad cierta" permite tratar el umbral de una unidad de la misma forma que se tratan las uniones entre nodos, evitando así añadir un término al sumatorio en las fórmulas. El valor -8¡ que se introduce como el peso de la unión entre la unidad i y la unidad cierta se denomina "sesgo" de la unidad i. Si se supone la existencia de la unidad cierta en cualquier Máquina de Boltzmann, las ecuaciones que rigen la energía global de la red y el hueco de energía de una unidad pueden expresarse de la siguiente forma:. -39 -.

Referencias

Documento similar

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

entorno algoritmo.

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de