¿Cuáles son las ventajas de las redes neuronales artificiales sobre las máquinas de vectores de soporte? [cerrado]

381

ANN (Redes neuronales artificiales) y SVM (Máquinas de vectores de soporte) son dos estrategias populares para el aprendizaje automático supervisado y la clasificación. A menudo no está claro qué método es mejor para un proyecto en particular, y estoy seguro de que la respuesta siempre es "depende". A menudo, se usa una combinación de ambos junto con la clasificación bayesiana.

Estas preguntas sobre Stackoverflow ya se han hecho con respecto a ANN vs SVM:

Clasificación ANN y SVM

¿Cuál es la diferencia entre ANN, SVM y KNN en mi pregunta de clasificación?

¿Admite la máquina de vectores o la red neuronal artificial para el procesamiento de texto?

En esta pregunta, me gustaría saber específicamente qué aspectos de un ANN (específicamente, un Perceptrón Multicapa) podrían hacer que sea deseable usar sobre un SVM. La razón por la que pregunto es porque es fácil responder a la pregunta opuesta : las máquinas de vectores de soporte a menudo son superiores a las ANN porque evitan dos debilidades importantes de las ANN:

(1) Las ANN a menudo convergen en los mínimos locales en lugar de los mínimos globales, lo que significa que a veces se les está "perdiendo el panorama general" (o falta el bosque para los árboles)

(2) Los ANN a menudo se sobreajustan si el entrenamiento dura demasiado, lo que significa que para cualquier patrón dado, un ANN podría comenzar a considerar el ruido como parte del patrón.

Las SVM no sufren ninguno de estos dos problemas. Sin embargo, no es evidente que las SVM sean un reemplazo total de las ANN. Entonces, ¿qué ventaja (s) específica (s) tiene una ANN sobre una SVM que podría hacerla aplicable para ciertas situaciones? He enumerado las ventajas específicas de un SVM sobre un ANN, ahora me gustaría ver una lista de las ventajas de ANN (si las hay).

Canal72
fuente
61
Desafortunadamente, esto probablemente se cerrará o se moverá pronto, pero me encanta la pregunta. No me gustaría nada mejor que ver una variedad de respuestas reflexivas a esta.
duffymo
10
Me imagino que la mayoría de las respuestas a esta pregunta serán especulativas o basadas en evidencia, porque hay muy pocas garantías teóricas sobre el poder de estas máquinas. Por ejemplo (si recuerdo correctamente), se desconoce si una red neuronal de alimentación de n capas es más poderosa que una red de 2 capas. Entonces, ¿cómo podemos decir que uno es mejor que el otro en principio si ni siquiera entendemos las relaciones entre pequeñas variaciones del mismo modelo?
JeremyKun
13
Está cerrado por no ser muy constructivo ... Lol!
erogol
65
Me encanta que StackOverflow intente mantener alta la calidad de las preguntas y respuestas. Odio que StackOverflow haga cumplir esto con un hacha en lugar de un bisturí. Hay una diferencia entre preguntar "¿cómo hago HTML stuffz?" y una pregunta de dominio específico que sería difícil de encontrar una respuesta en otro lugar. Hay una razón por la que esto tiene 140 votos a favor, aunque se considera "no constructivo". Preguntas como esta son el epítome de lo constructivo. Ciertamente, mucho más que muchos de los que veo todos los días que caen perfectamente en el formato de preguntas y respuestas, sin embargo, son inútiles para casi todos menos para el que pregunta.
Chase Ries
20
Esto es obviamente constructivo. No puedo entender por qué estaría cerrado. Pide situaciones específicas en las que el uso de un algoritmo tiene ventajas sobre el uso de un algoritmo alternativo. ¿No es eso algo razonable de preguntar?
Rab

Respuestas:

137

A juzgar por los ejemplos que proporciona, supongo que por ANN, se refiere a redes de alimentación de múltiples capas (redes FF para abreviar), como los perceptrones de múltiples capas, porque están en competencia directa con SVM.

Un beneficio específico que estos modelos tienen sobre los SVM es que su tamaño es fijo: son modelos paramétricos , mientras que los SVM no son paramétricos. Es decir, en un ANN tiene un montón de capas ocultas con tamaños de h 1 a h ndependiendo de la cantidad de características, más los parámetros de sesgo y los que componen su modelo. Por el contrario, un SVM (al menos uno kernelized) consiste en un conjunto de vectores de soporte, seleccionados del conjunto de entrenamiento, con un peso para cada uno. En el peor de los casos, el número de vectores de soporte es exactamente el número de muestras de entrenamiento (aunque eso ocurre principalmente con pequeños conjuntos de entrenamiento o en casos degenerados) y, en general, el tamaño de su modelo se escala linealmente. En el procesamiento del lenguaje natural, los clasificadores SVM con decenas de miles de vectores de soporte, cada uno con cientos de miles de características, no son desconocidos.

Además, el entrenamiento en línea de redes FF es muy simple en comparación con el ajuste SVM en línea, y la predicción puede ser bastante más rápida.

EDITAR : todo lo anterior se refiere al caso general de SVM kernelized. Los SVM lineales son un caso especial porque son paramétricos y permiten el aprendizaje en línea con algoritmos simples como el descenso de gradiente estocástico.

Fred Foo
fuente
12
Se puede encontrar otra razón en este documento: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . En resumen, el autor afirma que las "arquitecturas profundas" pueden representar funciones / comportamientos "inteligentes", etc. de manera más eficiente que las "arquitecturas superficiales" como las SVM.
alfa
1
Por otro lado, el aprendizaje profundo pierde de alguna manera las "ventajas" dadas aquí para MLP (tamaño fijo, entrenamiento más simple). Sin embargo, no estoy seguro de que estas ventajas valgan la pena.
Muhammad Alkarouri
66
@MuhammadAlkarouri: el aprendizaje profundo es un conjunto bastante amplio de técnicas, pero las que conozco conservan el beneficio de que los modelos sean paramétricos (tamaño fijo).
Fred Foo
Dos comentarios: el punto de capacitación en línea es verdadero, pero hay una variante de clasificadores similares a SVM diseñados específicamente para el aprendizaje en línea, llamada MIRA (un tipo de clasificador pasivo-agresivo) para el cual las actualizaciones son triviales. En segundo lugar, vale la pena señalar que muchas redes neuronales pueden formularse como SVM a través del truco del núcleo.
Ben Allison
1
@FredFoo también ANN puede estar atascado en mínimos locales donde las máquinas de vectores de soporte no son propensas a este problema.
turista
62

Una ventaja obvia de las redes neuronales artificiales sobre las máquinas de vectores de soporte es que las redes neuronales artificiales pueden tener cualquier número de salidas, mientras que las máquinas de vectores de soporte solo tienen una. La forma más directa de crear un clasificador n-ary con máquinas de vectores de soporte es crear n máquinas de vectores de soporte y entrenar a cada uno de ellos uno por uno. Por otro lado, un clasificador n-ary con redes neuronales se puede entrenar de una vez. Además, la red neuronal tendrá más sentido porque es un todo, mientras que las máquinas de vectores de soporte son sistemas aislados. Esto es especialmente útil si las salidas están relacionadas entre sí.

Por ejemplo, si el objetivo fuera clasificar los dígitos escritos a mano, serían suficientes diez máquinas de vectores de soporte. Cada máquina de vectores de soporte reconocería exactamente un dígito y no reconocería a todos los demás. Dado que cada dígito escrito a mano no puede contener más información que solo su clase, no tiene sentido tratar de resolver esto con una red neuronal artificial.

Sin embargo, suponga que el objetivo era modelar el equilibrio hormonal de una persona (para varias hormonas) en función de factores fisiológicos fáciles de medir, como el tiempo transcurrido desde la última comida, la frecuencia cardíaca, etc. La regresión de red tiene más sentido que la regresión de máquina de vectores de soporte.

Alan
fuente
18
En realidad, existen verdaderas formulaciones multiclase de la máquina de vectores de soporte (ver los documentos de Crammer & Singer). Creo que LibSVM contiene una implementación de estos.
Fred Foo
3
Sin embargo, entrenar un SVM multiclase no es tan fácil y el rendimiento parece ser mejor en el enfoque OVA que en el AVA.
crodriguezo
3
"no tiene sentido tratar de resolver esto con una red neuronal artificial" Puede usar una red neuronal para resolver la clasificación de los dígitos escritos a mano. He hecho esto como una tarea de hw para una clase. La capa de salida contiene probabilidades de todos los dígitos. La clase con la probabilidad más alta se utiliza como hipótesis. Tenía una tasa de precisión del 94%.
user3266824
Te refieres a crear n número de clasificadores SVM N-1 vs N-1 vs usar NN para hacer n salidas. SVM parece ser más lento de esta manera?
mskw
@ user3266824 Bueno, sí, esa cita no envejeció bien.
runDOSrun
46

Una cosa a tener en cuenta es que los dos están realmente muy relacionados. Los SVM lineales son equivalentes a los NN de una sola capa (es decir, perceptrones), y los NN de múltiples capas se pueden expresar en términos de SVM. Ver aquí para algunos detalles.

Bryce
fuente
18

Si desea usar un SVM de kernel, debe adivinar el kernel. Sin embargo, los ANN son aproximadores universales con solo suponer que se debe hacer es el ancho (precisión de aproximación) y la altura (eficiencia de aproximación). Si diseña el problema de optimización correctamente, no se ajusta demasiado (consulte la bibliografía para el ajuste excesivo). También depende de los ejemplos de entrenamiento si escanean correcta y uniformemente el espacio de búsqueda. El descubrimiento de ancho y profundidad es el tema de la programación de enteros.

Suponga que tiene funciones limitadas f (.) Y aproximadores universales limitados en I = [0,1] con rango nuevamente I = [0,1] por ejemplo, que están parametrizados por una secuencia real de soporte compacto U (., A) con la propiedad de que existe una secuencia de secuencias con

lim sup { |f(x) - U(x,a(k) ) | : x } =0

y dibuja ejemplos y pruebas (x,y)con una distribución D en IxI.

Para un soporte prescrito, lo que debe hacer es encontrar el mejor

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Deje esto a=aaque es una variable aleatoria !, el ajuste excesivo es entonces

promedio usando D and D^{N} of ( y - U(x,aa) )^{2}

Permítanme explicar por qué, si selecciona de aamodo que el error se minimice, entonces para un conjunto raro de valores tiene un ajuste perfecto. Sin embargo, dado que son raros, el promedio nunca es 0. Desea minimizar el segundo aunque tenga una aproximación discreta a D. Y tenga en cuenta que la longitud del soporte es libre.

Vasileios Anagnostopoulos
fuente
14

Aquí me falta una respuesta: el perceptrón multicapa puede encontrar una relación entre las características. Por ejemplo, es necesario en la visión por computadora cuando se proporciona una imagen en bruto al algoritmo de aprendizaje y ahora se calculan características sofisticadas. Esencialmente, los niveles intermedios pueden calcular nuevas características desconocidas.

dolbi
fuente
12

También debemos considerar que el sistema SVM se puede aplicar directamente a espacios no métricos, como el conjunto de gráficos o cadenas etiquetados. De hecho, la función interna del núcleo se puede generalizar correctamente a prácticamente cualquier tipo de entrada, siempre que se satisfaga el requisito de definición positiva del núcleo. Por otro lado, para poder utilizar un ANN en un conjunto de gráficos etiquetados, se deben considerar los procedimientos de inclusión explícitos.

strozzino
fuente
66
En mi opinión, la construcción de un núcleo sensible y la construcción de una integración métrica sensible son igualmente problemáticos. Así que esto es solo un comentario de que puede haber núcleos más variados que las métricas, pero realmente no compro eso. ohli.de/download/papers/Deza2009.pdf
JeremyKun