Beneficios de SVM como herramienta para el reconocimiento de dígitos

8

Soy bastante nuevo en el reconocimiento de dígitos, y he notado que muchos tutoriales usan la clasificación SVM, por ejemplo:

Me gustaría saber si hay algún beneficio (específico del dominio) para esa herramienta, en comparación con, por ejemplo,

  • Redes neuronales de aprendizaje profundo
  • Clasificación basada en k-means

Gracias por cualquier comentario También se apreciará la aclaración de por qué SVM es una herramienta incorrecta para el reconocimiento de dígitos.

Karel Macek
fuente

Respuestas:

9

Los tutoriales para muchos clasificadores diferentes se basan en el reconocimiento de dígitos, particularmente el conjunto de datos MNIST. Creo que esto se debe principalmente a que este conjunto de datos está fácilmente disponible, es fácil de entender y requiere un preprocesamiento mínimo. También es un conjunto de datos de referencia común en la literatura.

No conozco argumentos de que una familia particular de clasificadores sea intrínsecamente más adecuada para el reconocimiento de dígitos. Creo que este sería un argumento difícil de hacer porque 1) La distribución de dígitos proviene del mundo real y no tenemos una descripción matemática exhaustiva del mismo, y 2) El conjunto de todos los SVM, todas las redes neuronales, etc. es infinito, y solo hemos logrado explorar un pequeño subconjunto. Quizás la red neuronal más conocida es mejor que la SVM más conocida, pero una nueva función del kernel está al acecho en algún lugar de ese vasto y desconocido espacio que mejoraría las SVM. Quizás haya otra arquitectura de red neuronal que sería aún mejor. Supongo que se podrían hacer argumentos en ciertos casos (por ejemplo, Bayes ingenuo en píxeles sin procesar es probablemente una mala idea porque sus suposiciones se violan descaradamente).

Hay muchas razones para preferir cada tipo de clasificador sobre otros en diferentes circunstancias (por ejemplo, tiempo / memoria requerida para la capacitación / evaluación, cantidad de ajustes / exploración necesarios para obtener un modelo de trabajo decente, etc.). Estas razones no son específicas del reconocimiento de dígitos, por lo que no las abordaré aquí.

Ciertamente, existen trucos específicos del dominio que pueden hacer que los clasificadores sean más adecuados para el reconocimiento de dígitos. Algunos de estos trucos funcionan aumentando la invariancia a transformaciones particulares que uno esperaría en dígitos escritos a mano (por ejemplo, traslación, rotación, escala, deformación). Por ejemplo, el dígito '0' debería significar lo mismo, incluso si se desplaza hacia la izquierda y se deforma un poco. Algunos de los trucos son específicos de la familia de clasificadores. Por ejemplo, este tipo de invariancia se puede obtener utilizando ciertos núcleos SVM, capas de transformadores espaciales en redes neuronales, o probablemente una métrica de distancia invariante para K vecinos más cercanos. Se pueden usar otros trucos con muchos clasificadores. Por ejemplo, el conjunto de datos se puede aumentar con muchas copias transformadas de los dígitos, lo que puede ayudar al clasificador a aprender la invariancia adecuada.

SVM, redes neuronales e incluso kNN han logrado un buen rendimiento en el conjunto de datos MNIST. Otros métodos también funcionan. El mejor rendimiento del que he oído hablar personalmente ha sido con redes neuronales. Algunos resultados se acumulan en diferentes documentos aquí y aquí .

usuario20160
fuente