You are on page 1of 2

UNIVERSIDAD CARLOS III DE MADRID

OPENCOURSEWARE
REDES DE NEURONAS ARTIFICIALES
INES M. GALVAN - JOSE M VALLS

CASO PRCTICO I: RESOLUCIN DE UN PROBLEMA DE CLASIFICACIN CON EL


PERCEPTRON SIMPLE
Leer previamente documento LO-F-002
Introduccin
En esta prctica se trabajar con el dominio de clasificacin SONAR. Los datos de
este dominio estn caracterizados por atributos reales y estn etiquetados segn la
clase a la que pertenece. El objetivo es construir un modelo capaz de separar los
datos -representan niveles de energa en una determinada banda de frecuenciaobtenidos cuando se aplican seales de sonar sobre un cilindro metlico o sobre
rocas.
Los datos e informacin sobre el dominio estn disponibles en UCI Machine Learning
Repository (http://archive.ics.uci.edu/ml/index.html). El nombre completo del
dominio es: Connectionist Bench (Sonar, Mines vs. Rocks) Data Set y puede accederse
a l en el siguiente enlace:
http://archive.ics.uci.edu/ml/datasets/Connectionist+Bench+%28Sonar%2C+Mines+vs
.+Rocks%29
Estn disponibles los siguientes ficheros de datos: sonar.mines y sonar.rocks. El
primero contiene 111 patrones obtenidos cuando se aplican seales de sonar sobre un
cilindro metlico, bajo ciertas condiciones y determinados ngulos. El segundo
fichero contiene 97 patrones obtenidos aplicando las seales de sonar sobre rocas
bajo condiciones similares. Cada patrn contiene 60 atributos reales en el rango
[0,1], representando cada uno el nivel de energa de una determinada banda de
frecuencia.
En el fichero sonar.all-data se encuentran todos los datos anteriores, en total 208
muestras o instancias. La ltima columna indica la clase a la que pertenece la
instancia o patrn: R si corresponde a roca y M si corresponde a Metal.
Trabajo a realizar
La prctica consiste en utilizar el Perceptron Simple de forma que, a partir de los
ejemplos disponibles, se obtenga un modelo que sea capaz de predecir si los datos
corresponden a seales sonar aplicadas sobre roca o sobre cilindro metlico.
Debido a la sencillez del Perceptron Simple, no se utilizar un simulador sino que se
programar directamente (en el lenguaje deseado). Se realizar un programa que
permita definir y entrenar un perceptron simple. Para desarrollar el programa es

necesario previamente estudiar y conocer el mecanismo para realizar el proceso de


aprendizaje del perceptron simple que se explica en el tema 2 (MC-F-002). El
programa debe contener los siguientes aspectos:
-

Definir la arquitectura, es decir el nmero de neuronas de entrada.


Inicializar aleatoriamente los pesos y el umbral.
Leer de fichero los datos de entrenamiento y test.
Calcular la salida del perceptron para los patrones de entrada.
Realizar el aprendizaje del perceptron tantos ciclos como sean necesarios.
Calcular el porcentaje de aciertos sobre el conjunto de datos de
entrenamiento y test.
Guardar en fichero las salidas de la red y las salidas deseadas para los datos
de entrenamiento y test.

Una vez preparado el programa, antes de realizar el aprendizaje con el conjunto de


datos proporcionados, sonar.all-data, es conveniente procesar dichos datos (ver
documento LO-F-002).

Convertir los valores simblicos en valores numricos. En este caso, slo es


necesario transformar la clase.
Aleatorizacin: Los datos originales estn ordenados por la clase a la que
pertenecen. Para que el entrenamiento de las redes se realice en condiciones
adecuadas es importante desordenar o aleatorizar los datos.
Separacin de un conjunto de datos para realizar el test (30% de los datos
disponibles una vez aleatorizado el conjunto)
(Opcional) Se si desea, en lugar de extraer un conjunto de test, se puede
realizar validacin cruzada de 5 grupos

Con los datos procesados y el programa desarrollado, se realizar el aprendizaje del


Perceptron con el conjunto de datos de entrenamiento.
En el caso del perceptron es aconsejable guardar el conjunto de pesos y el umbral
que obtiene el mejor porcentaje de aciertos sobre el conjunto de entrenamiento a lo
largo de los ciclos de aprendizaje. Dicho conjunto de parmetros constituir el
modelo que clasifique el conjunto de datos.
Para visualizar si el aprendizaje se realiza de manera correcta, es aconsejable
mostrar para cada ciclo (o para cada x nmero de ciclos) el mejor porcentaje de
aciertos en entrenamiento. Dicho valor debe ir decreciendo o permanecer constante.
Tambin se debe mostrar el porcentaje de aciertos sobre el conjunto de test para
analizar la capacidad de generalizacin de la red (ver tabla). Estos porcentajes
servirn para analizar la capacidad que posee el perceptron simple para resolver
dicho problema de clasificacin. En el caso de utilizar validacin cruzada, los
porcentajes de entrenamiento y test sern las medias sobre los 5 grupos.
Ciclo
10
20
30
40
.. etc

Porcentaje de
aciertos
entrenamiento
48%
59%
62%
62%

Porcentaje
de aciertos
test
40%
45%
51%
52%