¿Cómo y por qué funcionan la normalización y el escalado de características?

61

Veo que muchos algoritmos de aprendizaje automático funcionan mejor con la cancelación media y la ecualización de covarianza. Por ejemplo, las redes neuronales tienden a converger más rápido, y K-Means generalmente ofrece una mejor agrupación con características preprocesadas. No veo que la intuición detrás de estos pasos de preprocesamiento conduzca a un mejor rendimiento. ¿Alguien puede explicarme esto?

erogol
fuente

Respuestas:

25

Es simplemente un caso de obtener todos sus datos en la misma escala: si las escalas para diferentes características son muy diferentes, esto puede tener un efecto negativo en su capacidad de aprender (dependiendo de los métodos que esté utilizando para hacerlo) . Asegurarse de que los valores de las características estandarizadas impliquen ponderaciones implícitas de todas las características en su representación.

Ben Allison
fuente
3
¿Qué quiere decir con "esto puede tener un efecto negativo en su capacidad de aprender", tal vez podría ampliar esto?
Charlie Parker el
14
Esta no es realmente una buena explicación. Para lograr una verdadera comprensión, necesita ir al menos un nivel más profundo en la explicación.
Zelphir Kaltstahl
Necesito alguna referencia a mi tesis por favor
x-rw
40

Es cierto que el preprocesamiento en el aprendizaje automático es algo muy negro. No está escrito en los documentos por qué varios pasos de preprocesamiento son esenciales para que funcione. Tampoco estoy seguro de si se entiende en todos los casos. Para hacer las cosas más complicadas, depende en gran medida del método que use y también del dominio del problema.

Algunos métodos, por ejemplo, son invariantes de transformación afín. Si tiene una red neuronal y solo aplica una transformación afín a sus datos, la red no pierde ni gana nada en teoría. En la práctica, sin embargo, una red neuronal funciona mejor si las entradas son centradas y blancas. Eso significa que su covarianza es diagonal y la media es el vector cero. ¿Por qué mejora las cosas? Es solo porque la optimización de la red neuronal funciona con más gracia, ya que las funciones de activación ocultas no se saturan tan rápido y, por lo tanto, no te dan gradientes cercanos a cero al principio del aprendizaje.

Otros métodos, por ejemplo, K-Means, pueden proporcionarle soluciones totalmente diferentes según el preprocesamiento. Esto se debe a que una transformación afín implica un cambio en el espacio métrico: la distancia euclidiana entre dos muestras será diferente después de esa transformación.

Al final del día, desea comprender qué está haciendo con los datos. Por ejemplo, el blanqueamiento en la visión por computadora y la normalización por muestreo es algo que el cerebro humano hace tan bien en su canal de visión.

bayerj
fuente
17

Algunas ideas, referencias y gráficos sobre por qué la normalización de entrada puede ser útil para ANN y k-means:

K-significa :

La agrupación de K significa que es "isotrópica" en todas las direcciones del espacio y, por lo tanto, tiende a producir agrupaciones más o menos redondas (en lugar de alargadas). En esta situación, dejar varianzas desiguales es equivalente a poner más peso en las variables con menor varianza.

Ejemplo en Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

(FYI: ¿Cómo puedo detectar si mi conjunto de datos está agrupado o no (es decir, formando un solo grupo )

Agrupación distribuida :

El análisis comparativo muestra que los resultados de la agrupación distribuida dependen del tipo de procedimiento de normalización.

Red neuronal artificial (entradas) :

Si las variables de entrada se combinan linealmente, como en un MLP, rara vez es estrictamente necesario estandarizar las entradas, al menos en teoría. La razón es que cualquier cambio de escala de un vector de entrada puede deshacerse efectivamente cambiando los pesos y sesgos correspondientes, dejándolo con los mismos resultados exactos que tenía antes. Sin embargo, hay una variedad de razones prácticas por las cuales estandarizar las entradas puede hacer que el entrenamiento sea más rápido y reducir las posibilidades de quedarse atascado en los óptimos locales. Además, la disminución de peso y la estimación bayesiana se pueden hacer más convenientemente con entradas estandarizadas.

Red neuronal artificial (entradas / salidas)

¿Debería hacer alguna de estas cosas a sus datos? La respuesta es, depende.

La estandarización de las variables de entrada o de destino tiende a hacer que el proceso de capacitación se comporte mejor al mejorar la condición numérica (consulte ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) del problema de optimización y asegurando que varios valores predeterminados Los valores involucrados en la inicialización y terminación son apropiados. La estandarización de objetivos también puede afectar la función objetivo.

La estandarización de los casos debe abordarse con precaución porque descarta la información. Si esa información es irrelevante, entonces estandarizar casos puede ser bastante útil. Si esa información es importante, entonces estandarizar casos puede ser desastroso.


Curiosamente, cambiar las unidades de medida puede incluso llevar a uno a ver una estructura de agrupación muy diferente: Kaufman, Leonard y Peter J. Rousseeuw. "Encontrar grupos en los datos: una introducción al análisis de agrupación". (2005)

En algunas aplicaciones, cambiar las unidades de medida puede incluso hacer que uno vea una estructura de agrupación muy diferente. Por ejemplo, la edad (en años) y la altura (en centímetros) de cuatro personas imaginarias se dan en la Tabla 3 y se representan en la Figura 3. Parece que {A, B) y {C, 0) son dos grupos bien separados . Por otro lado, cuando la altura se expresa en pies, se obtienen la Tabla 4 y la Figura 4, donde los grupos obvios ahora son {A, C} y {B, D}. Esta partición es completamente diferente de la primera porque cada sujeto ha recibido otro compañero. (La Figura 4 se habría aplanado aún más si la edad se hubiera medido en días).

Para evitar esta dependencia de la elección de las unidades de medida, uno tiene la opción de estandarizar los datos. Esto convierte las medidas originales en variables sin unidades.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Kaufman y col. continúa con algunas consideraciones interesantes (página 11):

Desde un punto de vista filosófico, la estandarización realmente no resuelve el problema. De hecho, la elección de las unidades de medida da lugar a pesos relativos de las variables. Expresar una variable en unidades más pequeñas dará lugar a un rango mayor para esa variable, lo que tendrá un gran efecto en la estructura resultante. Por otro lado, al estandarizar se intenta dar a todas las variables un peso igual, con la esperanza de lograr la objetividad. Como tal, puede ser utilizado por un practicante que no posee conocimiento previo. Sin embargo, bien puede ser que algunas variables sean intrínsecamente más importantes que otras en una aplicación particular, y luego la asignación de pesos debería basarse en el conocimiento de la materia (véase, por ejemplo, Abrahamowicz, 1985). Por otra parte, Ha habido intentos de diseñar técnicas de agrupamiento que sean independientes de la escala de las variables (Friedman y Rubin, 1967). La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariable con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario. La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariable con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario. La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariable con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario.

Franck Dernoncourt
fuente
6

¿Por qué funciona el escalado de características? Puedo darte un ejemplo (de Quora )

Permítanme responder esto desde una perspectiva general de ML y no solo de redes neuronales. Cuando recopila datos y extrae funciones, muchas veces los datos se recopilan en diferentes escalas. Por ejemplo, la edad de los empleados en una empresa puede ser entre 21-70 años, el tamaño de la casa donde viven es de 500-5000 pies cuadrados y sus salarios pueden oscilar entre . En esta situación, si utiliza un simple Euclidiana métrica, la función de edad no desempeñará ningún papel porque es varias veces más pequeña que otras funciones. Sin embargo, puede contener información importante que puede ser útil para la tarea. Aquí, es posible que desee normalizar las características de forma independiente a la misma escala, digamos [0,1], para que contribuyan de manera equitativa al calcular la distancia.30000

Vijay PR
fuente
44
Si está citando una publicación de Quora, realmente necesita vincular a la fuente.
Matthew Drury el
5

Hay dos problemas separados:

a) aprender la función correcta, por ejemplo, k-means: la escala de entrada básicamente especifica la similitud, por lo que los grupos encontrados dependen de la escala. regularización - por ejemplo, regularización de pesos l2 - usted asume que cada peso debe ser "igualmente pequeño" - si sus datos no se escalan "adecuadamente" este no será el caso

b) optimización, es decir, por descenso de gradiente (por ejemplo, la mayoría de las redes neuronales). Para el descenso de gradiente, debe elegir la tasa de aprendizaje ... pero una buena tasa de aprendizaje (al menos en la primera capa oculta) depende de la escala de entrada: las entradas pequeñas [relevantes] generalmente requerirán pesos más grandes, por lo que le gustaría un aprendizaje más grande tasa para ese peso (para llegar más rápido), y vv para entradas grandes ... ya que solo desea usar una tasa de aprendizaje única, cambia la escala de sus entradas. (y el blanqueamiento, es decir, decorellating también es importante por la misma razón)

seanv507
fuente
1

Este documento solo habla sobre k-means, pero explica y prueba el requisito de preprocesamiento de datos bastante bien.

La estandarización es el paso central de preprocesamiento en la minería de datos, para estandarizar valores de características o atributos de diferentes rangos dinámicos en un rango específico. En este artículo, hemos analizado el rendimiento de los tres métodos de estandarización en el algoritmo convencional de K-medias. Al comparar los resultados en los conjuntos de datos de enfermedades infecciosas, se descubrió que el resultado obtenido por el método de estandarización de puntaje z es más efectivo y eficiente que los métodos de estandarización de escala mínima-máxima y decimal.

.

... si hay algunas características, con un gran tamaño o gran variabilidad, este tipo de características afectará fuertemente el resultado de la agrupación. En este caso, la estandarización de datos sería una tarea importante de preprocesamiento para escalar o controlar la variabilidad de los conjuntos de datos.

.

... las características deben ser adimensionales ya que los valores numéricos de los rangos de características dimensionales dependen de las unidades de medida y, por lo tanto, una selección de las unidades de medida puede alterar significativamente los resultados de la agrupación. Por lo tanto, no se deben emplear medidas de distancia como la distancia euclidiana sin tener normalización de los conjuntos de datos.

Fuente: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf

León
fuente
1

El preprocesamiento a menudo funciona porque elimina las características de los datos que no están relacionadas con el problema de clasificación que está intentando resolver. Piense, por ejemplo, en clasificar datos de sonido de diferentes altavoces. Las fluctuaciones en el volumen (amplitud) pueden ser irrelevantes, mientras que el espectro de frecuencia es el aspecto realmente relevante. Entonces, en este caso, normalizar la amplitud será realmente útil para la mayoría de los algoritmos de ML, ya que elimina un aspecto de los datos que es irrelevante y causaría que una red neuronal se ajuste demasiado a patrones espurios.

Nicolas Schuck
fuente
1

Creo que esto se hace simplemente para que la característica con un valor mayor no eclipse los efectos de la característica con un valor menor cuando se aprende un clasificador. Esto se vuelve particularmente importante si la característica con valores más pequeños realmente contribuye a la separabilidad de la clase. Los clasificadores como la regresión logística tendrían dificultades para aprender el límite de decisión, por ejemplo, si existe a nivel micro de una característica y tenemos otras características del orden de millones También ayuda al algoritmo a converger mejor. Por lo tanto, no corremos ningún riesgo al codificarlos en nuestros algoritmos. Es mucho más fácil para un clasificador, aprender las contribuciones (pesos) de las características de esta manera. También es cierto para K significa cuando se usan normas euclidianas (confusión debido a la escala). Algunos algoritmos pueden funcionar sin normalizarse también.

Vaibhav Arora
fuente