PRÁCTICA 3: BACKPROPAGATION
1. Introducción
La regla de aprendizaje del Perceptrón de Rosenblatt y el algoritmo LMS de Widrow y Hoff
fueron diseñados para entrenar redes de una sola capa. Estas redes solo pueden resolver proble-
mas linealmente separables. Una red multicapa, en cambio, podrı́a potencialmente solucionar este
problema. La retropropagación (backpropagation) es un algoritmo de aprendizaje supervisado para
redes multicapa que utiliza un ciclo de propagación–adaptación de dos fases:
La importancia de este proceso consiste en que, a medida que se entrena la red, las neuronas de
las capas intermedias se organizan a sı́ mismas de tal modo que las distintas neuronas aprenden a
reconocer distintas caracterı́sticas del espacio total de entrada. Después del entrenamiento, cuando
se les presente un patrón arbitrario de entrada que contenga ruido o que esté incompleto, las
neuronas de la capa oculta de la red responderán con una salida activa si la nueva entrada contiene
un patrón que se asemeje a aquella caracterı́stica que las neuronas individuales hayan aprendido a
reconocer durante su entrenamiento. Y a la inversa, las unidades de las capas ocultas tienen una
tendencia a inhibir su salida si el patrón de entrada no contiene la caracterı́stica a reconocer para
la que han sido entrenadas.
2. EJERCICIOS PROPUESTOS
Se propone la realización de una serie de ejercicios obligatorios y otros optativos. La calificación
máxima que se podrá obtener con los ejercicios obligatorios será un 5.
1
Número de patrones del conjunto de entrenamiento (ne)
Número de patrones del conjunto de test (nt)
Número de patrones que clasificar una vez se haya entrenado la red (np)
Número de variables de entrada (equivalente al número de neuronas de la capa de en-
trada)
Número de variables de entrada, equivalente al número de neuronas de la capa de entrada
(in)
Número de variables de salida, equivalente al número de neuronas de la capa de salida
(out)
A continuación de esta lı́nea de cabecera habrá ne filas con in + out columnas que definirán
el conjunto de entrenamiento, nt filas con in + out columnas que definirán el conjunto de test
y np filas con in columnas con los patrones a clasificar por la red en la fase de producción.
Por su parte, los detalles especı́ficos de la arquitectura (número de neuronas de entrada,
número de neuronas en la capa oculta, número de neuronas de salida, codificación binaria o
bipolar) se podrán leer de un fichero o pasarse como parámetro de la forma elegida por el
alumno.
2. Entrenar una red para que aprenda las funciones lógicas AND y XOR (codificación bipolar),
escogiendo razonadamente la arquitectura de la red. Utilizar los ficheros and.dt y xor.dt
adjuntos. Pintar la evolución del Error Cuadrático Medio (ECM) y de algunos de los pesos
de la red. Representar las fronteras de decisión al termino de la fase de aprendizaje y escribir
las tasas de aciertos obtenidas.
AND
(+1,+1) +1
(+1,-1) -1
(-1,+1) -1
(-1,-1) -1
XOR
(+1,+1) -1
(+1,-1) +1
(-1,+1) +1
(-1,-1) -1
2
de test dependen de los siguientes factores: número de neuronas en la capa oculta, factor de
aprendizaje y, opcionalmente, de la función de activación. Presentar los resultados aportando
las gráficas y/o las tablas que se consideren oportunas.
El código deberá ir acompañado de un fichero makefile con como mı́nimo los siguientes objetivos:
Un objetivo para ejecutar cada uno de los programas y simulaciones que se discutan.