5.2.1. Introducción
NeuroSolutions está basado en una aproximación al diseño de sistemas adaptativos orientada a objetos. Las redes son descompuestas en un conjunto fundamental de componentes que son individualmente simples pero susceptibles a ser combinados para crear sistemas poderosos capaces de resolver problemas muy complejos.
La interfaz de usuario de NeuroSolutions está inspirada en el proceso de diseño de un circuito electrónico. Diversos componentes son colocados en una tablilla de conexión y después interconectados para formar un circuito. Después el circuito se prueba introduciendo señales y monitoreando respuestas. Esta interfaz provee más flexibilidad que un simulador de tipo “caja negra”. NeuroSolutions incluye una colección comprehensiva de muestras-ejemplo que permiten al usuario/diseñador monitorear cualquier aspecto de la red neuronal durante los procesos de entrenamiento y prueba.
Los atributos especiales de NeuroSolutions lo hacen ideal para un entrenamiento interactivo. Debido a la simplicidad y a la potencia de NeuroSolutions, es ideal para el desarrollo de redes neuronales.
5.2.2. Características Generales.
La interfaz de usuario de NeuroSolutions organiza sus componentes en paletas. Cada paleta de componentes contiene una familia de componentes que tienen una función similar. Por ejemplo, todos los displays de salida o monitores están contenidos en una sola paleta. Se pueden encontrar todas las paletas en el menú de paletas.
Si se abre una paleta, se marcará inmediatamente con una palomita, como se muestra en la figura 80. Una paleta abierta se ve y actúa como una barra de herramientas con un conjunto de iconos. Las paletas pueden ser desplazadas y colocadas como cualquier barra de herramientas estándar de Windows. La figura 81 muestra como ejemplo la paleta de la familia Axón.
Se pueden seleccionar los componentes de la paleta y colocarlos en la tablilla de conexión.
Colocación de componentes
Si el puntero del ratón se coloca sobre la paleta y se esperan unos segundos, aparecerá una pequeña ventana con el nombre del componente. Esto es muy útil para determinar el componente que se está seleccionando de la paleta. Si se hace clic en un componente, el puntero se convierte en una “estampa”. Si se hace de nuevo clic sobre cualquier punto de la tablilla de conexión, la estampa (componente) será pegada en ese punto. A este proceso se le denomina “estampado de componentes”.
Ayuda en línea (on-line)
Una descripción completa de cada componente está contenida en la ayuda en línea. El medio más fácil de acceder a la ayuda de un componente dado es haciendo clic con el cursor en el componente. El cursor de ayuda está colocado en la barra de herramientas. Sólo basta con hacer clic en él y después trasladar el puntero del ratón hacia el componente deseado, haciendo clic sobre el icono de éste.
Nótese que en los componentes de la familia de axones (así como en algunas otras familias) hay un punto de contacto doble-diamante a la izquierda (conector hembra) y un punto de contacto de simple-diamante a la derecha (conector macho). El flujo de datos en NeuroSolutions está diseñado para un movimiento de izquierda a derecha en la tablilla de conexión. Para conectar dos componentes, simplemente es necesario “arrastrar” el conector macho a la derecha del componente hacia el conector hembra (lado izquierdo9 del otro componente. La conexión está visualmente indicada por tres líneas dibujadas entre los componentes.
También se podrá notar que mientras se arrastra el conector, la flecha que caracteriza el puntero del ratón cambiará a un cursor de movimiento, queriendo decir que se puede colocar el conector macho en cualquier posición no ocupada de la tablilla. Si es colocado en una posición no válida, el puntero se convierte en un círculo cruzado, queriendo decir que en ese lugar no se puede colocar el conector.
Una manera alternativa de conectar componentes es seleccionando el primer componente (haciendo clic con el botón izquierdo del ratón), y después haciendo clic en el segundo componente con el botón derecho del ratón, para después seleccionar la opción “Conectar a” (“Connect to”) del menú. Se establecerán automáticamente las tres líneas de conexión.
5.2.3. Construcción de Redes Neuronales.
Se puede aplicar fácilmente la aproximación tipo construyendo-bloques para construir sistemas neuronales o adaptativos. Estas redes básicamente están constituidas por elementos de procesamiento (PEs) atados juntos con conexiones con pesos. La familia Axón (la mayoría de la terminología utilizada en NeuroSolutions está basada en la neurobiología) implementa los PEs en la red, y la familia Sinapsis implementa las conexiones con pesos.
La familia Axón tiene dos funciones. Los componentes suman todas sus entradas y después aplican una función de activación a dicha suma. Los diferentes componentes en la familia Axón aplican una función diferente a la suma de entradas. Cada una de las diferentes imágenes en los iconos de dicha familia representa la función que será aplicada. El axón de tipo lineal (llamado simplemente Axón) simplemente pasa la suma de las entradas directamente a la salida. El axón Bias suma la entrada y agrega un valor de umbral. Un sólo componente de la familia Axón puede representar cualquier número de PEs. Esto se muestra en la figura 82.
La familia Sinapsis, mostrada en la figura 83, se usa para hacer conexiones entre axones. En general, se le asigna un peso a cada conexión en una sinapsis que hace un escalamiento de los datos que pasan a través de ella. La manera en que se ajustan esos pesos será la manera en que se entrena una red o sistema adaptativo para ejecutar la tarea deseada. El miembro más utilizado de esta familia es la Sinapsis Completa y conecta todos y cada uno de los PE’s en el axón del otro componente. Además, la Sinapsis Completa contiene nm conexiones (y pesos) para n PEs de entrada y m Pes de salida. La Sinapsis Arbitraria permite seleccionar cuál de las nm conexiones posibles unirá un axón a otro.
5.2.4. Simulación de Redes Neuronales.
Entrenamiento de una red
Esta sección trata los componentes extra necesarios para entrenar un sistema adaptativo utilizando gradiente descendente. Lo importante de esta sección no es entender todos los conceptos, sino la mecánica.
El aprendizaje adaptativo se basa en utilizar el error entre la salida del sistema y la salida del sistema deseada para entrenar el sistema. El algoritmo de aprendizaje adapta los pesos del sistema basado en el error hasta que el sistema no produzca la salida deseada. La familia de Criterios de Error, que se muestra en la figura 84 en Neurosolutions calcula diferentes medidas de error que pueden ser utilizadas en el entrenamiento de una red.
Aprendizaje y retropropagación
Se puede utilizar el error para modificar los pesos del sistema, permitiendo a éste aprender. La misión del sistema es igualar la salida del sistema a la salida deseada, por lo que se necesita minimizar el error cuadrático. El método para hacerlo es conocido como retropropagación del error. Esencialmente es un proceso de tres pasos. Primero, los datos de la entrada son propagados hacia adelante a través de la red para calcular la salida del sistema.
El paso siguiente es calcular el error y propagarlo hacia atrás. Esto se utiliza finalmente para modificar los pesos.
NeuroSolutions implementa la retropropagación del error en un “plano” secundario que se encuentra en la parte superior de axones y sinapsis. Este es el plano de retropropagación, y se muestra en la figura 85.
NeuroSolutions muestra el plano de retropropagación utilizando versiones más pequeñas de axones y sinapsis apilados sobre ellos. El plano de retropropagación pasa los errores hacia atrás desde el componente de Criterios de error hasta el principio de la red (y manipula los errores durante el camino). NeuroSolutions agrega un tercer plano que utiliza el error en ese momento en el plano de retropropagación para cambiar los pesos de la red – es aquí donde realmente se lleva a cabo el aprendizaje.
Este plano se conoce como plano de gradiente descendente y se encuentra por arriba del plano de retropropagación. Un componente típico de gradiente descendiente es el componente Momentum. Nótese en la figura 86. que sólo los componentes relacionados con los pesos utilizan los componentes de gradiente descendente.