108 votos

¿Cómo se selecciona el núcleo para la SVM?

Al utilizar la SVM, tenemos que seleccionar un núcleo.

Me pregunto cómo seleccionar un núcleo. ¿Algún criterio para la selección del núcleo?

1 votos

¿cuál es la magnitud del problema? (#variables, observaciones)?

1 votos

Sólo pido una solución generalizada, ningún problema particular especificado

67voto

John Richardson Puntos 1197

El kernel es efectivamente una medida de similitud, por lo que elegir un kernel de acuerdo con el conocimiento previo de las invariancias como sugiere Robin (+1) es una buena idea.

En ausencia de conocimiento experto, el núcleo de la función de base radial es un buen núcleo por defecto (una vez que se ha establecido que es un problema que requiere un modelo no lineal).

La elección del kernel y de los parámetros del kernel/regularización puede automatizarse mediante la optimización de una selección de modelos basada en valoraciones cruzadas (o utilizar los límites de radio-margen o span). Lo más sencillo es minimizar un criterio de selección de modelo continuo utilizando el método simplex de Nelder-Mead, que no requiere el cálculo del gradiente y funciona bien para un número razonable de hiperparámetros. Si tiene más de unos pocos hiperparámetros que ajustar, es probable que la selección automática de modelos dé lugar a un sobreajuste grave, debido a la varianza del criterio de selección de modelos. Es posible utilizar la optimización basada en el gradiente, pero la ganancia de rendimiento no suele merecer el esfuerzo de codificarla).

La elección automatizada de los núcleos y de los parámetros de los núcleos/regularización es una cuestión delicada, ya que muy Es fácil sobreajustar el criterio de selección del modelo (normalmente basado en la validación cruzada), y se puede acabar con un modelo peor que el inicial. La selección automatizada del modelo también puede sesgar la evaluación del rendimiento, así que asegúrese de que su evaluación del rendimiento evalúa todo el proceso de ajuste del modelo (entrenamiento y selección del modelo); para más detalles, consulte

G. C. Cawley y N. L. C. Talbot, Preventing over-fitting in model selection via Bayesian regularisation of the hyper-parameters, Journal of Machine Learning Research, volumen 8, páginas 841-861, abril de 2007. (pdf)

y

G. C. Cawley y N. L. C. Talbot, Over-fitting in model selection and subsequent selection bias in performance evaluation, Journal of Machine Learning Research, vol. 11, pp. 2079-2107, July 2010. (pdf)

1 votos

Entiendo que la base radial es una medida de similitud ya que es casi 0 para vectores alejados entre sí y alcanza su máximo en vectores idénticos. Sin embargo, no veo cómo esa idea se aplica al algoritmo lineal (que utiliza el producto punto como núcleo). ¿Cómo podemos interpretar el producto punto como una medida de similitud?

2 votos

@Bananin el producto punto se puede escribir como el producto de la magnitud de los dos vectores por el coseno del ángulo entre ellos, así que puedes pensar que mide la similitud en términos de la dirección de los vectores (pero obviamente también depende de sus magnitudes)

36voto

David Pokluda Puntos 4284

Si no está seguro de qué es lo mejor, puede utilizar técnicas automáticas de selección (por ejemplo, validación cruzada, ... ). En este caso puede incluso utilizar un combinación de clasificadores (si su problema es la clasificación) obtenidos con diferentes núcleos.

Sin embargo, la "ventaja" de trabajar con un núcleo es que cambias la geometría "euclidiana" habitual para que se adapte a tu propio problema. Además, hay que tratar de entender cuál es el interés de un kernel para tu problema, qué es lo particular de la geometría de su problema . Esto puede incluir:

  • Invarianza Si hay una familia de transformaciones que no cambian el problema fundamentalmente, el núcleo debería reflejarlo. La invariancia por rotación está contenida en el núcleo gaussiano, pero se puede pensar en muchas otras cosas: traslación, homotecia, cualquier representación de grupo, ....
  • ¿Qué es un buen separador? si tiene una idea de lo que es un buen separador (es decir, una buena regla de clasificación) en su problema de clasificación, esto debería incluirse en la elección del núcleo. Recuerde que SVM le dará clasificadores de la forma

$$ \hat{f}(x)=\sum_{i=1}^n \lambda_i K(x,x_i)$$

Si sabes que un separador lineal sería bueno, entonces puedes usar Kernel que da funciones afines (es decir $K(x,x_i)=\langle x,A x_i\rangle+c$ ). Si crees que sería mejor tener límites suaves en el espíritu del KNN suave, entonces puedes tomar un kernel gaussiano...

0 votos

En tu respuesta, mencionas que "La "ventaja" de trabajar con un núcleo es que cambias la geometría "euclidiana" habitual para que se adapte a tu propio problema. Además, deberías tratar de entender cuál es el interés de un kernel para tu problema, qué es lo particular de la geometría de tu problema." ¿Puedes dar algunas referencias para empezar? Gracias.

12voto

karatchov Puntos 230

Siempre tengo la sensación de que cualquier selección de hiperparámetros para SVMs se hace a través de la validación cruzada en combinación con la búsqueda en la red.

2 votos

Tengo la misma sensación

3 votos

La búsqueda en la red es una mala idea, se pierde mucho tiempo buscando en zonas donde el rendimiento es malo. Utiliza algoritmos de optimización sin gradiente, como el método simplex de Nelder-Mead, que es mucho más eficiente en la práctica (por ejemplo, fminsearch() en MATLAB).

0 votos

No, utilizar modelos gráficos o procesos gaussianos para la optimización global en combinación con la información esperada. (Véase 'Algorithms for hyper parameter optimization', Bergstra et al, próximo NIPS).

3voto

nguyendat Puntos 108

Además, el núcleo lineal es un caso especial de RBF, en particular, cuando el número de características es muy grande, se puede utilizar el núcleo lineal.

3 votos

Depende de si tus datos son linealmente separables o no, no de cuántas dimensiones tengas. Cuando el número de características es muy grande, (de nuevo dependiendo de los datos), se aplicaría primero la reducción de la dimensionalidad, PCA o LDA (variantes de núcleo lineal o no lineal)

0 votos

Creo que hay que diferenciar más aquí: El hecho de que los datos no sean linealmente separables no significa que un modelo lineal no sea adecuado (imagínese que la no separabilidad sólo se debe a los valores atípicos).

0 votos

Y viceversa: que los datos sean linealmente separables no significa necesariamente que un modelo lineal sea adecuado.

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