Esta respuesta es con respecto a la normalización más utilizada: hacer que los datos sean cero y varianza unitaria a lo largo de cada característica. Es decir, dada la matriz de datos [matemática] X [/ matemática], donde las filas representan instancias de entrenamiento y las columnas representan características, calcula la matriz normalizada [matemática] X_ {norma} [/ matemática] con el elemento [matemática] (i, j) [/ math] dado por
[matemáticas] X_ {norma, (i, j)} = \ dfrac {X _ {(i, j)} – \ mbox {mean} (X_ {j})} {\ mbox {std} (X_j)} [/ matemáticas]
donde [math] X_j [/ math] es la columna [math] j ^ {th} [/ math] de la matriz [math] X [/ math].
- ¿Hay algún descuento en el Día de Acción de Gracias para el aprendizaje de big data?
- ¿Qué gráficos de Nvidia, GeForce o Quadro, son los mejores para aplicaciones de análisis de datos grandes, modelado computacional y ciencia de datos?
- Como especialista en estadística, ¿qué cursos de informática debo tomar para convertirme en científico de datos?
- Cómo convertirse en un científico de datos en 4-5 meses si no tengo experiencia previa con ningún lenguaje de programación
- ¿Cómo se puede institucionalizar Analytics en una organización de telecomunicaciones?
Hay varias ventajas de hacerlo, muchas de las cuales están relacionadas entre sí:
- Hace que la capacitación sea menos sensible a la escala de características: considere un problema de regresión en el que se le dan características de un apartamento y se le requiere que prediga el precio del apartamento. Digamos que hay 2 características: no. de dormitorios y la zona del apartamento. Ahora, el no. de las habitaciones estarán típicamente en el rango 1–4, mientras que el área estará en el rango [matemática] 100–200 m ^ 2 [/ matemática]. Si está modelando la tarea como regresión lineal, desea resolver los coeficientes [math] w_1 [/ math] y [math] w_2 [/ math] correspondientes a no. de dormitorios y zona. Ahora, debido a la escala de las características, un pequeño cambio en [math] w_2 [/ math] cambiará mucho la predicción en comparación con el mismo cambio en [math] w_1 [/ math], hasta el punto que el ajuste [ math] w_2 [/ math] correctamente podría dominar el proceso de optimización.
- La regularización se comporta de manera diferente para diferentes escalas: supongamos que tiene una regularización [math] \ ell_2 [/ math] en el problema anterior. Es fácil ver que la regularización [math] \ ell_2 [/ math] empuja los pesos más grandes hacia cero con más fuerza que los pesos más pequeños. Por lo tanto, considere que obtiene algunos valores óptimos de [matemática] w_1 [/ matemática] y [matemática] w_2 [/ matemática] utilizando su matriz de datos no normalizada dada [matemática] X [/ matemática]. Ahora, en lugar de usar [matemáticas] m ^ 2 [/ matemáticas] como la unidad de área, si cambio los datos para representar el área en [matemáticas] pies ^ 2 [/ matemáticas], la columna correspondiente de X se multiplicará por un factor de ~ 10. Por lo tanto, esperaría que el coeficiente óptimo correspondiente [matemática] w_2 [/ matemática] baje en un factor de 10 para mantener el valor de y. Pero, como se indicó anteriormente, la regularización [math] \ ell_2 [/ math] ahora tiene un efecto menor debido al menor valor del coeficiente. Por lo tanto, obtendrá un valor mayor de [math] w_2 [/ math] de lo que esperaba. Esto no tiene sentido: no cambió el contenido de la información de los datos y, por lo tanto, sus coeficientes óptimos no deberían haber cambiado.
- Consistencia para comparar resultados entre modelos: como se cubre en el punto 2, el escalado de características afecta el rendimiento. Por lo tanto, si hay científicos que desarrollan nuevos métodos y comparan métodos de vanguardia anteriores con sus nuevos métodos, que utilizan una escala elegida con más cuidado, los resultados no serán confiables.
- Hace que la optimización esté bien condicionada: la mayoría de las optimizaciones de aprendizaje automático se resuelven mediante el descenso de gradiente o una variante del mismo. Y la velocidad de convergencia depende de la escala de las características (o más precisamente, los valores propios de [matemáticas] X ^ TX [/ matemáticas]). La normalización hace que el problema esté mejor condicionado, mejorando la tasa de convergencia del descenso del gradiente. Doy una intuición de esto usando un ejemplo simple a continuación.
Considere el caso más simple donde [math] A [/ math] es una matriz diagonal de 2 x 2, digamos [math] A = diag ([a_1, a_2]) [/ math]. Luego, los contornos de la función objetivo [matemáticas] \ | Ax – b \ | ^ 2 [/ math] serán elipses alineadas al eje como se muestra en la figura a continuación:
Suponga que comienza en el punto marcado en rojo. Observe que para alcanzar el punto óptimo, debe dar un paso muy grande en la dirección horizontal pero un pequeño paso en la dirección vertical. La dirección de descenso viene dada por la flecha verde. Si sigue esta dirección, se moverá una distancia mayor en la dirección vertical y una distancia menor en la dirección horizontal, que es lo opuesto a lo que desea hacer.
Si da un pequeño paso a lo largo del gradiente, cubrir la gran distancia horizontal hasta el óptimo requerirá una gran cantidad de pasos. Si das un gran paso a lo largo del gradiente, superarás el óptimo en la dirección vertical.
Este comportamiento se debe a la forma de los contornos. Cuanto más circulares sean los contornos, más rápido convergerá al óptimo. El alargamiento de las elipses viene dado por la relación de los valores propios más grandes y más pequeños de la matriz [matemática] A [/ matemática]. En general, la convergencia de un problema de optimización se mide por su número de condición, que en este caso es la relación de los dos valores propios extremos.
(La respuesta de Prasoon Goyal a Por qué es la velocidad de convergencia del descenso del gradiente depende de los valores propios máximos y mínimos de A para resolver AX = b a través de mínimos cuadrados).
Finalmente, debo mencionar que la normalización no siempre ayuda, en lo que respecta al rendimiento. Aquí hay un ejemplo simple: considere un problema con una sola característica con varianza 1. Ahora suponga que agrego una característica ficticia con varianza 0.01. Si regulariza su modelo correctamente, la solución no cambiará mucho debido a esta dimensión ficticia. Pero si ahora lo normaliza para que tenga una variación de unidad, podría dañar el rendimiento.