Saltar al contenido

¿Por qué escalar funciones en SVM?

Marisol, parte de este equipo, nos hizo el favor de escribir este post porque controla a la perfección dicho tema.

Solución:

El escalado de características es un truco general que se aplica a los problemas de optimización (no solo a SVM). El algoritmo de subrayado para resolver el problema de optimización de SVM es el descenso de gradiente. Andrew Ng tiene una gran explicación en sus videos de Coursera aquí.

Ilustraré las ideas centrales aquí (tomo prestadas las diapositivas de Andrew). Suponga que tiene solo dos parámetros y uno de los parámetros puede tomar un rango de valores relativamente grande. Entonces, el contorno de la función de costo puede verse como óvalos muy altos y delgados (vea los óvalos azules a continuación). Sus degradados (la ruta del degradado se dibuja en rojo) pueden tardar mucho tiempo e ir y venir para encontrar la solución óptima.
ingrese la descripción de la imagen aquí

En cambio, si escalaste tu característica, el contorno de la función de costo podría verse como círculos; entonces el gradiente puede tomar un camino mucho más recto y alcanzar el punto óptimo mucho más rápido.
ingrese la descripción de la imagen aquí

los true La razón detrás de las características de escala en SVM es el hecho de que este clasificador no es invariante de transformación afín. En otras palabras, si multiplica una característica por 1000, la solución dada por SVM será completamente diferente. No tiene casi nada que ver con las técnicas de optimización subyacentes (aunque se ven afectadas por estos problemas de escalas, aún deberían converger al óptimo global).

Considere un ejemplo: tiene un hombre y una mujer, codificados por su sexo y altura (dos características). Supongamos un caso muy simple con tales datos:

0 -> hombre 1 -> mujer

╔═════╦════════╗
║ sex ║ height ║
╠═════╬════════╣
║  1  ║  150   ║
╠═════╬════════╣
║  1  ║  160   ║
╠═════╬════════╣
║  1  ║  170   ║
╠═════╬════════╣
║  0  ║  180   ║
╠═════╬════════╣
║  0  ║  190   ║
╠═════╬════════╣
║  0  ║  200   ║
╚═════╩════════╝

Y hagamos algo tonto. Entrénelo para predecir el sexo de la persona, por lo que estamos tratando de aprender f(x,y)=x (ignorando el segundo parámetro).

Es fácil ver que, para tales datos, el clasificador de margen más grande “cortará” el plano horizontalmente en algún lugar alrededor de la altura “175”, por lo que una vez que obtengamos una nueva muestra “0 178” (una mujer de 178 cm de altura) obtenemos la clasificación que ella es un hombre.

Sin embargo, si reducimos todo a [0,1] obtenemos algo como

╔═════╦════════╗
║ sex ║ height ║
╠═════╬════════╣
║  1  ║  0.0   ║
╠═════╬════════╣
║  1  ║  0.2   ║
╠═════╬════════╣
║  1  ║  0.4   ║
╠═════╬════════╣
║  0  ║  0.6   ║
╠═════╬════════╣
║  0  ║  0.8   ║
╠═════╬════════╣
║  0  ║  1.0   ║
╚═════╩════════╝

y ahora el clasificador de margen más grande “corta” el plano casi verticalmente (como se esperaba) y, por lo tanto, dada la nueva muestra “0 178”, que también se escala a alrededor de “0 0.56”, obtenemos que es una mujer (¡correcto!)

Por lo tanto, en general, el escalado garantiza que solo porque algunas características son grande no conducirá a usarlos como un predictor principal.

Solo pensamientos personales desde otra perspectiva.
1. ¿Por qué influye el escalado de características?

Hay una palabra en la aplicación del algoritmo de aprendizaje automático, “basura que entra, basura que sale”. Cuanto más real sea el reflejo de sus características, más precisión obtendrá su algoritmo. Eso también se aplica a cómo los algoritmos de aprendizaje automático tratan la relación entre las características. A diferencia del cerebro humano, cuando los algoritmos de aprendizaje automático clasifican, por ejemplo, todas las características se expresan y calculan mediante el mismo sistema de coordenadas, que en cierto sentido, establecer un supuesto a priori entre las características (no es realmente un reflejo de los datos en sí). Y también la naturaleza de la mayoría de los algoritmos es encontrar el porcentaje de peso más apropiado entre las características para ajustar los datos. Entonces, cuando la entrada de estos algoritmos son características sin escalar, los datos a gran escala tienen más influencia en el peso. En realidad, no es el reflejo de los datos en sí.
2. por qué generalmente ¿El escalado de características mejora la precisión?

La práctica común en los algoritmos de aprendizaje automático no supervisados ​​sobre la selección de hiperparámetros (o hiperparámetros) (por ejemplo, el proceso jerárquico de Dirichlet, hLDA) es que no debe agregar ninguna suposición subjetiva personal sobre los datos. La mejor manera es simplemente asumir que tienen la misma probabilidad de aparecer. Creo que se aplica aquí también. El escalado de características solo intenta suponer que todas las características tienen la misma oportunidad de influir en el peso, lo que refleja más realmente la información/conocimiento que tiene sobre los datos. Comúnmente también dan como resultado una mejor precisión.

Por cierto, sobre la transformación afín invariante y la convergencia más rápida, hay un enlace de interés aquí en stats.stackexchange.com.

Aquí tienes las reseñas y calificaciones

Si conservas alguna desconfianza y disposición de enriquecer nuestro noticia te recordamos realizar una anotación y con mucho placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *