(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.