Anda di halaman 1dari 3

PRÁCTICAS DE NEUROCOMPUTACIÓN. CURSO 2010-2011.

Profesor: Roberto Latorre

PRÁCTICA 3: BACKPROPAGATION

ENTREGA: 13–12–10 (Grupo D), 14–12–10 (Grupo B) y 17-12–10 (Grupo C)

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:

1. Propagación hacia delante: Se aplica un patrón a la entrada de la red como estı́mulo y se


propaga desde la primera capa a través de las capas subsiguietnes de la red, hasta generar
una salida.

2. Retropropagación de los errores: A continuación, la señal de salida se compara con la salida


deseada y se calcula una señal de error para cada una de las salidas. Las salidas de error se
propagan hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa
oculta que contribuyen directamente a la salida. Las neuronas de la capa oculta sólo reciben
una fracción de la señal total del error, basándose aproximadamente en la contribución relativa
que haya aportado cada neurona a la salida original. Este proceso se repite, capa por capa,
hasta que todas las neuronas de la red hayan recibido una señal de error que describa su
contribución relativa al error total. Basándose en la señal de error percibida, se actualizan
los pesos de conexión de cada neurona, para hacer que la red converja hacia un estado que
permita clasificar correctamente todos los patrones de entrenamiento.

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. (OBLIGATORIO) Implementar de forma genérica el algoritmo de retropropagación para una


red con una sola capa oculta. El fichero de datos a estudiar que recibirá la red tendrá una
lı́nea de cabecera con, por este orden, los siguientes datos:

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

Entradas (X, Y): Salida (Z):

(+1,+1) +1
(+1,-1) -1
(-1,+1) -1
(-1,-1) -1

XOR

Entradas (X, Y): Salida (Z):

(+1,+1) -1
(+1,-1) +1
(-1,+1) +1
(-1,-1) -1

3. (OBLIGATORIO) Aplicar el algoritmo de retropropagación al problema de reconocimiento


de caracteres de la práctica anterior y comparar los resultados obtenidos con el perceptrón
unicapa y con el multicapa.

4. (OPTATIVO) Aplicar el algoritmo de retropropagación al problema de los patrones de cáncer


estudiando la forma en que la velocidad de convergencia y la tasa de aciertos sobre el conjunto

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.

5. (OPTATIVO) Discutir la variabilidad de los resultados en simulaciones diferentes (diferentes


condiciones iniciales de los pesos). Promediar las tasas de aciertos y las velocidades de con-
vergencia obtenidas en los apartados anteriores sobre diferentes simulaciones para presentar
estimaciones que no dependan de las condiciones iniciales.

2.1. Material a entregar


La memoria contendrá los análisis detallados de las cuestiones planteadas en el enunciado,
ası́ como la de los experimentos realizados tanto para entrenar las redes propuestas.

El código deberá ir acompañado de un fichero makefile con como mı́nimo los siguientes objetivos:

help para explicar el uso del fichero.

compile para compilar todos los programas que se entreguen.

Un objetivo para ejecutar cada uno de los programas y simulaciones que se discutan.

Anda mungkin juga menyukai