Pregunta

Estoy cruzada publicar esto desde .stackexchange.com porque ahora no recibo ninguna regeneración y es una cuestión sensible al tiempo para mí.


Mi pregunta se refiere a la separabilidad lineal con hiperplanos en una máquina de vectores de soporte.

Según Wikipedia :

... formalmente, una máquina de vectores de soporte construye un hiperplano o conjunto de hiperplanos en un alto o infinito espacio dimensional, que se puede utilizar para la clasificación, regresión o otras tareas. Intuitivamente, un buen la separación se consigue mediante la hiperplano que tiene la mayor la distancia a los datos de entrenamiento más cercana puntos de cualquier clase (los llamados margen funcional), ya que en general cuanto mayor sea el margen más bajo es el error generalización de la classifier.classifier.

La separación lineal de clases por hiperplanos intuitivamente tiene sentido para mí. Y yo creo que entiendo separabilidad lineal para la geometría de dos dimensiones. Sin embargo, estoy poniendo en práctica una SVM utilizando una biblioteca SVM populares (libSVM) y cuando jugar un poco con los números, no llego a entender cómo un SVM puede crear una curva entre las clases, o incluir puntos centrales en la categoría 1 dentro de una curva circular cuando rodeado de puntos en la categoría 2 si un hiperplano en un espacio V n-dimensional es un subconjunto "plana" de dimensión n - 1, o por el espacio de dos dimensiones -. una línea 1D

Esto es lo que quiero decir:

separación clase circularmente cerrado para una SVM binario 2D

Esto no es un hiperplano. Eso es circular. ¿Como funciona esto? O hay más dimensiones dentro de la SVM que las características de entrada bidimensionales 2D?


Este ejemplo de aplicación se puede descargar aquí .


Editar

Gracias por sus respuestas integrales. Así que la SVM puede separar los datos extraños bien mediante el uso de una función del núcleo. ¿Sería útil para linealizar los datos antes de enviarlo a la SVM? Por ejemplo, una de mis características de entrada (un valor numérico) tiene un punto de giro (por ejemplo. 0) en el que claramente encaja en la categoría 1, pero por encima y por debajo de cero encaja en la categoría 2. Ahora, porque sé que esto, ¿verdad ayuda clasificación para enviar el valor absoluto de esta función para la SVM?

¿Fue útil?

Solución

Como se explicó Mókus, máquinas de vectores soporte utilizan un función del núcleo para correlacionar los datos de forma implícita en un espacio de características donde son linealmente separables:

mapeo SVM un espacio de características en otro

Las diferentes funciones del núcleo se utilizan para diversos tipos de datos. Tenga en cuenta que una dimensión adicional (función) se añade por la transformación de la imagen, aunque esta característica no se materializa en la memoria.

(Ejemplo de la Chris Thornton, U. Sussex .)

Otros consejos

Consulte esta YouTube vídeo que ilustra un ejemplo de puntos linealmente separables inseparables que se convierten por un plano cuando asignada a una dimensión superior.

text alt

No estoy muy familiarizado con SVM, pero de lo que recuerdo de mis estudios que se utiliza a menudo con una "función kernel" - esencialmente, un reemplazo para el producto interno estándar que efectivamente no linealiza el espacio. Es vagamente equivalente a aplicar una transformación no lineal de su espacio en un poco de "espacio de trabajo" donde se aplica el clasificador lineal, y luego tirando de los resultados de vuelta en su espacio original, donde los subespacios lineales clasificador trabaja ya no son lineales.

El artículo de Wikipedia menciona esto en la subsección "clasificación no lineal", con un enlace a http: //en.wikipedia.org/wiki/Kernel_trick que explica la técnica más general.

Esto se realiza mediante la aplicación de lo que se conoce como [Trick Kernel] ( http: //en.wikipedia .org / wiki / Kernel_trick ) Lo que básicamente se hace es que si hay algo que no es linealmente separables en el espacio de entrada existente (2-D en su caso), se proyecta a una dimensión superior, cuando ello pueda ser separables. Se aplica una función del núcleo (puede ser no lineal) para modificar su espacio de características. Todos los cálculos se realizaron entonces en este espacio de características (que puede ser, posiblemente, de dimensiones infinitas también).

Cada momento de su entrada se transforma el uso de esta función del núcleo, y todos los cálculos posteriores se llevan a cabo como si fuera su espacio de entrada original. Por lo tanto, los puntos pueden ser separable en una dimensión superior (posiblemente infinita) y por lo tanto el hiperplano lineal en dimensiones más altas podría no ser lineal en las dimensiones originales.

En un ejemplo sencillo, considere el ejemplo de XOR. Si traza Input1 en el eje x, y la entrada 2 en el eje Y, a continuación, las clases de salida serán los siguientes:

  1. Clase 0: (0,0), (1,1)
  2. Clase 1: (0,1), (1,0)

Como se puede observar, no es linealmente seperable en 2-D. Pero si tomo estos pares ordenados en 3-D, (con sólo mover 1 punto en 3-D) decir:

  1. Clase 0: (0,0,1), (1,1,0)
  2. Clase 1: (0,1,0), (1,0,0)

Ahora se puede observar fácilmente que hay un plano en 3-D para separar estas dos clases linealmente.

Por lo tanto, si usted proyecta sus entradas a una dimensión suficientemente grande (posiblemente infinita), entonces usted será capaz de separar sus clases linealmente en esa dimensión.

Un punto importante a destacar aquí (y tal vez voy a responder a su otra pregunta también) es que usted no tiene que hacer una función del núcleo mismo (como yo hice uno arriba). Lo bueno es que la función del núcleo se encarga automáticamente de su entrada y se da cuenta de cómo "Alinear" la misma.

En el ejemplo SVM en la pregunta dada en 2-D x1 Let espacio, x2 ser los dos ejes. Usted puede tener una función de transformación F = x1 + x2 ^ 2 ^ 2 y transformar este problema en un problema de espacio 1-D. Si observa atentamente se podía ver que en el espacio transformado, se puede fácilmente separar linealmente los puntos (umbrales en el eje F). Aquí el espacio transformado era [F] (1 dimensional). En la mayoría de los casos, podría ser el aumento de la dimensionalidad de conseguir hiperplanos linealmente separables.

Mi respuesta a una pregunta anterior podría arrojar alguna luz sobre lo que está ocurriendo en este caso. El ejemplo que dan es muy artificiosa y no es realmente lo que sucede en una SVM, pero debe dar vienes intuición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top