4 votos

¿Para qué sirve el truco del núcleo en las SVM?

Mi comprensión de las SVM es la siguiente:

El truco del kernel nos permite proyectar los datos de un conjunto de entrenamiento que no es linealmente separable a un espacio de mayor dimensión donde se convierte en linealmente separable. Esto, a su vez, permite encontrar la frontera de separación óptima entre las dos clases, mejorando así la capacidad de generalización de la SVM en comparación con otros métodos como los perceptrones (de una sola capa oculta) y los k-NN.

En una discusión con alguien sobre las SVM, la otra persona señaló que aumentar el número de dimensiones de los datos (es decir, el truco del kernel) llevaría en realidad a un mayor sobreajuste, ya que con suficientes dimensiones, cualquier conjunto de datos se vuelve lineal y perfectamente separable, incluidos los conjuntos de datos ruidosos. Esto llevaría a que la precisión de la generalización se deteriorara en lugar de mejorar.

Su razonamiento tiene sentido, pero entonces ¿para qué sirve el truco del núcleo? ¿Por qué el truco del núcleo no conduce a un mayor sobreajuste?

3voto

Josh Pearce Puntos 2288

Las dimensiones de su transformada de características son los hiperparámetros. Así que sí, si los eliges muy grandes, correrás el riesgo de sobreajustar. Esto no es diferente de cualquier otro modelo de aprendizaje automático, como la elección de un polinomio de orden muy alto para muy pocos puntos o, una red neuronal en la que si se añaden demasiadas capas también se sobreajustará. Pero debería haber una dimensión más alta con un equilibrio razonable entre precisión y sobreajuste.

El truco del kernel sirve para un propósito muy importante: elimina la necesidad de calcular la transformación de sus características, y relega todos los cálculos a ser sólo en términos de productos internos entre sus características. Esto supone un gran aumento de velocidad, y también implica que no hay que preocuparse de cuál es la transformada de la característica. Para aclarar este punto, imagine que quiere utilizar una $d$ polinomio dimensional para transformar sus datos. Digamos que sus datos son $N$ dimensional. Entonces $\Phi:\mathbb{R}^N\rightarrow \mathbb{R}^D$ , donde $D=\binom{N+d}{d}$ . Por ejemplo, si $d=3$ entonces el polinomio tiene términos $\ x_i,\ x_{i}x_j$ , $\ x_{i}x_jx_k$ , donde $i,j,k$ están en $\{1,2,\ldots,N\}$ . Puedes resolverlo, pero verás que $D$ crece como $N^d$ que es enorme incluso para los pequeños $N,d$ . Por otro lado, el cálculo del producto punto puede ser mucho, mucho más rápido, y además no requiere almacenar $\Phi(x)$ para cada $x$ en la memoria.

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