Download Aux 7. Introducción a la Minería de Datos - U

Document related concepts
no text concepts found
Transcript
Aux 7. Introducción a la Minerı́a de Datos
Gastón L’Huillier1,2 , Richard Weber2
[email protected]
1 Departamento
de Ciencias de la Computación
Universidad de Chile
2 Departamento
de Ingenierı́a Industrial
Universidad de Chile
2010
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Auxiliar 7
Redes Neuronales (pt.2)
Back-propagation
Estimando los parámetros de la red
Uso en Rapidminer v5.0
Evaluación de Modelos
Holdout
Cross Validation
Evaluación de modelos de clasificación
Verificación de hipótesis
Use en Rapidminer v5.0
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [1]
Artificial Neural Net MultiLayer Perceptron
La arquitectura de la red neuronal se caracteriza porque tiene sus
neuronas agrupadas en capas de diferentes niveles.
Cada una de las capas esta formada por un conjunto de neuronas y
se distinguen entre ellas en 3 niveles de capas distintas:
la capa de entrada: se encargan de recibir las señales o
patrones que proceden del exterior y propagar las señales a todas
las otras neuronas de la siguiente capa
las capas ocultas: son las que tienen la misión de realizar el
procesamiento no lineal de los patrones recibidos.
la capa de salida: actúa como salida de la red, proporcionando al
exterior la respuesta de la red, para cada uno de los patrones de
entrada.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [2]
Figura: Ejemplo Red Neuronal.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [2]
Figura: Diagrama Red Neuronal.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [3]
mı́n
W1 ,W2
N
1 X
E=
N
i=1

y∗ (xi )k = f2 
M
X
j,k
w 2 · f1
j=1
K
2
1X
yi,k − y∗ (xi )k
2
!
k=1
A
X

!
a,j
w1 xi,a + wa,0
1

+ w0,k
2
a=1
j,k
a,j
A,M
Principal problema: Estimar W2 = {w2 }M,K
j=1,k=0 y W1 = {w1 }a=1,j=0
minimizando el error de aprendizaje.
Utilizando funciones de transferencia f2 : M → K y f1 : A → M, donde
N es la cantidad de objetos en la base de datos de
entrenamiento
M es la cantidad de neuronas en la capa escondida.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [4]
mı́n
W1 ,W2
N
1 X
E=
N
i=1

y∗ (xi )k = f2 
M
X
j,k
w 2 · f1
j=1
K
2
1X
yi,k − y∗ (xi )k
2
!
k=1
A
X
!
a,j
w1 xi,a + wa,0
1


+ w0,k
2
a=1
K es la cantidad de clases en el problema de clasificación (en
regressión L = 1).
A es la cantidad de atributos para caracterizar a los objetos.
El método más conocido para estimar el óptimo de esta función
objetivo es el algoritmo Back-propagation. (La convergencia al mı́nimo
global no está asegurada)
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Red Neuronal - Perceptrón Multicapa [5]
Finalmente se puede ver que la red neuronal es una función
F : RA → RK continua no lineal. Es decir
Y = F(X, W)
Figura: Artificial Neural Network Multi-Layer Perceptron.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
Algoritmo que permite encontrar de manera heurı́stica la solución al
problema de minimización del error de la red neuronal.
Descrito originalmente el año 1974 [Werbos, 1994], pero no fue
reconocido hasta el año 1986 [PDP Research Group, 1986].
Compuesto de manera general por los siguientes pasos:
1
Se presentan las observaciones a la red y utilizando los pesos
actuales se calculan los valores de salida.
2
Se calculan los errores tomando las diferencias entre los resultados
obtenidos y los resultados esperados.
3
El error se retro-alimenta a través de la red y los pesos son ajustados
para minimizar el error.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
Una de las principales problemáticas del algoritmo backpropagation es
que se presenta la situación de encontrar como solución mı́nimos
locales.
Se puede evitar este problema modificando los valores de la tasa de
aprendizaje.
Figura: Problemas con los mı́nimos locales y la tasa de aprendizaje.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Algoritmo Back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [1]
Cantidad de Capas Ocultas
1
Cualquier función booleana puede ser representada por una red
neuronal con solo una capa intermedia. Lamentablemente puede
necesitar un numero exponencial (en numero de entradas) de nodos en
la capa media. [Fausett, 1994]
2
Cualquier función continua acotada puede ser aproximada con bajo
porcentaje de error, por una red neuronal con una sola capa
intermedia. [Cybenko, 1989, Hornik et al., 1990]
3
Cualquier función puede ser aproximada, con cierto nivel de
precisión, con una red neuronal con dos capas [Cybenko, 1989]
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [2]
Cantidad de Neuronas [1]
1
La cantidad de neuronas de entrada y salida están definidas por el
problema.
2
La cantidad de neuronas en las capas ocultas determina los grados
de libertad del modelo:
Número muy pequeño de neuronas pueden que no sean
suficientes para problemas muy complejos.
Número muy grande de neuronas pueden sobre-entrenar el
modelo y tener una perdida de generalidad ante nuevas
observaciones.
3
Se suele usar (por defecto, y para comenzar el análisis de
(M cantidad de neuronas en la capa
sensibilidad) la regla M = (A+K)
2
media, A cantidad de neuronas en la capa de entrada, K cantidad de
neuronas en la capa de salida.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [3]
Cantidad de Neuronas [2]
1
La cantidad de neuronas en las capas ocultas depende de una serie
de factores, entre ellos la cantidad de observaciones en el conjunto
de entrenamiento, la cantidad de “ruido”, complejidad del problema
de clasificación, cantidad de atributos (neuronas de entrada) y clases
(neuronas de salida), funciones de activación entre las capas,
algoritmo de entrenamiento.
2
Una opción es ir evaluando varias redes neuronales para ir
determinando el número apropiado de neuronas
3
Otra opción es comenzar con un número grande de neuronas y
conexiones, y a medida que se va construyendo la red neuronal, se van
podando aquellas conexiones que son innecesarias.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [4]
Decaimiento de los pesos
1
Para prevenir que los pesos vayan creciendo sin control alguno a
valores muy grandes (señal de sobre entrenamiento), es conveniente
agregar un decaimiento a los pesos de la forma:
wt+1 = (1 − )wt
2
Pesos que no son necesarios y no se van actualizando en cada
iteración del algoritmo, van a decaer hasta anularse, mientras que
aquellos que si son necesarios y se van actualizando de manera
continua con backpropagation y ajustando con el decaimiento.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [5]
Número de épocas
1
Para evitar el sobre entrenamiento y el tiempo computacional
necesario para entrenar la red, se puede fijar un cierto numero de
épocas de entrenamiento de acuerdo al comportamiento observado del
error de entrenamiento y de prueba.
Entrenamiento con ruido
1
Se puede dar el caso que sea necesario agregar ruido a las
observaciones de entrenamiento de manera de entregar una mayor
generalidad al modelo.
Función de activación
1
Una red neuronal MLP entrenada con el algoritmo backpropagation
entrena generalmente más rápido si se utiliza una función de
activación anti-simétrica ( f (−x) = −f (x) )
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [6]
Sobre-entrenamiento en redes neuronales
Figura: [Mitchell, 1997] .
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [6]
Sobre-entrenamiento en redes neuronales
Figura: [Mitchell, 1997] .
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [7]
Preprocesamiento de datos de entrada
1
Los datos de entrada deben estar pre-procesados de manera que su
media sea cero, o un valor muy bajo con respecto a la varianza.
2
Los datos de entrada no deben estar correlacionados. Intentar de
utilizar variables que no expliquen las mismas caracterı́sticas de las
observaciones de una base de datos. Una alternativa es utilizar PCA u
otros métodos que aseguren variables independientes.
3
Las variables de entrada deben tener una varianza similar
Pesos iniciales
1
Pesos inı́ciales deben ser valores pequeños para evitar la
“saturación” de las neuronas: Valores de los pesos de
“entrada-capa-media” son mayores que aquellos pesos
“capa-media-salida” dado que actualizan sus valores con los errores de
back-propagation
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [8]
Actualización de los pesos
1
Existen dos aproximaciones básicas para actualizar los pesos durante
el entrenamiento de la red:
Entrenamiento “On-line”: Pesos son actualizados con
backpropagation luego que cada observación es presentada a
la red neuronal.
Entrenamiento “Batch”: Pesos son actualizados una vez que
todas las observaciones son presentadas a la red neuronal.
2
Se recomienda el entrenamiento “Batch” dado que se utiliza la
dirección de máximo descenso, la más adecuada para el problema
de optimización no lineal que se desea resolver.
3
Entrenamiento “On-line” solo entrega una menor complejidad
computacional del entrenamiento en un orden.
4
Entrenamiento “On-line” es sensible al orden que se presentan las
observaciones a la red neuronal.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Ajuste de Parámetros [9]
Tasa de aprendizaje
1
Se recomienda utilizar una combinación de tasas de aprendizaje (η)
sobre distintas redes. Este parámetro, a grandes rasgos, permite
definir la velocidad por sobre la cual se va acercando al óptimo del
problema de optimización definido sobre una red neuronal artificial.
Momentum
1
Se puede incluir un parámetro llamado “momentum” (valor α) utilizado
para la actualización de los pesos en el algoritmo de backpropagation.
Permite considerar la “cantidad de movimiento” que cada peso
tiene al irse actualizando,
wt+1 = (1 − )wt + (1 − α)η
2
∂f (e)
x + α(wt − wt−1 )
∂e
No existe una regla general para los valores de ambos parámetros,
pero para el momentum se recomiendan valores cercanos a 0.2.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Auxiliar 7
Redes Neuronales (pt.2)
Back-propagation
Estimando los parámetros de la red
Uso en Rapidminer v5.0
Evaluación de Modelos
Holdout
Cross Validation
Evaluación de modelos de clasificación
Verificación de hipótesis
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Validación de Modelos
Conceptos básicos
Datos de Entrenamiento: Datos utilizados para entrenar el modelo
Datos de Prueba: Datos utilizados para probar el modelo
Datos Objetivo: Datos sobre los cuales se ejecuta posteriormente el
modelo
Error de predicción: Observaciones mal clasificadas sobre
observaciones totales.
Tasa de éxito = 1 – error de predicción
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Holdout [1]
1
Generalmente se tiene una base de datos, por lo que se debe dividir en
una base de datos de prueba y otra de entrenamiento. Ambos
conjuntos deben ser representativos con respecto a los datos objetivos.
Problemas:
1
Si una clase no está representada en los datos de entrenamiento, el
modelo no tendrá un buen desempeño para la clase y no se
medirá bien el error asociado.
2
Existe un trade-off entre la cantidad de datos considerados para el
conjunto de entrenamiento y de prueba.
1
2
Es necesario un conjunto de entrenamiento mayor para estimar
un buen modelo.
Es necesario un conjunto de prueba mayor para tener una buena
estimación del error.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Holdout [2]
1
Se puede considerar un “Holdout estratificado”, considerando la misma
frecuencia de clases en cada partición Entrenamiento / Prueba.
2
Se puede considerar una selección con reemplazo de la base de datos
original, probando una cierta cantidad de veces. El error estimado se
puede considerar como el promedio de errores para la iteración.
3
Se considera generalmente la regla 2/3 entrenamiento y 1/3 prueba
para la división de la base de datos.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Cross Validation [1]
Validación Cruzada de “n-folds”
1
Se subdividen los datos en n subconjuntos disjuntos.
2
Se considera la evaluación de n − 1 subconjuntos para el entrenamiento
del modelo y 1 subconjunto para la prueba. Este proceso se repite
hasta que los n subconjuntos fueron evaluados como prueba.
3
Una estimación del error, es el promedio de los errores considerados
para las n evaluaciones de la prueba.
4
El caso más usado es una validación cruzada de 10-fold
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Cross Validation [2]
Figura: Ejemplo Cross-Validation “10-folds”.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Cross Validation [3]
Validación Cruzada de “n-folds”
1
Caso usualmente recomendado: 10 veces validación cruzada con 10
folds.
2
La principal desventaja es el costo computacional de evaluar K veces n
modelos. Se tiene una complejidad de orden
O(K · n) ∗ O(modelo utilizado)
3
En el caso de tener pocos datos, es muy útil considerar “leave-one-out”
cross validation. Funciona igual a n-fold c.v., donde n es el numero de
observaciones presentes.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Evaluación Modelos de Clasificación [1]
Matriz de confusión
Clasificado y∗ = +1
Clasificado y∗ = −1
Real y = +1
TP
FN
Real y = −1
FP
TN
TP: Verdadero Positivo
TN: Verdadero Negativo
FP: Falso Positivo (error de tipo 1)
FN: Falso Negativo (error de tipo 2)
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Evaluación Modelos de Clasificación [2]
Matriz de confusión
Clasificado y∗ = +1
Clasificado y∗ = −1
Real y = +1
TP
FN
Real y = −1
FP
TN
N = TP + TN + FP + FN
TP + TN
Accuracy =
N
FP
FP-rate =
FP + TN
TP
TP-rate =
TP + FN
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Evaluación Modelos de Clasificación [2]
Matriz de confusión
Clasificado y∗ = +1
Clasificado y∗ = −1
Real y = +1
TP
FN
Real y = −1
FP
TN
Precision: Porcentaje de las observaciones correctamente clasificadas.
Precision =
TP
TP + FP
Recall: Porcentaje de todas las observaciones que deban ser clasificacdas,
sean clasificadas correctamente
Recall =
.
F-measure =
TP
TP + Fn
2 · Precision · Recall
Precision + Recall
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Verificación de hipótesis [1]
Supongamos que repetimos r veces la evaluación de K veces dos
modelos con los mismos conjuntos de entrenamiento y prueba. (i.e. r
veces K Holdouts con reemplazo, o r veces Cross-Validation de K-folds)
Figura: Se asume que a1 ∼ N(µ1 , σ1 ) y a2 ∼ N(µ2 , σ2 ).
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Verificación de hipótesis [2]
Sea xij = aij − bij , se considera el siguiente test de hipotesis
H0 : µD = donde µD = µ1 − µ2
Si se considera,
µ̂ =
r
K
1 XX
xij (media observada)
r·k
i=1 j=1
σ̂ =
r X
K
X
1
(xij − µ̂)2 (varianza observada)
r·K−1
i=1 j=1
µ̂
t= q
1
( r·K +
n2
)σ 2
n1
(Estadı́stico del test t-student)
n1 y n2 determinados por la cantidad de evaluaciones realizadas para modelo
1 y modelo 2 en el K-Cross Validation.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
Verificación de hipótesis [3]
Verificación de la hipotesis
H : µD 6= si |t| > tα,r·K−1
H : µD > si t > tα,r·K−1
H : µD < si t < tα,r·K−1
¿Cómo concluı́mos?
Por ejemplo si se tiene
H : µD > si tα,r·K−1
entonces tenemos que
µ1 > µ 2
Lo anterior indicarı́a que el modelo 1 puede ser considerado mejor que
el modelo 2, con cierto nivel de significancia.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
References I
Cybenko, G. (1989).
Approximation by superpositions of a sigmoidal function.
Mathematics of Control, Signals, and Systems, 2(4):303–314.
Fausett, L., editor (1994).
Fundamentals of neural networks: architectures, algorithms, and applications.
Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
Hornik, K., Stinchcombe, M. B., and White, H. (1990).
Universal approximation of an unknown mapping and its derivatives using
multilayer feedforward networks.
Neural Networks, 3(5):551–560.
Mitchell, T. M. (1997).
Machine Learning.
McGraw-Hill, Inc., New York, NY, USA.
PDP Research Group, C. (1986).
Parallel distributed processing: explorations in the microstructure of cognition, vol.
1: foundations.
MIT Press, Cambridge, MA, USA.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos
References II
Werbos, P. J. (1994).
The roots of backpropagation: from ordered derivatives to neural networks and
political forecasting.
Wiley-Interscience, New York, NY, USA.
G. L’Huillier, R. Weber
IN643 - Redes Neuronales (pt2) y Evaluación de Modelos