Normalización y normalización

Completado

El escalado de características es una técnica que cambia el intervalo de valores que tiene una característica. Esto ayuda a los modelos a aprender de forma más rápida y sólida.

Normalización frente a normalización

Normalización significa escalar los valores para que todos se ajusten a un intervalo determinado, normalmente 0 a 1. Por ejemplo, si tuviera una lista de edades de personas que tenían 0, 50 y 100 años, podría normalizar dividiendo las edades en 100 para que sus valores fueran 0, 0,5 y 1.

La normalización es similar, pero en su lugar, restamos la media (también conocida como media) de los valores y se divide por la desviación estándar. Si no está familiarizado con la desviación estándar, no se preocupe; esto significa que después de la normalización, nuestro valor medio es cero y aproximadamente 95% de valores se encuentran entre -2 y 2.

Hay otras maneras de escalar los datos, pero los matices de estos son más allá de lo que necesitamos saber ahora mismo. Vamos a explorar por qué aplicamos normalización o normalización.

¿Por qué necesitamos escalar?

Hay muchas razones por las que normalizamos o normalizamos los datos antes del entrenamiento. Puede comprenderlos más fácilmente con un ejemplo. Supongamos que queremos entrenar un modelo para predecir si un perro tendrá éxito al trabajar en la nieve. Nuestros datos se muestran en el gráfico siguiente como puntos y la línea de tendencia que intentamos encontrar se muestra como una línea sólida:

Diagrama en el que se muestra el escalado en un gráfico de la altura y los rescates de los perros (a partir de 50).

El escalado proporciona un mejor punto de partida para el aprendizaje

La línea óptima del gráfico anterior tiene dos parámetros: la interceptación, que es 50, la línea en x=0 y la pendiente, que es 0,01; cada 1000 milímetros aumenta los rescates en 10. Supongamos que empezamos a entrenar con estimaciones iniciales de 0 para ambos parámetros.

Si nuestras iteraciones de entrenamiento modifican parámetros aproximadamente 0,01 por iteración en promedio, se necesitan al menos 5000 iteraciones antes de que se encuentre la interceptación: 50 / 0,01 = 5000 iteraciones. La estandarización puede acercar esta interceptación óptima a cero, lo que significa que podemos encontrarlo mucho más rápido. Por ejemplo, si restamos la media de nuestra etiqueta (rescates anuales) y nuestra característica (altura), la intersección es -0,5, en lugar de 50, de modo que podremos encontrarla unas 100 veces más rápido.

Diagrama que muestra el escalado en un gráfico de la altura de los perros y de los rescates, que empieza en 0.

Hay otras razones por las que los modelos complejos pueden ser muy lentos de entrenar cuando la estimación inicial está lejos del objetivo, pero la solución sigue siendo la misma: desplazar las características a algo más cercano a la estimación inicial.

La estandarización permite entrenar parámetros a la misma velocidad

En los datos recién desplazados, tenemos un desplazamiento ideal de -0,5 y una pendiente ideal de 0,01. Aunque el desplazamiento ayuda a acelerar las cosas, sigue siendo mucho más lento entrenar el desplazamiento que entrenar la pendiente. Esto puede ralentizar las cosas y hacer que el entrenamiento sea inestable.

Por ejemplo, nuestras estimaciones iniciales de desplazamiento y pendiente son cero. Si estamos cambiando nuestros parámetros por aproximadamente 0,1 en cada iteración, encontraremos el desplazamiento rápidamente, pero será muy difícil encontrar la pendiente correcta, ya que los aumentos en pendiente serán demasiado grandes (0 + 0.1 > 0.01) y pueden superar el valor ideal. Podemos hacer los ajustes más pequeños, pero esto ralentizará el tiempo que se necesita para encontrar la intersección.

¿Qué ocurre si escalamos nuestra característica de altura?

Diagrama en el que se muestra la estandarización en un gráfico de la altura y los rescates de los perros a escala.

La pendiente de la línea ahora es 0,5. Preste atención al eje X. Nuestra intersección óptima de -0,5 y la pendiente de 0,5 son de la misma escala. Ahora es fácil elegir un tamaño de paso razonable, que determina la rapidez con la que el descenso de gradiente actualiza los parámetros.

El escalado ayuda con varias funcionalidades

Cuando trabajamos con varias características, tenerlas en una escala diferente puede provocar problemas de ajuste, de forma similar a cómo acabamos de ver con los ejemplos de interceptación y pendiente. Por ejemplo, si estamos entrenando un modelo que acepta tanto altura en mm como peso en toneladas métricas, muchos tipos de modelos tendrán dificultades para apreciar la importancia de la característica de peso, simplemente porque es tan pequeño en relación con las características de altura.

¿Siempre necesito escalar?

No siempre es necesario escalar. Algunos tipos de modelos, como los modelos anteriores con líneas rectas, pueden ajustarse sin ningún procedimiento iterativo, como el descenso de gradiente, y, por tanto, no les importa que las características tengan un tamaño incorrecto. Otros modelos necesitan escalar para entrenarse correctamente, pero sus bibliotecas suelen realizar el escalado de características automáticamente.

Por lo general, las únicas desventajas reales de la normalización o normalización son que puede dificultar la interpretación de nuestros modelos y que tenemos que escribir un poco más de código. Por este motivo, el escalado de características es una parte estándar de la creación de modelos de Machine Learning.