TACCIII PRÁCTICA 4. PERCEPTRÓN MULTICAPA O BJETIVO En esta práctica utilizarás por primera vez un método de clasificación no lineal. Entrenarás un perceptrón con una capa oculta de pesos mediante el algoritmo back-propagation aplicado al problema de los coches (car) que ya utilizamos en la segunda práctica. T AREAS 1. Repasa el algoritmo back-propagation para maximizar verosimilitud de un perceptrón con una capa oculta de pesos: la http://arantxa.ii.uam.es/~asierra/tacciii/2007_2008/back_propagation.pdf hasta que entiendas su significado y te sientas capaz de programar el algoritmo. 2. Ejecuta a mano las dos primeras épocas del algoritmo aplicado al problema XOR. Este problema tiene dos clases y 4 ejemplos con dos atributos cada uno. La primera clase tiene dos ejemplos: (0,1) y (1,0). La segunda tiene otros dos: (0,0) y (1,1). El código asignado a los ejemplos de la primera clase es t=1. El código para los ejemplos de la segunda clase es t=0. Utiliza un valor de la constante de aprendizaje igual a 0.25 y dos unidades de salida. 3. Escribe una función que normalice los conjuntos de datos y sustituye los conjuntos originales por los normalizados. 4. Escribe una función que ejecute el algoritmo back-propagation y que tenga como argumentos: a. El nombre del conjunto de entrenamiento. b. El número de unidades de la capa oculta. c. El valor de la constante de aprendizaje. d. El número de épocas. La función ha de adaptar la arquitectura de la red al conjunto de datos y ha de devolver un array de valores correspondiente a las matrices v y w resultado del aprendizaje. 5. Escribe otra función que clasifique un conjunto de datos y que tenga los siguientes argumentos: a. El nombre del conjunto de datos que se desea clasificar. b. El array con los valores de los vectores v y w del perceptrón (el resultado de la función del punto 3). Al final del entrenamiento del punto 3, utiliza esta función para clasificar el conjunto de test con las matrices v y w resultado del entrenamiento. 6. Asegúrate de que la lógica del algoritmo es correcta comparando los cálculos de las dos primeras épocas con los hechos a mano para el problema XOR. 7. Haz algunas pruebas para seleccionar una arquitectura adecuada, es decir, un número adecuado de neuronas ocultas. 8. Ejecuta 10 veces las funciones de los puntos 4 y 5 para el conjunto car. Antes de cada ejecución de la función del punto 4 se debe cambiar la semilla del generador de números aleatorios para empezar el descenso por gradiente a partir de modelos iniciales diferentes. Muestra los resultados en una tabla como la siguiente: Número de ejecución Error para el conjunto de entrenamiento Error para el conjunto de test 1 23.05% 28.72% 2 32.12% 29.81% … … … Media 25.85% 28.21% Desviación 3.4 2.5 Tabla 1. 10 soluciones de máxima verosimilitud de un perceptrón multicapa para el conjunto de datos car. La segunda (tercera) columna muestra el porcentaje de error de clasificación cometido sobre el conjunto de entrenamiento (test). La penúltima fila muestra los valores medios de las 10 ejecuciones. La última fila recoge las varianzas de las 10 ejecuciones. E NTREGA 1. No hay que entregar ni enviar el código de esta práctica. 2. Describe las pruebas que has hecho para encontrar la arquitectura que has usado finalmente. 3. Debes entregar una memoria en papel al profesor donde muestres los cálculos del punto 2. También debes incluir en la memoria la tabla del punto 8. 4. Compara los resultados del punto 7 con los obtenidos mediante el método de clasificación por distancia a medias de la práctica 2. A la vista de la comparación, ¿qué puedes decir sobre la naturaleza del problema de los coches?