¿Existe alguna ventaja al usar SVM para la regresión en lugar de las ANN, cuando se intenta modelar una función compleja, no lineal, bivariante y de valor vectorial?

Supongo que se refiere a una red neuronal completamente conectada (también conocida como red de perceptrón multicapa) cuando dice ANN.

Los perceptrones son clasificadores lineales, lo que significa que generan hiperplanos que pueden distinguir entre clases linealmente separables sin errores. Sin embargo, generan dicho hiperplano dependiendo de su inicialización y el orden de sus datos de entrenamiento. No hay forma de saber cuál.

SVM también es un clasificador lineal, pero garantiza generar el hiperplano de separación óptimo. Aquí, óptimo simplemente significa el hiperplano que tiene los márgenes más grandes desde los límites de las clases en sus datos de entrenamiento. Por lo tanto, el uso de un SVM garantiza que obtenga el hiperplano de separación más seguro como precaución ante los valores atípicos que su clasificador podría encontrar.

Dado que sus datos no son linealmente separables, debe usar un SVM de margen blando o el truco del kernel.

  • A diferencia de los SVM convencionales (margen duro), los SVM de margen blando permiten clasificaciones erróneas en sus datos de entrenamiento, pero le permiten ajustar su sensibilidad utilizando parámetros llamados variables de holgura. Al hacerlo, está generando el hiperplano que clasifica principalmente sus clases, pero no realiza una precisión del 100% en sus datos de entrenamiento. Si intentas usar un clasificador de margen duro para tus datos de entrenamiento no linealmente separables, no se garantiza que el clasificador produzca un clasificador preciso, así que no hagas eso.
  • Su otra opción es usar el truco del núcleo, que internamente transforma sus datos a una dimensión superior, en la cual sus datos se vuelven linealmente separables. Estas dimensiones se obtienen como combinaciones de sus dimensiones actuales. Genera un clasificador de esa dimensión superior que puede separar sus clases. Suena complicado y complicado, pero una pequeña investigación revelaría que no es más que unas pocas líneas de código y se puede hacer de manera bastante trivial. En este caso, si puede encontrar la transformación correcta (núcleo) y la dimensión, su clasificador puede separar sus datos de entrenamiento con una precisión del 100%. La parte difícil es encontrar el núcleo correcto y la dimensión correcta.

Tenga en cuenta que estos no son para nada exclusivos. Puede usar un SVM como capa de salida de una red neuronal multicapa. En este documento, hacerlo produjo el modelo de mejor desempeño. Lo interesante que hicieron fue usar una red neuronal entrenada en un problema, y ​​aplicaron exactamente la misma red, con la capa de salida eliminada, a los nuevos problemas de clasificación, variando la técnica utilizada para aprender una nueva capa de salida. Al hacer algo como esto, elimina la mayor parte de la desventaja de usar una red profunda, que es que lleva mucho tiempo entrenar.

Sin embargo, como señala Frank Puk, no producen un modelo muy interpretable y, a veces, eso es importante. Para la aplicación considerada aquí (clasificación de patrones visuales), eso no importa mucho (su pregunta no es sobre clasificación, pero es trivial simplemente no usar las técnicas utilizadas para transformar los pesos de salida en una distribución de probabilidad y usar sse en lugar de cross) -entropía como pérdida y el mismo método exacto es ahora regresión).

Tenga en cuenta también que el uso de SVR para aprender una función de valor vectorial tradicionalmente tenía el inconveniente de que está utilizando múltiples modelos uno contra muchos, que es 1) computacionalmente costoso y 2) no puede considerar los efectos de interacción entre las diferentes salidas. Las redes neuronales no necesariamente tienen ese inconveniente. Sin embargo, en los últimos años ha salido un número bastante decente de documentos que proponen algoritmos para hacer SVR de múltiples salidas sin usar uno contra muchos. Aparentemente, uno de estos compartió el código en GitHub. El documento trata sobre esta pregunta exacta, comparando ANN con SVR para problemas de aprendizaje de múltiples entradas y múltiples salidas (en este caso, en física de materia condensada). Te puede interesar y puedes encontrarlo en Arxiv aquí.

El modelo obtenido por SVM (o SVR) es más explicable: el parámetro resuelto por el modelo “[math] w [/ math]” puede verse como un problema de selección de características. El elemento distinto de cero en el vector “[matemática] w [/ matemática]” corresponde a la característica utilizada para hacer la clasificación, y puede usarse para reflejar la importancia de una característica utilizada en el problema de clasificación.

Además, SVM se puede ajustar más fácilmente que ANN, aunque ambos siguen siendo difíciles de hacer. Durante la fase de entrenamiento de la validación n-fold, los parámetros como [math] C [/ math] (para cualquier tipo de formulación SVM) y [math] \ sigma [/ math] (solo para kernel rbf) pueden ajustarse mediante la búsqueda de cuadrícula , mientras que el ajuste de los parámetros ANN (por ejemplo, número de capas ocultas, número de nodos en cada capa) sería más difícil y no se puede ajustar simplemente con la búsqueda de cuadrícula.

More Interesting

Cómo acceder a la web sin usar una ubicación física o una cuenta que pueda asociarse con usted

¿Una simulación perfecta de algo requeriría tanta información como la cosa que se simula?

¿Las personas homofóbicas dejarán de usar computadoras porque Alan Turing, el hombre detrás de su innovación, era homosexual?

¿Puedo entender mónada como un contenedor que realiza ciertos cálculos?

¿Cuáles son algunos proyectos que implementan Machine Learning e Ingeniería Eléctrica?

¿Cuál será la próxima gran cosa después de 'big data' en tecnología financiera?

¿Cuáles son algunas de las nuevas tecnologías que son fáciles de usar para personas mayores de 65 años?

¿Qué es un sistema operativo, cuáles son los tipos de sistemas operativos?

¿Es cierto que la inteligencia artificial matará empleos?

¿Están relacionados estos temas entre sí: minería de datos, big data, aprendizaje automático, inteligencia artificial? ¿Si es así, cómo?

¿Cuál fue la arquitectura de MS-DOS?

¿Deberían los estudiantes de ciencias de la computación conocer el concepto de personas provisionales o fomenta la creencia de que los "diseñadores simplemente inventan cosas"?

¿Estaría de acuerdo con Elon Musk en sus miedos a la inteligencia artificial?

¿Qué universidad entre UCSB, USC y UIUC es una mejor opción para un título universitario en física y ciencias de la computación?

¿Cómo prueba un algoritmo de tiempo polinómico a un problema NP-Hard conocido que P = NP? ¿No podría haber otros problemas en NP que no hayamos concebido?