
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)
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.
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.