As máquinas de vetores de suporte ainda são consideradas "avançadas" em seu nicho?

58

Esta pergunta é uma resposta a um comentário que vi em outra pergunta.

O comentário foi sobre o programa do curso de Aprendizado de Máquina no Coursera, e na linha de "SVMs não são tão usados ​​hoje em dia".

Acabei de terminar as palestras relevantes, e meu entendimento dos SVMs é que eles são um algoritmo de aprendizado robusto e eficiente para classificação e que, ao usar um kernel, eles têm um "nicho" que abrange vários recursos, talvez 10 a 1000 e número de amostras de treinamento, talvez 100 a 10.000. O limite para amostras de treinamento é que o algoritmo principal gira em torno da otimização dos resultados gerados a partir de uma matriz quadrada com dimensões baseadas no número de amostras de treinamento, e não no número de recursos originais.

O mesmo comentário que eu vi referiu alguma mudança real desde que o curso foi feito, e se sim, qual é essa mudança: Um novo algoritmo que cobre o "ponto ideal" do SVM também, CPUs melhores, o que significa que as vantagens computacionais do SVM não valem tanto ? Ou talvez seja a opinião ou a experiência pessoal do comentarista?

Tentei pesquisar, por exemplo, "são máquinas de vetores de suporte fora de moda" e não achei nada que sugerisse que elas estavam sendo descartadas em favor de qualquer outra coisa.

E a Wikipedia possui: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . o principal ponto de discórdia parece ser a dificuldade de interpretar o modelo. O que torna o SVM adequado para um mecanismo de previsão de caixa preta, mas não tão bom para gerar insights. Não vejo isso como uma questão importante, apenas outra coisa menor a ser levada em consideração ao escolher a ferramenta certa para o trabalho (junto com a natureza dos dados de treinamento e da tarefa de aprendizagem, etc.).

Neil Slater
fonte
6
Não entendi - não é uma pergunta que deve ser postada no CrossValidated? Continuo confuso sobre o que acontece entre o DataScience e o CrossValidated.
FNL
@fnl: svms têm alguma concorrência como classificadores de soluções de engenharia menos matematicamente "puras", então acho que o DataScience está em uma posição melhor para fazer a comparação aqui. Embora eu compartilhe sua confusão!
Neil Slater

Respostas:

47

SVM é um classificador poderoso. Tem algumas vantagens interessantes (que eu acho que foram responsáveis ​​por sua popularidade) ... Estas são:

  • Eficiência: Somente os vetores de suporte desempenham um papel na determinação do limite de classificação. Todos os outros pontos do conjunto de treinamento não precisam ser armazenados na memória.
  • O chamado poder dos núcleos: com os núcleos apropriados, você pode transformar o espaço de recursos em uma dimensão mais alta, para que se torne linearmente separável. A noção de kernels trabalha com objetos arbitrários nos quais é possível definir alguma noção de similaridade com a ajuda de produtos internos ... e, portanto, os SVMs podem classificar objetos arbitrários, como árvores, gráficos etc.

Existem algumas desvantagens significativas também.

  • Sensibilidade do parâmetro: O desempenho é altamente sensível à escolha do parâmetro de regularização C, o que permite alguma variação no modelo.
  • Parâmetro extra para o kernel gaussiano: O raio do kernel gaussiano pode ter um impacto significativo na precisão do classificador. Normalmente, uma pesquisa em grade deve ser realizada para encontrar parâmetros ideais. O LibSVM tem suporte para pesquisa em grade.

Os SVMs geralmente pertencem à classe de "Sparse Kernel Machines". Os vetores esparsos no caso do SVM são os vetores de suporte que são escolhidos a partir do critério de margem máxima. Outras máquinas de vetores esparsos, como a Relevance Vector Machine (RVM), apresentam desempenho melhor que o SVM. A figura a seguir mostra um desempenho comparativo dos dois. Na figura, o eixo x mostra dados unidimensionais de duas classes y = {0,1}. O modelo de mistura é definido como P (x | y = 0) = Unif (0,1) e P (x | y = 1) = Unif (.5,1,5) (Unif indica distribuição uniforme). Foram amostrados 1000 pontos dessa mistura e um SVM e um RVM foram usados ​​para estimar o posterior. O problema do SVM é que os valores previstos estão longe das verdadeiras probabilidades de log.

RVM vs. SVM

Um classificador muito eficaz, hoje muito popular, é a Floresta Aleatória . As principais vantagens são:

  • Apenas um parâmetro para ajustar (ou seja, o número de árvores na floresta)
  • Não é totalmente sensível a parâmetros
  • Pode ser facilmente estendido para várias classes
  • É baseado em princípios probabilísticos (maximizando o ganho de informações mútuas com a ajuda de árvores de decisão)
Debasis
fonte
4
Não pretendo ser excessivamente crítico, mas os SVMs NÃO são eficientes. Eles têm uma complexidade cúbica na maioria dos casos, e é por isso que há muita eliminação gradual.
indico
2
sim, métodos de convergência padrão toma O (n ^ 3) ... mas acho que vi em algum lugar (pode ser da página inicial de T. Joachims) que foi reduzido para O (n ^ 2)
Debasis
4
@indico para os problemas mais práticos, a complexidade do treinamento SVM do kernel está mais próxima da quadrática. O SMO cúbico de Platt está fora de uso há algum tempo. Ainda é alto demais para conjuntos de dados realmente grandes, mas não é tão ruim quanto você retrata. O SVM linear é altamente eficiente, com complexidade sublinear.
Marc Claesen
Outras vantagens dos SVMs: 1) Seu funcionamento interno pode ser bem imaginado por pessoas menos familiarizadas com a análise de dados. [e em menor grau: 2) Se o feedback interativo em tempo real pelo (a ciência não dados) de especialistas é necessária, SVMs lineares pode ser uma opção mais rápida - resultando em uma melhor formação por especialistas.]
tsttst
2
As florestas aleatórias geralmente têm outros hiperparâmetros, como o número máximo de recursos por árvore e a profundidade máxima. Também é importante notar que os SVMs são fáceis de colocar em produção em ambientes com recursos limitados - eles não precisam de muita memória para pontuar o modelo.
David Anderson
8

Ao responder a essa pergunta, uma distinção significativa a ser feita é se estamos falando de máquinas de vetores de suporte lineares ou não lineares , ou seja, máquinas de vetores de suporte kernelizadas.

SVMs lineares

SVMs lineares são teoricamente e praticam modelos muito bons quando seus dados podem ser explicados por relações lineares de seus recursos. Eles são superiores aos métodos clássicos, como regressão linear (também conhecida como mínimos quadrados), porque são robustos , no sentido de que pequenas perturbações nos dados de entrada não produzem mudanças significativas no modelo. Isso é alcançado ao tentar encontrar a linha (hiperplano) que maximiza as margens entre seus pontos de dados. Foi demonstrado que esse hiperplano de margem máxima fornece garantias sobre a capacidade de generalização do modelo sobre pontos de dados invisíveis, uma propriedade teórica que outros métodos de aprendizado de máquina não possuem.

Os SVMs lineares também são interpretáveis ​​como qualquer outro modelo linear, pois cada recurso de entrada tem um peso que influencia diretamente a saída do modelo.

Os SVMs lineares também são muito rápidos para treinar, mostrando tempos de treinamento sublinear para conjuntos de dados muito grandes. Isso é conseguido com o uso de técnicas estocásticas de descida de gradiente, muito à moda dos métodos atuais de aprendizado profundo.

SVMs não lineares

SVMs não lineares ainda são modelos lineares e apresentam os mesmos benefícios teóricos, mas eles empregam o chamado truque do kernel para construir esse modelo linear em um espaço ampliado. O resultado visível é que o modelo resultante pode tomar decisões não lineares em seus dados. Como você pode fornecer um kernel personalizado que codifica semelhanças entre pontos de dados, você pode usar o conhecimento do problema para fazer com que o kernel se concentre nas partes relevantes do seu problema. Fazer isso de forma eficaz, no entanto, pode ser difícil, portanto, em geral, quase todo mundo usa o kernel gaussiano plug-and-play.

SVMs não lineares são parcialmente interpretáveis, pois informam quais dados de treinamento são relevantes para previsão e quais não são. Isso não é possível para outros métodos, como florestas aleatórias ou redes profundas.

Infelizmente, SVMs não lineares são lentos. O algoritmo de última geração é a Otimização Mínima Sequencial , que mostra desempenho quadrático, e é amplamente implementado através da biblioteca LIBSVM em várias bibliotecas de aprendizado de máquina, incluindo o scikit -learn.

Popularidade desses métodos

É verdade que os SVMs não são tão populares como costumavam ser: isso pode ser verificado no Google por artigos de pesquisa ou implementações de SVMs versus florestas aleatórias ou métodos de aprendizado profundo. Ainda assim, eles são úteis em algumas configurações práticas, especialmente no caso linear.

Além disso, lembre-se de que, devido ao teorema do almoço gratuito, nenhum método de aprendizado de máquina pode ser superior a qualquer outro em todos os problemas. Embora alguns métodos funcionem melhor em geral, você sempre encontrará conjuntos de dados em que um método não tão comum obterá melhores resultados.

albarji
fonte