1 votos

¿Tiene siempre sentido la estandarización de características?

Me pregunto si un escalado de características como éste tiene siempre sentido para las redes neuronales:

Dejemos que $T$ sea el conjunto de entrenamiento y $x_i \in \mathbb{R}^n$ con $d_i \in T$ sea el vector de características de $d_i$ . A continuación, añada otro paso de preprocesamiento para que $x_i' \gets \frac{x_i - \text{mean}(T)}{\max(T) - \min(T)}$ donde $\max$ y $\min$ se aplican por separado para cada dimensión.

Este paso de preprocesamiento garantiza que para cada característica se obtendrá una media de $0$ y un rango de 1. He oído que esto es lo deseado para las redes neuronales. ¿Conoce alguna fuente al respecto? (¿O fuentes que afirman que la normalización de características no siempre es buena?)

Nota : El rango es1, no es necesario la varianza. La varianza de una variable aleatoria $X$ se calcula así:

$$Var(X) = E(X^2) - (\underbrace{E(X)}_{=0})^2 = E(X^2)$$ .

Si tienes, por ejemplo, $X$ con $P(-0.5) = 0.5 = P(+0.5)$ se tiene una varianza de $Var(X) = E(X^2) - E(X)^2 = (0.5 \cdot 0.25 + 0.5 \cdot 0.25) - 0 = 0.25$ .

Como $\max(X) - \min(X) = 0.5 - (-0.5) = 1$ y $\text{mean}(X) = 0$ La estandarización de las características no cambiará nada

0 votos

(nótese su rango de ajuste a 1, no a la varianza). duplicado de stats.stackexchange.com/questions/41704/

0 votos

@seanv507: Gracias por la nota de alcance. Lo he arreglado y he añadido una explicación. Pero mi pregunta no es un duplicado, ya que pregunto por la referencia.

0 votos

Ignorando las redes neuronales, si estás haciendo trabajos numéricos en coma flotante con precisión limitada, la mejor precisión es cerca de 0. El rango [-1,1] tiene unos 10 bits más de precisión que el rango [999,1001].

1voto

jedihawk Puntos 321

Depende mucho de sus datos.

El espacio de características sesgado hace que el Descenso por Gradientes sea más lento y subóptimo (en general).

Si son datos de tipo heterogéneo, el escalado puede ayudar. Digamos que sus características son Área (m^2), Temperatura (°K) y así sucesivamente. Usted tiene características de diferente tamaño, por lo que puede ayudar a la convergencia para hacerlos de tamaño comparable.

Además, en aplicaciones reales, puede resultar útil utilizar la reducción de la dimensionalidad con una varianza realmente alta (digamos 0,99) para que el clasificador sea más robusto al ruido y pueda ayudar a la generalización. Si se procesan datos heterogéneos con reducción de la dimensionalidad sin escalar antes, los datos significativos con baja varianza pueden ser descartados, si no se escala adecuadamente antes de aplicarla.

Sin embargo, supongamos que se utilizan las características del histograma de color. Desea aplicar el PCA con una varianza de 0,999 para evitar comportamientos imprevisibles de su clasificador en el mundo real. Si realiza el escalado de características antes de aplicar el PCA, no estará eliminando los componentes con menos varianza, por lo tanto los más afectados por el "ruido". En este caso, yo no aplicaría el escalado de características antes de la reducción de la dimensionalidad. Lo aplicaría después del PCA, y antes de alimentar las características en la NN, siempre para facilitar la convergencia.

¿Y si tiene características de histograma y características de forma? En este caso, escalaría los dos grupos de características por separado. Les aplicaría la reducción de la dimensionalidad por separado, y luego las escalaría todas juntas.

Cuando se trata de la reducción de la dimensionalidad, hay que aplicar el escalado de características siempre después de su aplicación, mientras que hay que aplicarlo antes dependiendo del tipo de datos.

Sólo para completar, en algunos casos prácticos que encontré, no escalar las características en absoluto me dio resultados ligeramente mejores.

El mejor consejo que puedo darte es que lo intentes.

0voto

Cheeso Puntos 143

Según mi experiencia, el escalado de características no siempre es necesario. Se trata principalmente de reducir las características a un rango comparable para que el espacio de las características no esté sesgado a lo largo de una característica en particular. Esto acelerará la convergencia.

Hacerlo o no antes de entrenar las redes neuronales dependerá de los datos con los que se trate. Por ejemplo, yo no lo haré cuando mis vectores de características sean binarios de un solo punto o se refieran a índices de palabras (en el modelado del lenguaje). Del mismo modo, tampoco si ya están en un rango comparable, como la característica 1 en (0, 1) y la función 2 en (-1, 3) (elección arbitraria de rangos). Por otro lado, si una de mis características está en el rango (0, 200) y otro en el rango (0, 1) Definitivamente lo haría. Encontrará un resumen muy bueno sobre este tema del Prof. Andrew Ng en este vídeo sobre el escalado de características para el descenso de gradiente que es muy pertinente a su pregunta.

Y este tema parece haber sido ya discutido en Cross-validated donde la respuesta elegida dice:

Se trata simplemente de poner todos los datos en la misma escala: si las escalas de las distintas características son muy diferentes, esto puede repercutir en la capacidad de aprendizaje (dependiendo de los métodos que se utilicen para ello). Garantizar la estandarización de los valores de las características implica ponderar todas las características por igual en su representación.

Puede encontrar más información sobre esta cuestión aquí:

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

0 votos

Si le he entendido bien, no hay ninguna desventaja en aplicar siempre la estandarización de características. A veces puede no ser necesaria (ya lo sabía), pero no has dado un ejemplo en el que sea activamente perjudicial.

0 votos

Todavía no me he encontrado con un caso en el que haga algo negativo. Por ejemplo, incluso intenté aplicar la estandarización de características a vectores binarios de un solo punto para los que, idealmente, no hay que hacer nada y descubrí que no empeoraba nada. Simplemente los pesos aprendidos eran diferentes porque los datos se presentaban de forma diferente. También me di cuenta de que esto no tenía sentido, ya que mis datos estaban (después de la normalización) en un rango muy similar con las mismas regularidades que los vectores de un solo disparo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X