vectorial vectores tutorial support soporte para maquinas maquina machine funciona for ejemplos ejemplo dummies como code clasificador machine-learning cluster-analysis neural-network svm reinforcement-learning

machine-learning - vectores - support vector machine for dummies



Máquinas de vectores de soporte: ¿mejores que las redes neuronales artificiales en las situaciones de aprendizaje? (4)

Sé que los SVM son supuestamente ''asesinos de ANN'' en que automáticamente seleccionan la complejidad de representación y encuentran un óptimo global (ver here algunas citas de alabanza de SVM).

Pero aquí es donde no estoy claro: ¿acaso todas estas afirmaciones de superioridad se mantienen para el caso de un problema de decisión de clase 2 o van más allá? (Supongo que son válidos para clases no linealmente separables o de lo contrario a nadie le importaría)

Entonces, una muestra de algunos de los casos que me gustaría aclarar:

  • ¿Las SVM son mejores que las ANN con muchas clases?
  • en un entorno en línea?
  • ¿Qué pasa en un caso semi-supervisado como el aprendizaje de refuerzo?
  • ¿Hay una mejor versión no supervisada de SVM?

No espero que alguien responda todas estas preguntas secundarias, sino más bien dar algunos límites generales para cuando las SVM son mejores que los equivalentes ANN comunes (por ejemplo, FFBP, BP recurrente, máquinas Boltzmann, SOM, etc.) en la práctica, y preferiblemente, en teoría también.


Espero que SVM sea mejor cuando tienes buenas características para empezar. IE, sus características capturan de forma sucinta toda la información necesaria. Puede ver si sus características son buenas si las instancias de la misma clase "se agrupan" en el espacio de características. Entonces SVM con núcleo Euclidiano debería hacer el truco. Esencialmente, puede ver SVM como un clasificador vecino más cercano sobrealimentado, por lo que siempre que NN lo haga bien, SVM debería hacerlo aún mejor, al agregar un control de calidad automático sobre los ejemplos en su conjunto. Por el contrario, si se trata de un conjunto de datos donde se espera que el vecino más cercano (en el espacio de características) tenga problemas, a SVM también le irá mal.


Me encantó la respuesta de Doug. Me gustaría agregar dos comentarios.

1) Vladimir Vapnick también co-inventó la dimensión VC que es importante en la teoría del aprendizaje.

2) Creo que los SVM fueron los mejores clasificadores de 2000 a 2009, pero después de 2009, no estoy seguro. Creo que las redes neuronales han mejorado muy significativamente recientemente debido al trabajo en Deep Learning y Sparse Denoising Auto-Encoders. Creí ver varios puntos de referencia en los que superaron a los SVM. Ver, por ejemplo, diapositiva 31 de

http://deeplearningworkshopnips2010.files.wordpress.com/2010/09/nips10-workshop-tutorial-final.pdf

Algunos de mis amigos han estado usando la técnica de autoenfoque disperso. Las redes neuronales creadas con esa técnica superaron significativamente a las redes neuronales de propagación de la espalda más antiguas. Trataré de publicar algunos resultados experimentales en artent.net si tengo algo de tiempo.


- ¿Hay una mejor versión no supervisada de SVM?

Solo estoy respondiendo solo esta pregunta aquí. El aprendizaje no supervisado puede realizarse mediante las llamadas máquinas de vectores de soporte de una clase . De nuevo, similar a las SVM normales, hay un elemento que promueve la escasez . En las SVM normales, solo unos pocos puntos se consideran importantes, los vectores de soporte . En SVM de una sola clase, solo se pueden usar algunos puntos para:

  1. "separar" un conjunto de datos tan lejos del origen como sea posible, o
  2. define un radio lo más pequeño posible.

Las ventajas de las SVM normales se trasladan a este caso. En comparación con la estimación de densidad, solo se deben considerar algunos puntos. Las desventajas también se transmiten.


¿Las SVM son mejores que ANN con muchas clases ? Probablemente se esté refiriendo al hecho de que los SVM son, en esencia, clasificadores de una o dos clases. De hecho, lo son y no hay forma de modificar un algoritmo SVM para clasificar más de dos clases.

La característica fundamental de un SVM es el hiperplano de separación de margen máximo cuya posición se determina maximizando su distancia de los vectores de soporte. Y sin embargo, los SVM se usan rutinariamente para la clasificación de clases múltiples, que se logra con un envoltorio de procesamiento alrededor de múltiples clasificadores SVM que trabajan en un patrón "uno contra muchos", es decir, los datos de entrenamiento se muestran a la primera SVM que clasifica esas instancias como " Clase I " o " no Clase I ". Los datos en la segunda clase, luego se muestran a una segunda SVM que clasifica estos datos como " Clase II " o " no Clase II ", y así sucesivamente. En la práctica, esto funciona bastante bien. Como es de esperar, la resolución superior de SVM en comparación con otros clasificadores no se limita a datos de dos clases.

Por lo que puedo decir, los estudios informados en la literatura confirman esto, por ejemplo, en el papel titulado provocativamente Sex with Support Vector Machines, una resolución sustancialmente mejor para la identificación del sexo (macho / hembra) en imágenes de 12 píxeles cuadrados, se informó para SVM comparado con el de un grupo de clasificadores lineales tradicionales; SVM también superó a RBF NN, así como al gran conjunto RBF NN). Pero parece haber muchas pruebas similares para el rendimiento superior de SVM en problemas de clase múltiple: por ejemplo, SVM superó a NN en el reconocimiento de pliegues de proteínas y en el pronóstico de series de tiempo .

Mi impresión al leer esta literatura durante la última década es que la mayoría de los estudios cuidadosamente diseñados, por personas expertas en configurar y usar ambas técnicas, y usar datos suficientemente resistentes a la clasificación como para provocar una diferencia significativa en la resolución, informa el rendimiento superior de SVM en relación con NN. Pero como sugiere su pregunta, ese delta de rendimiento parece ser, hasta cierto punto, específico del dominio.

Por ejemplo, NN superó a SVM en un estudio comparativo de identificación de autor a partir de textos en escritura árabe; En un study comparó la predicción de la calificación crediticia , no hubo una diferencia discernible en la resolución entre los dos clasificadores; un resultado similar se informó en un study de clasificación de partículas de alta energía .

He leído, de más de una source en la literatura académica, que SVM supera a NN a medida que disminuye el tamaño de los datos de entrenamiento.

Finalmente, el grado en que se puede generalizar a partir de los resultados de estos estudios comparativos es probablemente bastante limitado. Por ejemplo, en un estudio que comparó la precisión de SVM y NN en la predicción de series de tiempo, los investigadores reported que SVM superaba en realidad a un NN convencional (retroproducción sobre nodos en capas) pero el rendimiento de la SVM era aproximadamente el mismo que el de una RBF (función de base radial) NN.

[¿Son SVM mejores que ANN] en una configuración en línea ? Los SVM no se usan en una configuración en línea (es decir, entrenamiento incremental). La esencia de las SVM es el hiperplano de separación cuya posición está determinada por un pequeño número de vectores de soporte . Entonces, incluso un solo punto de datos adicional podría, en principio, influir significativamente en la posición de este hiperplano.

¿Qué pasa en un caso semi-supervisado como el aprendizaje de refuerzo ? Hasta el comentario de la OP sobre esta respuesta, no conocía ni las Redes Neuronales ni las SVM usadas de esta manera, pero sí lo están.

La variante más utilizada y semi-supervisada de SVM se denomina SVM transductiva (TSVM), mencionada por primera vez por Vladimir Vapnick (el mismo tipo que descubrió / inventó la SVM convencional). No sé casi nada sobre esta técnica aparte de cómo se llama y que sigue los principios de la transducción (aproximadamente el razonamiento lateral, es decir , el razonamiento de los datos de entrenamiento a los datos de prueba). Aparentemente TSV es una técnica preferida en el campo de la clasificación de texto .

¿Hay una mejor versión no supervisada de SVM ? No creo que las SVM sean adecuadas para el aprendizaje sin supervisión. La separación se basa en la posición del hiperplano de margen máximo determinado por los vectores de soporte. Esto podría ser fácilmente mi propia comprensión limitada, pero no veo cómo sucedería si los vectores de soporte no estuvieran etiquetados (es decir, si no supieran de antemano lo que estaban tratando de separar). Un caso de uso crucial de algoritmos no supervisados ​​es cuando no tiene datos etiquetados o lo hace y está muy desequilibrado. Por ejemplo, fraude en línea; Aquí podría tener en sus datos de entrenamiento, solo unos pocos puntos de datos etiquetados como "cuentas fraudulentas" (y usualmente con una precisión cuestionable) versus el 99% restante etiquetado como "no fraude". En este escenario, una buena opción es un clasificador de una clase , una configuración típica para SVM. En particular, los datos de entrenamiento consisten en instancias etiquetadas "no fraude" y "unk" (o alguna otra etiqueta para indicar que no están en la clase) - en otras palabras, "dentro del límite de decisión" y "fuera del límite de decisión" "

Quería concluir mencionando que, 20 años después de su "descubrimiento", el SVM es un miembro firmemente atrincherado en la biblioteca de ML. Y, de hecho, la resolución consistentemente superior en comparación con otros clasificadores de última generación está bien documentada.

Su pedigrí es una función de su desempeño superior documentado en numerosos estudios rigurosamente controlados, así como su elegancia conceptual. W / r / t el último punto, considere que los perceptrones multicapa (MLP), aunque a menudo son excelentes clasificadores, son impulsados ​​por una rutina de optimización numérica, que en la práctica raramente encuentra el mínimo global; además, esa solución no tiene significado conceptual. Por otro lado, la optimización numérica en el corazón de la construcción de un clasificador SVM de hecho encuentra el mínimo global. Lo que es más, esa solución es el límite de decisión real.

Aún así, creo que la reputación de SVM ha disminuido un poco durante los últimos años.

La razón principal que sospecho es la competencia de NetFlix. NetFlix enfatizó el poder de resolución de las técnicas fundamentales de descomposición de la matriz y aún más significativamente el poder de combinar clasificadores . Las personas combinaban clasificadores mucho antes de NetFlix, pero más como una técnica contingente que como un atributo del diseño del clasificador. Además, muchas de las técnicas para combinar clasificadores son extraordinariamente simples de comprender y también implementar. Por el contrario, las SVM no solo son muy difíciles de codificar (en mi opinión, el algoritmo de ML más difícil de implementar en el código), sino también difíciles de configurar e implementar como una biblioteca precompilada; por ejemplo, se debe seleccionar un kernel. , los resultados son muy sensibles a cómo los datos se vuelven a escalar / normalizar, etc.