VI Semana de la Ciencia. Madrid 2006 (6-19 de Noviembre 2006)

Taller de Redes Neuronales Artificiales

Introducción:

      El taller consta de una exposición (1h) y una sesión práctica en un laboratorio y una sesión práctica en un laboratorio (2h). Durante la exposición se realiza una presentación introductoria al tema y se explican conceptos que serán manejados en la sesión práctica, en la que se interactuará con las redes neuronales artificiales.

      "En el campo de la inteligencia artificial se refiere habitualmente de forma más sencilla como redes de neuronas o redes neuronales, las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN"[1] son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida." (extraído de Wikipedia)

Profesorado

Fecha y Lugar

Este taller se realizará en el auditorio del edificio B (parte teórica) y en el laboratorio C307 (edificio C), en la Universidad Europea de Madrid (Urbanización El Bosque, C/Tajo s/n. Se realizará el jueves 16 de Noviembre de 11:00 a 14:00.

Material :

Tutoriales prácticos

Los alumnos seguirán estos dos tutoriales prácticos con el fin de llevar a la práctica todo lo aprendido en la presentación teórica. Para realizar dichos tutoriales, el alumno debe seguir los pasos de cada uno de ellos, contando con la ayuda de los profesores que responderán cualquier duda que pueda surgir.

Tutorial 1: Aprendizaje de cuándo jugar al Tenis con CISpace

En este tutorial se pretende introducir al alumno en el mundo de las redes de neuronas. Para ello se dispone de un problema que la red neuronal debe aprender. El problema se basa en predecir si se va a poder, o no, jugar al tenis en función de las condiciones meteorológicas. Se tienen 3 condiciones meteorológicas, el cielo (soleado, nublado o lluvioso), el viento (suave o fuerte) y la humedad (poca o mucha humedad). Para determinar si se puede jugar o no al tenis, se tienen en cuenta las siguientes reglas:

La red neuronal debe aprender de los ejemplos, que podemos modelar a partir de las reglas que hemos visto. Pero para poderlos modelar, hemos de convertir estos datos en algo más comprensible por la red (números). Para ello tenemos que construir una tabla como la siguiente:

Cielo
Viento
Humedad
Jugamos al Tenis
Soleado Flojo Poca No
Soleado Flojo Mucha Si
Soleado Fuerte Poca No
Soleado Fuerte Mucha Si
Nuboso Flojo Poca Si
Nuboso Flojo Mucha Si
Nuboso Fuerte Poca Si
Nuboso Fuerte Mucha Si
Lluvioso Flojo Poca Si
Lluvioso Flojo Mucha Si
Lluvioso Fuerte Poca No
Lluvioso Fuerte Mucha No

Convirtiendo esto a números en el rango 0..1, nos queda la siguiente tabla:

Cielo
Viento
Humedad
Jugamos al Tenis
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
0.5 0 0 1
0.5 0 1 1
0.5 1 0 1
0.5 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0

Una vez tenemos definido nuestro conjunto de datos, debemos pasar a meterlo en un programa de simulación de redes de neuronas. Para este caso se ha elegido CIspace, que es un pequeño simulador muy visual, que nos ayudará a crear una red neuronal muy fácilmente y a simularla.

Primero nos bajaremos el programa: Descargar . Una vez descargado, si lo ejecutamos, podremos ver un simple editor gráfico. Tendremos que crer un nodo por cada dato de entrada (3 de entrada) y otro por el dato de salida, más las neuronas de la capa oculta (pondremos inicialmente 2). Conectaremos todas las neuronas de la entrada con las 2 ocultas y las 2 ocultas con la salida, resultando en algo del tipo:

Una vez creada la topología, debemos introducir los datos. Para ello seleccionaremos la opción "View/Edit Examples" y añadiremos todos los datos de la última tabla. Una vez tengamos todos los datos introducidos, cerraremos esta ventada y en el programa seleccionaremos la opción "Solve". Dentro de "Solve" seleccionaremos la opción de ver la gráfica referente al aprendizaje, seleccionaremos "Randomize parameters" para inicializar los parámetros de la red y posteriormente "Step to Target Error" para que la red aprenda hasta que el error de aprendizaje sea mínimo. Una vez acabado el aprendizaje, obtendremos una gráfica del tipo:

Una vez haya acabado la parte de aprendizaje, se puede comprobar este aprendizaje haciendo "preguntas" a la red neuronal. Para hacer preguntas, se dispone de la opción "Calculate Output", que nos pedirá las entradas y nos devolverá la salida del sistema.

Ejercicio: Pruebe el aprendizaje con otras topologías.

 

Tutorial 2: Aprendizaje de la Detección del Cancer mediante Weka

Ahora pasaremos a un problema de mayor impacto, la detección de si un tumor o no es maligno, en función de una serie de parámetros (que se extraen a partir de muestras del propio tumor). Primero necesitaremos un fichero con los datos (descargar).

Una vez tengamos los datos, necesitamos el software Weka, que es una aplicación que ofrece diversos algoritmos de aprendizaje automático. Descargar Weka.

Un vez descargado Weka, lo abriremos mediante doble click y seleccionaremos "Explorer". Esto nos abrirá una nueva ventana desde dónde cargaremos nuestro fichero de datos a través de la opción "Open File...". Una vez cargados los datos, nos iremos a la opción "Classify", seleccionaremos en "Classifier" el clasificador "Multilayer Perceptron" y dentro de las opciones del mismo, pondremos a True la opción GUI (para habilitar el interfaz gráfico y poder ver cuál es la topología de la red). Seleccionaremos en las "Test Options" la subopción "Percentage split" y daremos a "Start".

Nos saldrá una pantalla con la topología de la red, daremos a Start para que aprenda y una vez acabe el aprendizaje, a "Accept" para aceptar los parámetros de la red.

Haremos esto mismo tantas veces como nos lo pida (para validar la corrección de la red). Una vez acabado el aprendizaje, nos saldrán las estadísticas de aprendizaje y podremos ver el número de instancias correctamente clasificadas.