Benefícios do SVM como uma ferramenta para reconhecimento de dígitos

8

Eu sou bastante novo no reconhecimento de dígitos e notei que muitos tutoriais usam a classificação SVM, por exemplo:

Gostaria de saber se existem benefícios (específicos do domínio) para essa ferramenta, em comparação com, por exemplo,

  • Redes neurais de aprendizagem profunda
  • Classificação baseada em k-means

Obrigado por qualquer comentário. O esclarecimento, por que o SVM é uma ferramenta errada para o reconhecimento de dígitos, também será apreciado.

Karel Macek
fonte

Respostas:

9

Os tutoriais para muitos classificadores diferentes são baseados no reconhecimento de dígitos, particularmente no conjunto de dados MNIST. Eu acho que isso ocorre principalmente porque esse conjunto de dados está prontamente disponível, fácil de entender e requer pré-processamento mínimo. Também é um conjunto de dados de referência comum na literatura.

Não estou ciente dos argumentos de que qualquer família particular de classificadores é intrinsecamente mais adequada para o reconhecimento de dígitos. Eu acho que esse seria um argumento difícil de argumentar, porque 1) A distribuição dos dígitos vem do mundo real e não temos uma descrição matemática abrangente dele, e 2) O conjunto de todos os SVMs, todas as redes neurais, etc. é infinito e só conseguimos explorar um pequeno subconjunto. Talvez a rede neural mais conhecida seja melhor que a SVM mais conhecida, mas uma nova função do kernel está oculta em algum lugar daquele vasto espaço não descoberto que tornaria as SVMs melhores. Talvez haja outra arquitetura de rede neural que seria melhor ainda. Suponho que argumentos possam ser feitos em certos casos (por exemplo, Bayes ingênuo em pixels brutos é provavelmente uma má idéia, porque suas suposições são flagrantemente violadas).

Há muitas razões para preferir cada tipo de classificador a outros em circunstâncias diferentes (por exemplo, tempo / memória necessários para treinamento / avaliação, quantidade de ajustes / exploração necessários para obter um modelo de trabalho decente etc.). Como esses motivos não são específicos para o reconhecimento de dígitos, não os abordarei aqui.

Certamente existem truques específicos do domínio que podem tornar os classificadores mais adequados para o reconhecimento de dígitos. Alguns desses truques funcionam aumentando a invariância a transformações específicas que se esperaria em dígitos manuscritos (por exemplo, tradução, rotação, dimensionamento, deformação). Por exemplo, o dígito '0' deve significar a mesma coisa, mesmo que tenha sido deslocado para a esquerda e distorcido um pouco. Alguns dos truques são específicos para a família de classificadores. Por exemplo, esse tipo de invariância pode ser obtido usando certos núcleos SVM, camadas de transformadores espaciais em redes neurais ou provavelmente uma métrica de distância invariável para K vizinhos mais próximos. Outros truques podem ser usados ​​com muitos classificadores. Por exemplo, o conjunto de dados pode ser aumentado com muitas cópias transformadas dos dígitos, o que pode ajudar o classificador a aprender a invariância adequada.

SVMs, redes neurais e até kNN alcançaram um bom desempenho no conjunto de dados MNIST. Outros métodos também funcionam. O melhor desempenho que ouvi pessoalmente foi com redes neurais. Alguns resultados são acumulados em diferentes artigos aqui e aqui .

user20160
fonte