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:
¿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).
Respuestas:
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.
fuente
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.
fuente
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.
fuente
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
y dibuja ejemplos y pruebas
(x,y)
con una distribución D enIxI
.Para un soporte prescrito, lo que debe hacer es encontrar el mejor
Deje esto
a=aa
que es una variable aleatoria !, el ajuste excesivo es entoncespromedio usando
D and D^{N} of ( y - U(x,aa) )^{2}
Permítanme explicar por qué, si selecciona de
aa
modo 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.fuente
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.
fuente
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.
fuente