You are on page 1of 18

SNNS (Stuttgart Neural Network Simulator)

(Desarrollado por Felipe Len )


SNNS (Stuttgart Neural Network Simulator)[Manual], es un simulador para redes Neuronales desarrollado por el Instituto para Sistemas de Alto Rendimiento Paralelo y Distribuido de la Universidad de Stuttgart desde 1989. El objetivo del proyecto es crear un eficiente y flexible ambiente de simulacin para investigacin y aplicacin de redes neuronales. 1.- Instalacin SNNS El proceso de instalacin que se describir a continuacin consta de tres partes, este proceso de instalacin ser descrito para las plataforma de Linux y Windows. En la primera parte se describir como poder obtener el simulador SNNS (Linux y Windows), luego en la segunda parte, se explicar como configurar la instalacin del simulador (Linux) y por ltimo, se explicar como instalar el SNNS (Linux y Windows). 1.1.- Como obtener SNNS El simulador SNNS puede ser obtenido por un ftp annimo del host, aqu se encuentran los archivos tanto para Linux como para Windows: ftp.informatik.uni-tuebingen.de (134.2.12.18) en el subdirectorio /pub/SNNS como el archivo SNNSv4.2.tar.gz SNNSv4.1-win32-full.zip X-Server (Linux) (Windows) (Windows) (Linux y Windows)

En Linux, despus de descargar el archivo exitosamente, se debe mover el archivo dentro del directorio donde se instalar el SNNS, luego se debe descomprimir el archivo de la siguiente manera:

Unzip -dc SNNSv4.2.tar.gz | tar -xvf 1.2.- Configurando la Instalacin del SNNS En Linux, lo primero que se debe hacer es crear un directorio donde residir el simulador SNNS, al cual llamaremos <SNNSDIR>. Por esto, lo primero que se debe hacer es crear el directorio SNNSDIR. Luego se deben teclear los siguientes comandos: configure ->instala en <SNNSDIR>//[tools|xgui]/bin/<HOST> confugure enable-global ->instala en /usr/local/bin configure enable-global prefix /home/tudirectorio ->instala en /home/tudirectorio/bin 1.3.- Instalando el SNNS En Linux, despus de configurara la instalacin, lo que hay que hacer es usualmente la del kernel y las herramientas de interfaz grfica. Esto se puede hacer fcilmente con el siguiente comando: make install dndole el directorio base donde se corri el comando configure. Para compilar solamente se debe usar el siguiente comando: make compile despus de instalar SNNS se debe limpiar la fuente de los directorios (se borran todos los objetos y librerias), con el comando: make clean

por ltimo si se quiere desinstalar el SNNS se debe usar el comando: make uninstall En Windows, despus de descargar ambos archivos (SNNS para Windows y X-Server), lo que se debe hacer primero es la instalacin del X-Server, ya que el SNNS est diseado para trabajar en una plataforma distinta a la de Windows, la cul es X-Windows de Linux, por esto es necesario que se disponga de un algn programa que simule tal plataforma para que el SNNS y as este pueda ser ejecutado, esto lo permite el X-Server. Una vez instalado correctamente el X-Server, lo nico que se tiene que hacer es descomprimir el archivo SNNSv4.1-win32-full.zip en el disco duro, para esto se puede ocupar cualquier software que realice las funciones de descompresin de archivos con formato*.zip, algunos de estos son WinZip, WinRar, etc. 1.4.- Manual de usuario de SNNS En Linux, para comenzar utilizar el simulador SNNS basta tan solo con escribir el comando SNNS. En Windows, el primer paso para iniciar el programa es ejecutar el emulador de X-Windows, el cul es el X-Server en nuestro caso. Para iniciar el SNNS se debe ejecutar el archivo snns.bat del directorio raz donde se descomprimi el archivo SNNSv4.1-win32-full.zip. En ambos casos una vez iniciado el SNNS aparecer la pantalla de presentacin la que se ilustra en la Figura 1.

Figura 1: Pantalla Inicial del SNNS.

Despus de iniciada la presentacin esta se puede cerrar presionando el botn izquierdo del mouse. Al hacer esto, habilitar el men principal. El men principal del SNNS es el que se muestra en la Figura 2.

Figura 2: Pantalla Principal del SNNS.

Esta pantalla provee las funciones que son realizadas por el simulador. No es necesario ejecutar todas las opciones para realizar una determinada tarea. Los botones ms importantes que componen el Men Principal son descritos ms adelante en ste manual de usuario.

2.1- Botn File El botn File es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 2.3. Esta pantalla muestra una estructura de directorio que muestra todos los archivos que SNNS puede leer y escribir. Los directorios se representan entre parntesis cuadrados ( [ ] ). En sta pantalla se puede usar para abrir y guardar los 5 tipos de archivos que SNNS maneja. Entre los ms importantes estn los archivos con extensin NET, PAT y RES. (red, patrn (pattern) y resultados, respectivamente). Para cargar algn archivo, seleccione primero lo que desea abrir, por ejemplo una red o un archivo pattern, botones archivo y presione el botn y . , respectivamente. Luego seleccione el nombre de este

Para guardar algn cambio a los archivos que est utilizando, escriba el nombre de lo que desea guardar y luego presione el botn . .

Para cerrar la ventana de la opcin File presione el botn

Figura 12.3: Pantalla File. Para guardar los resultados de una red entrenada, ocupe el botn . Este archivo

contiene las activaciones de todas las neuronas de salida. Estas activaciones son obtenidas al realizar un paso de una propagacin hacia delante. Despus de presionar el botn pantalla se desplegar, Figura 4: la siguiente

Figura 4 : Formato de los archivos de Resultados En esta pantalla puede incluir los patrones (patterns) tanto de entrada como de salida, as como tambin crear un nuevo archivo o agregar los resultados a un archivo existente. Para guardar los resultados en el archivo presione el botn .

2.2.- Botn Control El botn Control es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 5.

Figura 5: Pantalla Control. Esta pantalla consiste de dos partes. La parte superior controla los parmetros definiendo el proceso de entrenamiento, las tres filas inferiores pueden ser llenadas para definir los parmetros de aprendizaje, el rango sobre el cual los pesos sern aleatoriamente distribuidos cuando la red sea inicializada. Los valores por defecto de los parmetros de aprendizaje son (0.2 , 0 , 0 , 0 , 0) mientras que los pesos estn configurados por defecto entre 1 y 1 (1.0 , -1.0 , 0 , 0 , 0). La Tabla 1. muestra todas las opciones de entrada con los tipos y rangos de valores. Los 5 parmetros de aprendizaje dependen de la funcin de entrenamiento seleccionada.

Nombre Steps (pasos actuales) Count (cuenta para pasos) Cycles Pattern (numero actual de pattern)

Tipo Texto Etiqueta Texto Etiqueta

Rango de valor Mayor o igual a 0 Mayor o igual a 0 Mayor o igual a 0 Mayor o igual a 0

Valid Learn (5 parmetros) Update (5 parmetros) Init (5 parmetros)

Texto Texto Texto Texto

Mayor o igual a 0 Real Real Real

Tabla 1: Campos de entrada del Panel de Control. Las funciones de algunos de los botones de la Figura 2.4 son: : Inicializa la red con valores de acuerdo a la funcin y los parmetros dados en la ltima lnea del panel. : El contador es re-iniciado y las neuronas son asignadas a su activacin inicial. : La red es entrenada con todos los parmetros para el nmero de ciclos de entrenamiento especificados en el campo Cycles. : El usuario puede probar el comportamiento de la red con todos los patrones (patterns) cargados. Los valores de activacin de las neuronas de entrada y salida son copiados hacia la red. : Si este botn est presionado, una secuencia aleatoria de patrones (patterns) es creada automticamente. 12.1.2.3.- Botn Info El botn Info es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 6.

Figura 6: Pantalla Info. Esta pantalla despliega todos los datos de dos neuronas y el peso asociado a la unin de ellas. La neurona donde comienza la unin es llamada Fuente (Source), la otra Destino (Target). Este panel es tambin muy importante para la edicin, desde algunas operaciones referentes al despliegue de unidades Target o uniones Source-Target. Una neurona por defecto puede tambin ser creada aqu, cuyos valores (activacin, funcin de activacin, funcin de salida, etc.) son copiados hacia todas las neuronas seleccionadas de la red. En la Pantalla Display, Figura 7, se puede seleccionar las neuronas de las distintas capas de la red haciendo click con el botn del centro del mouse. Esto har una copia automtica de todas las uniones de las neuronas pertenecientes a esa capa a la Pantalla Info. Para ver los valores muvase con los botones de desplazamiento. 2.4.- Botn Display El botn Display es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 2.6. Esta pantalla muestra en forma grfica la topologa de la red neuronal, las activaciones de las neuronas y los pesos de las uniones. Las neuronas son desplegadas como cajas, donde el tamao de la caja es proporcional al valor del atributo desplegado. Cada neurona puede ser desplegada con dos de varios atributos. Uno

sobre la neurona y otro bajo sta. Los atributos para ser desplegados pueden ser seleccionados en la pantalla de configuracin (ver ms abajo). Las uniones son mostradas como lneas, con una representacin del peso en forma opcional.

Figura 7: Pantalla Display. Las opciones de sta ventana son las siguientes: : Cierra la ventana Display. : Con este botn puede configurar la forma de visualizacin de la red. La siguiente pantalla se desplegar:

Figura 8 : Pantalla de configuracin del Dysplay Para activar las opciones que se muestran debe presionar el botn . Para cambiar la

distancia entre las neuronas cambie el valor del campo Grid Width. Para cerrar la ventana Setup con los cambios que hizo y regresar a la Pantalla Display (Figura 6) presione el botn : Este botn inhabilita las opciones de edicin grfica de la red. 2.5.- Botn Graph El botn Graph es el que se muestra a continuacin: .

Al presionar este botn se despliega la pantalla que se muestra en la Figura 9.

Figura 9: Pantalla Graph. Es una herramienta para visualizar la evolucin del error de una red. La curva de error de la red es dibujada hasta que la red es inicializada o hasta que una nueva red es cargada, en cuyo caso el contador de ciclo es reiniciado a cero. Esta ventana, sin embargo, no es limpiada hasta que el botn 25. Cuando la curva sobrepasa la ventana de visualizacin, automticamente sta se re-escala con respecto al eje x. Para cerrar la Pantalla Graph presione el botn 2.6- Botn Bignet El botn Bignet es el que se muestra a continuacin: . sea presionado. Esto permite la posibilidad de comparar varias curvas de error en

una sola pantalla. El nmero mximo de curvas que pueden ser desplegadas simultneamente son

Al presionar este botn se despliega un submen y al seleccionar Feed Forward aparece la pantalla que se muestra en la Figura 8.

Figura 12.10: Pantalla Bignet para Redes BackPropagation. La opcin Bignet divide la red en varios planos. La capa de entrada, la de salida y cada capa oculta es llamada un plano en la notacin de Bignet. Un plano es un arreglo bidimensional de neuronas. Bignet crea una red en dos pasos: Editar la red: Esta genera estructuras de datos internas en Bignet las cuales describen la red pero no generan la red. Esto permite la fcil modificacin de los parmetros de la red antes de crear la red.

Generar la red en SNNS: Este genera la red desde las estructuras internas de Bignet. Los botones en Bignet hacen lo siguiente: : Datos de entrada son ingresados al final del plano o de la lista enlazada. : Datos de entrada son insertados en la lista del plano en el frente del plano actual. : El elemento actual es reemplazado por el dato de entrada. : El elemento actual es eliminado. : Los datos del plano actual son escritos por el editor de planos. : Los datos de las uniones actuales son escritas por el editor de uniones. : El tipo (entrada, oculta, salida) de las neuronas de un plano es determinado. : La posicin de un plano es descrita en forma relativa (izquierda, derecha, abajo) con respecto al plano anterior. : Una red BackPropagation totalmente conectada es generada. : Si existen n planos entonces cada neurona en el plano i con n est conectada con cada neurona en todos los planos j con i < j <= n. : La red descrita por los dos editores es generada por SNNS. El nombre por defecto de la red es SNNS_NET.net. : Todos los datos internos de los editores son borrados. : Sale de Bignet y vuelve al men principal. 1 <= i <

2.7.- Botn Weights El botn Weights es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 11.

Figura 11: Pantalla Weights. La pantalla weigths es una ventana especializada separada para desplegar los pesos de una red. Esta puede ser usada para analizar la distribucin de los pesos o para observar la evolucin de los pesos durante el aprendizaje. Los botones de Zoom, los pesos en la pantalla. Al hacer click con el botn izquierdo del Mouse y dejar ste presionado sobre un cuadrado de color, que representa el peso entre dos neuronas, se despliega una caja de texto que indica la unin entre dos neuronas y el peso asociado a esa unin. y , sirven para acercar o alejar la visualizacin de

2.8.- Botn Help El botn Help es el que se muestra a continuacin:

Al presionar este botn se despliega la pantalla que se muestra en la Figura 12. Esta pantalla muestra la ayuda que el Software posee.

Figura 12: Pantalla de Ayuda del SNNS. Para cerrar esta ventana presione con el mouse el botn 2.9.- Botn Quit El botn Quit es el que se muestra a continuacin: .

Al presionar este botn se sale del SNNS.

3.- Prcticas con SNNS A continuacin se mostrar un ejemplo del entrenamiento y las pruebas que se pueden realizar a una RNA, la RNA que se utilizar viene de ejemplo en el paquete de instalacin del SNNS. Este ejemplo corresponde a una red BackPropagation que reconoce las letras maysculas del alfabeto. La idea principal de esta practica es poder dar una visin general de la fase de entrenamiento y la fase de prueba de una red neuronal con el simulador SNNS. Ahora se describirn los pasos que se deben seguir para poder realizar esta prctica, los pasos son los siguientes: Inicie el SNNS : en Linux solo tiene que ingresar SNNS, en Windows se debe cargar el servidor X, y luego ejecutar SNNS.bat Desde el Men Principal seleccione el botn File Desde el directorio examples, cargue la red letters_untrained Responda yes a la pregunta Cargue el archivo patterns de la red letters (letters.pat) : para esto seleccione el archivo sealado y luego presione el botn done. Desde el Men Principal seleccione el botn Graph : para ver el avance del entrenamiento de la RNA. Desde el Men Principal seleccione el botn Control : con el cual se entrenar la RNA.

3.1.- Primer entrenamiento: Variacin de numero de ciclos Entrene la red con los valores que se muestran en la Tabla 2 y complete los cuadros faltantes. Al finalizar cada entrenamiento presione el botn Init de la Pantalla Control.

N de ciclos 1000

Error MSE

3000 5000 Tabla 2: Variacin en el nmero de ciclos

3.2.- Segundo entrenamiento : Variacin de la tasa de aprendizaje Entrene la red con los valores que se muestran en la Tabla 3 que corresponden a la tasa de aprendizaje de la red. Use los dos nmeros de ciclos en que la red se comport de mejor manera.

Valor 1 Valor 2

0.1 0.3

Tabla 3 : Tasas de aprendizajes 3.3.- Tercer entrenamiento : Variacin del Momentum Desde la Pantalla Control seleccione el botn Sel. Func. (Frente a los parmetros de aprendizaje) y seleccione BackpropMomentum. Use los valores de las Tablas 3 y 4 para entrenarla. Valor 1 Valor 2 Valor 3 0.1 0.2 0.3 0.2 0.4 0.6 0.1 0.1 0.1 0.0 0.0 0.0

Tabla 4 : Tasas de aprendizajes con Momentum

Referencias
[W-INF-98] http://www-ra.informatik.uni-tuebingen.de/downloads/SNNS/ [Len04] Trabajo de Memoria para optar al ttulo de Ingeniero en Informtica Aplicada de Felipe Len. Universidad de Valparaso.

You might also like