SVM rbf kernel - método heurístico para estimar gamma

8

Leí en este intercambio un método heurístico para estimar gamma para el kernel rbf en SVM. Me preguntaba si alguien podría explicármelo con un poco más de detalle. Creo que selecciona 1000 (o una gran cantidad) de pares de puntos de datos del conjunto de datos y luego calcula la norma para la diferencia de cada par. Aparentemente, la inversa de los cuantiles .1, .9 y la mediana son buenos candidatos para una gamma adecuada para el núcleo rbf.

Gracias

tomas
fuente
Ver también esta respuesta a una pregunta duplicada
denis

Respuestas:

8

En primer lugar, no hay ninguna razón, excepto el costo computacional, para no usar todo su conjunto de datos. Mientras no use la información de la etiqueta, no hay razón para no usar toda la información que puede obtener de sus datos.

¿Por qué los cuantiles de la distancia son una buena heurística? La solución de un problema SVM es una combinación lineal de los núcleos RBF que se encuentran en los vectores de soporte.iyiαiexp(γ||xxi||2). Durante la fase de aprendizaje, la optimización adapta elαi para maximizar el margen manteniendo la clasificación correcta.

Ahora, hay dos casos extremos para la elección de γ:

  1. Imagina el γes muy pequeño, lo que significa que el núcleo RBF es muy ancho. Supongamos que es tan amplio que el núcleo RBF sigue siendo lo suficientemente positivo para cada punto de datos del conjunto de datos. Esto probablemente le dará al optimizador un trabajo difícil ya que cambiar el valor de un soloαicambiará la función de decisión en todos los puntos de datos porque el núcleo es demasiado ancho.
  2. La otra situación extrema es cuando el γes grande, lo que significa que el núcleo RBF es muy estrecho. Al cambiar elαipara ese punto de datos, la función de decisión del SVM básicamente cambiará solo para ese punto de datos solamente. Esto significa que probablemente todos los vectores de entrenamiento terminarán como vectores de soporte. Esto claramente no es deseable.

Para ver que la heurística es una buena opción, uno debe darse cuenta de que un cierto valor de γ determina un límite para el núcleo RBF en el que el núcleo será mayor que un cierto valor (como elσ-cuantil para la distribución Normal). Al elegir elγDe acuerdo con los cuantiles en las distancias por pares, se asegura de que un cierto porcentaje de los puntos de datos se encuentre dentro de ese límite. Por lo tanto, si cambia elαipara un punto de datos, de hecho, solo afectará la función de decisión para un cierto porcentaje de puntos de datos que es lo que desea. Cómo se debe elegir ese porcentaje depende del problema de aprendizaje, pero evita cambiar la función de decisión para todos o solo un punto de datos.

fabee
fuente
Gracias fabee que tiene mucho sentido. Tengo curiosidad por los costos de cómputo de hacer validación cruzada + búsqueda de cuadrícula con mi conjunto de datos. También estoy tratando con series de tiempo, por lo que estoy haciendo una validación cruzada de tipo ventana móvil en lugar de k-pliegues. Si tiene algunas sugerencias de aceleración definitivamente abiertas a esas. O cualquier sugerencia sobre cómo tratar con series de tiempo dependientes (autocorrelacionadas). Gracias.
tomas
Lo siento, no tengo una buena sugerencia en mi cabeza. El problema es que los datos ya no son iid. Una forma sencilla de deshacerse de las autocorrelaciones es entrenar un modelo autorregresivo y restar la predicción de los puntos de datos. Esto es esencialmente blanqueamiento.
fabee
1

¡Si! Estás describiendo el llamado "truco mediano".

Realmente me gusta la intuición detrás de la respuesta anterior. También creo que es más fácil entender el problema de elegirγ al considerarlo como el inverso de la varianza del RBF, à la

γ=12σ2
para que el RBF se convierta
ϕ(x)=exxi22σ2

Ahora está claro que el problema de buscar una buena es esencialmente el mismo que buscar una buena varianza para una función gaussiana (menos un factor de escala).γ

Para hacer esto, recurrimos a los estimadores de varianza, pero en lugar de calcular la varianza a través de la distancia cuadrada promedio de algunos como , calculamos cuantiles en esa distancia cuadrada.xiE[(xxi)2]

Como decía el póster anterior, el uso de cuantiles nos da control sobre cuántos puntos de datos se encuentran dentro de una (o dos, o tres ...) desviaciones estándar de nuestra función gaussiana.

dswah
fuente