tutorial snns

23
SNNS (Stuttgart Neural Network Simulator) (Desarrollado por Felipe León ) 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 simulación para investigación y aplicación de redes neuronales. 1.- Instalación SNNS El proceso de instalación que se describirá a continuación consta de tres partes, este proceso de instalación 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 instalación 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 anónimo 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 (Linux y Windows)

Upload: jotxxd

Post on 02-Jan-2016

71 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tutorial SNNS

SNNS (Stuttgart Neural Network Simulator)(Desarrollado por Felipe León )

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 simulación para investigación y aplicación de redes neuronales.

1.- Instalación SNNS

El proceso de instalación que se describirá a continuación consta de tres partes, este proceso

de instalación 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 instalación 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 anónimo 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 (Linux y Windows)

como el archivo

SNNSv4.2.tar.gz (Linux)

SNNSv4.1-win32-full.zip (Windows)

X-Server (Windows)

En Linux, después 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:

Page 2: Tutorial SNNS

Unzip -dc SNNSv4.2.tar.gz | tar -xvf -

1.2.- Configurando la Instalación 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, después de configurara la instalación, lo que hay que hacer es usualmente la del

kernel y las herramientas de interfaz gráfica. Esto se puede hacer fácilmente con el siguiente

comando:

make install

dándole el directorio base donde se corrió el comando “configure”. Para compilar solamente se

debe usar el siguiente comando:

make compile

después de instalar SNNS se debe limpiar la fuente de los directorios (se borran todos los objetos y

librerias), con el comando:

make clean

Page 3: Tutorial SNNS

por último si se quiere desinstalar el SNNS se debe usar el comando:

make uninstall

En Windows, después de descargar ambos archivos (SNNS para Windows y X-Server), lo

que se debe hacer primero es la instalación del X-Server, ya que el SNNS está diseñado para

trabajar en una plataforma distinta a la de Windows, la cuál es X-Windows de Linux, por esto es

necesario que se disponga de un algún 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 descompresión 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

cuál es el X-Server en nuestro caso.

Para iniciar el SNNS se debe ejecutar el archivo snns.bat del directorio raíz donde se

descomprimió el archivo SNNSv4.1-win32-full.zip.

En ambos casos una vez iniciado el SNNS aparecerá la pantalla de presentación la que se

ilustra en la Figura 1.

Page 4: Tutorial SNNS

Figura 1: Pantalla Inicial del SNNS.

Después de iniciada la presentación esta se puede cerrar presionando el botón 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 más importantes que

componen el Menú Principal son descritos más adelante en éste manual de usuario.

Page 5: Tutorial SNNS

2.1- Botón File

El botón File es el que se muestra a continuación:

Al presionar este botón 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 paréntesis cuadrados ( [ ] ). En ésta pantalla se

puede usar para abrir y guardar los 5 tipos de archivos que SNNS maneja. Entre los más

importantes están los archivos con extensión NET, PAT y RES. (red, patrón (pattern) y resultados,

respectivamente).

Para cargar algún archivo, seleccione primero lo que desea abrir, por ejemplo una red o un

archivo pattern, botones y , respectivamente. Luego seleccione el nombre de este

archivo y presione el botón .

Para guardar algún cambio a los archivos que está utilizando, escriba el nombre de lo que

desea guardar y luego presione el botón .

Para cerrar la ventana de la opción File presione el botón .

Page 6: Tutorial SNNS

Figura 12.3: Pantalla File.

Para guardar los resultados de una red entrenada, ocupe el botón . Este archivo

contiene las activaciones de todas las neuronas de salida. Estas activaciones son obtenidas al

realizar un paso de una propagación hacia delante. Después de presionar el botón la siguiente

pantalla se desplegará, Figura 4:

Figura 4 : Formato de los archivos de Resultados

En esta pantalla puede incluir los patrones (patterns) tanto de entrada como de salida, así

como también crear un nuevo archivo o agregar los resultados a un archivo existente.

Para guardar los resultados en el archivo presione el botón .

Page 7: Tutorial SNNS

2.2.- Botón Control

El botón Control es el que se muestra a continuación:

Al presionar este botón 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 parámetros definiendo el

proceso de entrenamiento, las tres filas inferiores pueden ser llenadas para definir los parámetros de

aprendizaje, el rango sobre el cual los pesos serán aleatoriamente distribuidos cuando la red sea

inicializada. Los valores por defecto de los parámetros de aprendizaje son (0.2 , 0 , 0 , 0 , 0)

mientras que los pesos están 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 parámetros de aprendizaje dependen de la función de entrenamiento seleccionada.

Nombre Tipo Rango de valor

Steps (pasos actuales)

Count (cuenta para pasos)

Cycles

Texto

Etiqueta

Texto

Mayor o igual a 0

Mayor o igual a 0

Mayor o igual a 0

Page 8: Tutorial SNNS

Pattern (numero actual de pattern)

Valid

Learn (5 parámetros)

Update (5 parámetros)

Init (5 parámetros)

Etiqueta

Texto

Texto

Texto

Texto

Mayor o igual a 0

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 función y los parámetros dados en la última

línea del panel.

: El contador es re-iniciado y las neuronas son asignadas a su activación inicial.

: La red es entrenada con todos los parámetros para el número 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 activación de las neuronas de entrada y salida son copiados hacia la red.

: Si este botón está presionado, una secuencia aleatoria de patrones (patterns) es creada

automáticamente.

12.1.2.3.- Botón Info

El botón Info es el que se muestra a continuación:

Al presionar este botón se despliega la pantalla que se muestra en la Figura 6.

Page 9: Tutorial SNNS

Figura 6: Pantalla Info.

Esta pantalla despliega todos los datos de dos neuronas y el peso asociado a la unión de

ellas. La neurona donde comienza la unión es llamada Fuente (Source), la otra Destino (Target).

Este panel es también muy importante para la edición, desde algunas operaciones referentes

al despliegue de unidades Target o uniones Source-Target. Una neurona por defecto puede también

ser creada aquí, cuyos valores (activación, función de activación, función 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 botón del centro del mouse. Esto hará una copia automática de todas las

uniones de las neuronas pertenecientes a esa capa a la Pantalla Info. Para ver los valores muévase

con los botones de desplazamiento.

2.4.- Botón Display

El botón Display es el que se muestra a continuación:

Al presionar este botón se despliega la pantalla que se muestra en la Figura 2.6. Esta

pantalla muestra en forma gráfica la topología de la red neuronal, las activaciones de las neuronas y

los pesos de las uniones.

Page 10: Tutorial SNNS

Las neuronas son desplegadas como cajas, donde el tamaño 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 configuración (ver más abajo).

Las uniones son mostradas como líneas, con una representación del peso en forma opcional.

Figura 7: Pantalla Display.

Las opciones de ésta ventana son las siguientes:

: Cierra la ventana Display.

: Con este botón puede configurar la forma de visualización de la red. La siguiente pantalla

se desplegará:

Page 11: Tutorial SNNS

Figura 8 : Pantalla de configuración del Dysplay

Para activar las opciones que se muestran debe presionar el botón . 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 botón .

: Este botón inhabilita las opciones de edición gráfica de la red.

2.5.- Botón Graph

El botón Graph es el que se muestra a continuación:

Al presionar este botón se despliega la pantalla que se muestra en la Figura 9.

Page 12: Tutorial SNNS

Figura 9: Pantalla Graph.

Es una herramienta para visualizar la evolución 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

botón sea presionado. Esto permite la posibilidad de comparar varias curvas de error en

una sola pantalla. El número máximo de curvas que pueden ser desplegadas simultáneamente son

25.

Cuando la curva sobrepasa la ventana de visualización, automáticamente ésta se re-escala

con respecto al eje x.

Para cerrar la Pantalla Graph presione el botón .

2.6- Botón Bignet

El botón Bignet es el que se muestra a continuación:

Al presionar este botón se despliega un submenú y al seleccionar Feed Forward aparece la

pantalla que se muestra en la Figura 8.

Page 13: Tutorial SNNS

Figura 12.10: Pantalla Bignet para Redes BackPropagation.

La opción Bignet divide la red en varios planos. La capa de entrada, la de salida y cada capa

oculta es llamada un plano en la notación 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 fácil modificación de los parámetros de la red antes de crear la red.

Page 14: Tutorial SNNS

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 posición 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 1 <= i <

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.

Page 15: Tutorial SNNS

2.7.- Botón Weights

El botón Weights es el que se muestra a continuación:

Al presionar este botón 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 distribución de los pesos o para observar la evolución de

los pesos durante el aprendizaje.

Los botones de Zoom, y , sirven para acercar o alejar la visualización de

los pesos en la pantalla.

Al hacer click con el botón 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

unión entre dos neuronas y el peso asociado a esa unión.

Page 16: Tutorial SNNS

2.8.- Botón Help

El botón Help es el que se muestra a continuación:

Al presionar este botón 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 botón .

2.9.- Botón Quit

El botón Quit es el que se muestra a continuación:

Al presionar este botón se sale del SNNS.

Page 17: Tutorial SNNS

3.- Prácticas con SNNS

A continuación 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 instalación del

SNNS. Este ejemplo corresponde a una red BackPropagation que reconoce las letras mayúsculas del

alfabeto. La idea principal de esta practica es poder dar una visión general de la fase de

entrenamiento y la fase de prueba de una red neuronal con el simulador SNNS.

Ahora se describirán los pasos que se deben seguir para poder realizar esta práctica, 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 botón 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

señalado y luego presione el botón done.

Desde el Menú Principal seleccione el botón Graph : para ver el avance del entrenamiento

de la RNA.

Desde el Menú Principal seleccione el botón Control : con el cual se entrenará la RNA.

3.1.- Primer entrenamiento: Variación 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 botón Init de la Pantalla Control.

Nº de ciclos Error MSE

1000

Page 18: Tutorial SNNS

3000

5000

Tabla 2: Variación en el número de ciclos

3.2.- Segundo entrenamiento : Variación 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 números de ciclos en que la red se comportó de

mejor manera.

Valor 1 0.1

Valor 2 0.3

Tabla 3 : Tasas de aprendizajes

3.3.- Tercer entrenamiento : Variación del Momentum

Desde la Pantalla Control seleccione el botón Sel. Func. (Frente a los parámetros de

aprendizaje) y seleccione BackpropMomentum. Use los valores de las Tablas 3 y 4 para

entrenarla.

Valor 1 0.1 0.2 0.1 0.0

Valor 2 0.2 0.4 0.1 0.0

Valor 3 0.3 0.6 0.1 0.0

Tabla 4 : Tasas de aprendizajes con Momentum

Referencias

Page 19: Tutorial SNNS

[W-INF-98] http://www-ra.informatik.uni-tuebingen.de/downloads/SNNS/

[León04] Trabajo de Memoria para optar al título de Ingeniero en Informática Aplicada de Felipe

León. Universidad de Valparaíso.