El Perceptrón Multicapa

Anuncio
El Perceptrón Multicapa
N entradas
M neuronas de salida
L: neuronas
en la capa oculta
1 p M
2
E = ∑∑ ( z i (k ) − y i (k ))
2 k =1 i =1
Implementación de la función
XOR
Regiones de clasificación en función del número de
capas ocultas
Usando una función de transferencia continua las redes
multicapas también aproximan funciones.
El Algoritmo de retropropagación de errores
Paso 0: Inicialización pesos
Paso 1: (Hacia delante): Cálculo de la salida de cada neurona
para un patrón de entrada
Paso 2 (Hacia atrás): Cálculo de los deltas (propagación
del error hacia atrás)
Paso 3:
Modificación de los
pesos
El problema del sobreajuste ó sobre-entrenamiento
(‘overfitting’)
Suele haber problemas de sobreajuste cuando un modelo posee
demasiados parámetros. Conlleva pérdida de la capacidad de
generalización.
Entrenamiento, Validación y
Generalización
Objetivo final:
final que el clasificador consiga un error de generalización pequeño
El comportamiento típico del error de entrenamiento de un clasificador
decrece monótonamente durante la fase de entrenamiento, mientras que el
error sobre el conjunto de validación decrece hasta un punto a partir del cual
crece, lo que indica que a partir del mismo el clasificador realiza un superajuste
(ó sobre-entrenamiento “overfitting”) sobre los datos de entrenamiento. Por ello,
el proceso de entrenamiento debe finalizar cuando se alcance el primer mínimo
de la función del error de validación.
validación
entrenamiento
Conjuntos de entrenamiento, validación y Generalización
Conjunto de datos
Datos entrenamiento
Test
Entrenamiento Validación
Test
Dicho método consiste en dividir los datos muestrales en dos partes; una parte se
utiliza como conjunto de entrenamiento para determinar los parámetros del
clasificador neuronal y la otra parte, llamada conjunto de prueba (ó test ó conjunto
de generalización) se utiliza para estimar el error de generalización. El conjunto de
entrenamiento suele a su vez dividirse en conjuntos de entrenamiento (propiamente
dicho) y conjunto de validación para ajustar el modelo.
Se suelen utilizar el 80% de los datos para entrenar la red, el 10% como conjunto de
validación y el 10% restante para estimar la generalización (pero es sólo un criterio
orientativo).
Construcción de una Red neuronal de tamaño
óptimo: Procedimientos de poda
Las redes neuronales más pequeñas son preferibles a las más grandes que
realizan una misma tarea por varias razones: tienen un menor número de
parámetros, el entrenamiento es más rápido y suelen tener una mayor
capacidad de generalización al utilizar nuevos patrones.
• Partir de una red neuronal de gran tamaño y podarla eliminándole unidades
de proceso y conexiones hasta conseguir un tamaño satisfactorio.
• Comenzar con una red neuronal muy pequeña e ir incrementando su
tamaño añadiendo unidades de proceso, conexiones o capas hasta conseguir
un tamaño satisfactorio.
• Partir de una red de tamaño suficiente y podar las conexiones y unidades de
proceso que se consideren poco relevantes. A continuación se añaden nuevas
unidades de proceso con pesos aleatorios y se vuelve a entrenar la red. Este
proceso se continúa hasta que se consigue un tamaño aceptable y un
comportamiento satisfactorio.
Construcción de una red neuronal de tamaño
óptimo: Procedimientos de poda
Algunos procedimientos para realizar la poda de una red neuronal son:
•
Eliminar de la red aquellas conexiones cuyos pesos sinápticos
sean de pequeña magnitud.
•
Eliminar aquellas conexiones cuya existencia no afecte
significativamente a las salidas de la red. Para realizar este tipo de
poda basta con ir comparando las salidas de la red cuando un peso
sináptico es reducido a cero.
•
Eliminar aquellos sensores de entrada que producen cambios
insignificantes en la salida de la red. Este supone reducir la
dimensionalidad de los patrones de entrada al detectar aquellas
componentes de entrada que son innecesarias.
Construcción de una red neuronal de tamaño
óptimo: Procedimientos de poda
El método OBD (optimal brain damage), de lesión cerebral óptima,
ptima
propuesto por Lecun, Denker y Solla (1990), trata de identificar
aquellos pesos sinápticos que pueden ser podados examinando las
derivadas segundas de la función de error contenidas en la matriz
Hessiana. La variación que produce en el error cuadrático medio una
pequeña perturbación ∆wij en el peso wij se aproxima por
∂E
1 ∂2E
∆E =
∆wij + ( 2 )(∆wij ) 2
∂wij
2 ∂wij
Cuando la red finaliza el entrenamiento en un mínimo local de E,
entonces ∂E/∂wij ≈0, y así
1 ∂2E
∆E ≈ ( 2 )(∆wij ) 2
2 ∂wij
Construcción de una red neuronal de tamaño
óptimo: Procedimientos de poda
Como la poda de una conexión supone pasar su peso sináptico del
valor wij al valor 0, es decir, ocurre cuando ∆wij = −wij,
entonces la condición para realizar la poda de dicha conexión es que
el cambio en el error resultantes sea insignificante, es decir, que la
cantidad
1 ∂2E
∆E ≈ ( 2 )( wij ) 2
2 ∂wij
sea suficientemente pequeña.
El algoritmo de Levenberg-Marquardt
Es un algoritmo alternativo al algoritmo clásico de retropropagación de errores, que posee como virtud principal su
velocidad de convergencia.
Requiere más uso de memoria ya que el algoritmo realiza una
aproximación de la matriz de derivadas segundas (Hessiano)
usando las derivadas primeras y con esta información calcula el
cambio en los pesos sinápticos.
Utilizamos el algoritmo de Levenberg-Marquardt
(‘trainlm’) y una función de salida lineal para
aproximar una función continua.
Pequeña guía para la implementación de una red neuronal
• Pre-procesamiento de datos (ej. rango [-1,1] ó [1,1] ó media cero y
varianza unidad) (reducción del número de entradas, ej.: PCA)
• Elección de conjuntos de entrenamiento y prueba.
• Diseño de la red inicial (número de capas ocultas, número de neuronas,
parámetros iniciales: pesos iniciales, tasa de aprendizaje, momento,
algoritmo de aprendizaje).
• Análisis del comportamiento del error.
• Pruebas con diferentes arquitecturas y/o parámetros. Poda de
conexiones y re-entrenamiento.
• Análisis e interpretación de resultados
El algoritmo de retropropagación de errores
• Es un método de aprendizaje supervisado de redes neuronales basado
en el descenso por el gradiente que sirve para tareas de clasificación
y/o predicción y también para aproximación de funciones.
• Es un método versátil y potente. Ha sido aplicado con éxito en las más
diversas tareas.
• No hay teorema de convergencia hacia el mínimo global de la función
error por lo que puede quedar atrapado en mínimos locales. La práctica
ha demostrado que el algoritmo es muy eficiente.
• No se limita a memorizar los datos, sino que es capaz de generalizar
(interpolar y extrapolar).
• A fin de mejorar la capacidad de generalización existen diferentes
alternativas propuestas (momento, algoritmo de Levenberg-Marquardt,
métodos de poda, etc.).
• Elegir la arquitectura óptima y los parámetros adecuados es un
problema complejo: suele utilizarse el método de prueba y error.
Descargar