SVM de una clase versus SVM ejemplar

16

Entiendo que los SVM de una clase (OSVM) se propusieron con la ausencia de datos negativos en mente y que buscan encontrar límites de decisión que separen un conjunto positivo y algún punto de anclaje negativo, digamos el origen.

Un trabajo en 2011 propone SVM Ejemplares (ESVM) que entrena a un "clasificador único por categoría" que dice ser diferente de los OSVM, en el sentido de que los ESVM no "requieren mapear los ejemplos en un espacio de características común sobre el que se puede formar un núcleo de similitud calculado ". No entiendo muy bien lo que esto significa y cómo los ESVM difieren de los OSVM. Y entonces, ¿en qué se diferencian? ¿Y cómo se evita este cálculo de kernel de similitud en ESVM?

bjou
fuente

Respuestas:

20

(Es posible que desee ver primero la "tabla" a continuación)

Comencemos con las máquinas de vectores de soporte "clásicos". Estos aprenden a discriminar entre dos categorías. Recopila algunos ejemplos de categoría A, algunos de categoría B y los pasa al algoritmo de entrenamiento SVM, que encuentra la línea / plano / hiperplano que mejor separa A de B. Esto funciona, y a menudo funciona bastante bien, cuando desea distinguir entre clases bien definidas y mutuamente excluyentes: hombres contra mujeres, las letras del alfabeto, etc.

Sin embargo, suponga que desea identificar "A" s en su lugar. Podrías tratar esto como un problema de clasificación: ¿Cómo puedo distinguir entre "A" y "no A"? Es bastante fácil reunir un conjunto de entrenamiento que consiste en imágenes de perros, pero ¿qué debería incluir en su conjunto de entrenamiento de no perros? Dado que hay un número infinito de cosas que no son perros, es posible que tenga dificultades para construir un conjunto de entrenamiento integral y representativo de todas las cosas no caninas. En cambio, podría considerar usar un clasificador de una clase. El clasificador tradicional de dos clases encuentra un (hiper) plano que separa A de B. El SVM de una clase en su lugar encuentra la línea / plano / hiperplano que separa todos los puntos de la clase (las "A" s del origen). ;

El "sistema" Ensemble SVM es en realidad una colección de muchas "subunidades" SVM de dos clases. Cada subunidad se entrena usando una solaejemplo positivo para una clase y una enorme colección de ejemplos negativos para la otra. Por lo tanto, en lugar de discriminar perros versus ejemplos que no son perros (SVM estándar de dos clases), o perros versus origen (SVM de una clase), cada subunidad discrimina entre perros específicos (por ejemplo, "Rex") y muchos no perros ejemplos Los SVM de subunidades individuales se entrenan para cada ejemplo de la clase positiva, por lo que tendría un SVM para Rex, otro para Fido, otro para el perro de su vecino que ladra a las 6 am, y así sucesivamente. Las salidas de estas subunidades SVM se calibran y se combinan para determinar si un perro, no solo uno de los ejemplos específicos, aparece en los datos de la prueba. Supongo que también podría pensar en las subnits individuales como algo así como SVM de una clase, donde el espacio de coordenadas se desplaza para que el único ejemplo positivo se encuentre en el origen.

En resumen, las diferencias clave son:

Datos de entrenamiento

  • SVM de dos clases: ejemplos positivos y negativos
  • SVM de una clase: solo ejemplos positivos
  • Ensemble SVM "system": ejemplos positivos y negativos. Cada subunidad se entrena en un solo ejemplo positivo y muchos ejemplos negativos.

Numero de maquinas

  • SVM de dos clases: uno
  • Una clase SVM: una
  • Ensemble SVM "system": muchos (una máquina de subunidades por ejemplo positivo)

Ejemplos por clase (por máquina)

  • SVM de dos clases: muchos / muchos
  • Una clase SVM: muchos / uno (fijo en el origen)
  • Ensemble SVM "system": muchos / muchos
  • Ensemble SVM "subunidad": uno / muchos

Postprocesamiento

  • SVM de dos clases: no es necesario
  • SVM de una clase: no es necesario
  • SVM de conjunto: necesario para fusionar la salida de cada SVM en una predicción a nivel de clase.

Postdata: Usted preguntó qué quieren decir con "[otros enfoques] requieren mapear los ejemplos en un espacio de características común sobre el cual se pueda calcular un núcleo de similitud". Creo que significan que un SVM tradicional de dos clases funciona bajo la suposición de que todos los miembros de la clase son de alguna manera similares, por lo que desea encontrar un núcleo que coloque grandes daneses y dachsunds cerca uno del otro, pero lejos de todo lo demás. Por el contrario, el sistema SVM de conjunto deja de lado esto al llamar a algo perro si es lo suficientemente grande como un dane o un dachsund o un poodle, sin preocuparse por la relación entre esos ejemplos.

Matt Krause
fuente
Gracias por la excelente y completa respuesta. Para ser claros, en algunos lugares te refieres a "Conjunto" de SVM Ejemplares, pero en otros, ¿simplemente SVM "Ejemplar"? Creo que para ser justos, debería haber una comparación con (1) un SINGLE OSVM con un SINGLE ESVM, o (2) ENSEMBLE de OSVM con ENSEMBLE de ESVM.
bjou
Espero que no esté demasiado fuera de tema preguntar qué tan bien se generaliza en varias clases. Si tengo gatos, perros y pájaros, ¿eso hace que el esvm requiera un SVM de "elemento" para fido frente a cada gato Y un SVM de "elemento" para fido frente a cada ave? Si tuviera 10 puntos de datos para cada una de las 3 categorías, ¿eso significaría que tengo 20 elementos SVM por "perro" o un conjunto compuesto por 200 elementos? ¿Qué pasa si tengo 300 puntos de datos y 20 dimensiones, o 50k puntos de datos y 50k dimensiones? Si estuviera haciendo un bosque aleatorio de SVM, ¿podría usar subconjuntos aleatorios para reducir el impacto de la "maldición de la dimencionalidad"?
EngrStudent - Restablece a Monica el
@bjou, estaba un poco descuidado con la terminología de ESVM, así que volví y lo limpié. Supongo que se podría pensar que una "subunidad" del sistema ESVM es como un OSVM, excepto que el sistema de coordenadas se ha vuelto a centrar para que el ejemplo positivo se encuentre en el origen.
Matt Krause
1
@EngrStudent, en general se generaliza muy bien. En el documento, usan la tarea Pascal VOC, que tiene ~ 20 categorías. Para extender nuestro ejemplo animal, tendría una subunidad para "Fido" vs. (todas las aves, gatos y peces), otra subunidad para "Rex" vs. todos los que no son perros, y así sucesivamente para cada perro. Para los pájaros, entrenaría "Tweety" vs. (todos los gatos, perros, peces), "Polly" vs. todos los que no son pájaros, y así sucesivamente. También habría una subunidad para cada ejemplo de gato y pez, entrenado contra todos los no gatos y no peces, respectivamente. Terminas con 1 SVM por ejemplo etiquetado, independientemente del número de clases.
Matt Krause
Suena como un primo de impulso (en el sentido de árboles impulsados ​​por gradiente). El conjunto, ¿está ponderado por error de salida o ponderado de manera uniforme?
EngrStudent - Restablece a Monica el
2

En resumen, el modelo ESVM es un conjunto de SVM capacitados para distinguir cada elemento del conjunto de entrenamiento del resto, mientras que OSVM es un conjunto de SVM capacitados para distinguir cada subconjunto de elementos de entrenamiento que pertenecen a una clase. Entonces, si tiene 300 ejemplos de gatos y 300 perros en el conjunto de entrenamiento, ESVM producirá 600 SVM, cada uno para una mascota, mientras que OSVM hará dos SVM (primero para todos los gatos, segundo para todos los perros).

De esta manera, ESVM no necesita encontrar un espacio en el que se agrupe toda la clase, sino un espacio en el que este elemento único es un valor atípico, lo que probablemente sea más simple y conduzca a una alta precisión. Se dice que el conjunto proporciona el recuerdo.


fuente