TACCIII PRÁCTICA 4. PERCEPTRÓN MULTICAPA

Anuncio
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?
Descargar