Redes neurais vs máquinas de vetores de suporte: a segunda é definitivamente superior?

52

Muitos autores de artigos que li afirmam que os SVMs são uma técnica superior para enfrentar seu problema de regressão / classificação, cientes de que não puderam obter resultados semelhantes por meio de NNs. Frequentemente, a comparação afirma que

SVMs, em vez de NNs,

  • Tenha uma forte teoria fundadora
  • Alcance o melhor global devido à programação quadrática
  • Não há problema em escolher um número adequado de parâmetros
  • São menos propensas a sobreajuste
  • Precisa de menos memória para armazenar o modelo preditivo
  • Obtenha resultados mais legíveis e uma interpretação geométrica

É seriamente um pensamento amplamente aceito? Não cite o Teorema do Almoço Não Gratuito ou declarações semelhantes, minha pergunta é sobre o uso prático dessas técnicas.

Por outro lado, que tipo de problema abstrato você definitivamente enfrentaria com o NN?

stackovergio
fonte
4
Eu acho que a pergunta pode ser um pouco ampla. Mas, na prática, as NNs parecem ser muito mais ajustáveis ​​com a escolha da estrutura da NN, enquanto as SVMs têm menos parâmetros. Há duas perguntas: se um NN fosse configurado de maneira ideal para resolver um problema, como ele se sairia com o SVM? E nas mãos do profissional médio, como o SVM se compara ao NN?
Patrick Caldon
2
@PatrickCaldon Entendo seu ponto de vista, mas mais parâmetros para lidar nem sempre significam uma ferramenta melhor, se você não souber configurá-los de maneira adequada. Mesmo se possível, um longo estudo pode ser necessário; ou, você pode não precisar tão ampla tunability para o propósito da sua applciation
stackovergio
11
Esse é meu argumento. Qual pergunta como a ferramenta funciona em circunstâncias ideais em problemas específicos? ou como a ferramenta funciona para a maioria das pessoas na maioria das vezes? Eu acho que o maior componente aqui é a pessoa btw. Por causa disso, acho que os fatores relevantes são frequentemente: Quão difícil é aprender cada ferramenta? Existem especialistas que sabem como usá-lo? etc. Isso pode explan um monte de "eu tenho um bom desempenho fora de X"
Patrick Caldon
11
Pelo que sei, o ANN de feedforward de múltiplas camadas é aproximador universal, mais ou menos, independentemente da função de ativação. Não estou ciente de um resultado semelhante para o SVM, que depende muito do meu conhecimento sobre a função do kernel usada.
Momo
2
No uso prático, acho as NNs um pouco mais práticas devido ao tempo de treinamento. SVMs não lineares simplesmente não conseguem lidar muito bem com N grande. Ambos os algoritmos podem se ajustar demais e precisam de forte regularização.
Shea Parkes

Respostas:

43

É uma questão de trade-offs. SVMs estão no agora, NNs costumavam ser no . Você encontrará um número crescente de artigos que reivindicam florestas aleatórias, modelos gráficos probabilísticos ou métodos bayesianos não paramétricos . Alguém deve publicar um modelo de previsão nos Anais da Pesquisa Improvável sobre quais modelos serão considerados modernos.

Dito isto, para muitos problemas supervisionados notoriamente difíceis, os modelos únicos com melhor desempenho são algum tipo de NN, algum tipo de SVMs ou um método de descida de gradiente estocástico específico do problema implementado usando métodos de processamento de sinal.


Prós da NN:

  • Eles são extremamente flexíveis nos tipos de dados que podem suportar. As NNs fazem um trabalho decente ao aprender os recursos importantes de praticamente qualquer estrutura de dados, sem precisar derivar recursos manualmente.
  • A NN ainda se beneficia da engenharia de recursos, por exemplo, você deve ter um recurso de área se tiver comprimento e largura. O modelo terá melhor desempenho para o mesmo esforço computacional.

  • A maior parte do aprendizado de máquina supervisionado exige que você tenha seus dados estruturados em uma matriz de observações por recursos, com os rótulos como um vetor de observações de comprimento. Esta restrição não é necessária com o NN. Há um trabalho fantástico com SVM estruturado, mas é improvável que seja tão flexível quanto as NNs.


Prós da SVM:

  • Menos hiperparâmetros. Geralmente, os SVMs exigem menos pesquisa na grade para obter um modelo razoavelmente preciso. O SVM com um kernel RBF geralmente funciona muito bem.

  • Ótima global garantida.


Contras de NN e SVM:

  • Para a maioria dos propósitos, ambas são caixas pretas. Há alguma pesquisa sobre a interpretação de SVMs, mas duvido que seja tão intuitivo quanto GLMs. Este é um problema sério em alguns domínios problemáticos.
  • Se você deseja aceitar uma caixa preta, geralmente pode obter um pouco mais de precisão ensacando / empilhando / aprimorando muitos modelos com diferentes trade-offs.

    • As florestas aleatórias são atraentes porque podem produzir previsões prontas para serem entregues (previsões prontas para fora da bolsa) sem nenhum esforço extra, são muito interpretáveis, possuem uma boa compensação de variação de viés (ótima para modelos de ensacamento) e são relativamente robustos ao viés de seleção. Estupidamente simples de escrever uma implementação paralela de.

    • Os modelos gráficos probabilísticos são atraentes porque podem incorporar conhecimento específico de domínio diretamente no modelo e são interpretáveis ​​nesse sentido.

    • Métodos bayesianos não paramétricos (ou realmente extremamente paramétricos) são atraentes porque produzem intervalos de confiança diretamente. Eles desempenham muito bem em amostras pequenas e muito bem em amostras grandes. Estupidamente simples de escrever uma implementação de álgebra linear de.

Jessica Mick
fonte
41
Com o recente aumento da aprendizagem profunda, as NNs podem ser consideradas "mais importantes" do que as SVMs, eu diria.
bayerj
30

A resposta para sua pergunta está na minha experiência "não", os SVMs não são definitivamente superiores e o que funciona melhor depende da natureza do conjunto de dados em questão e da habilidade relativa do operador em cada conjunto de ferramentas. Em geral, os SVMs são bons porque o algoritmo de treinamento é eficiente e possui um parâmetro de regularização, o que obriga a pensar em regularização e ajuste excessivo. No entanto, existem conjuntos de dados em que os MLPs oferecem desempenho muito melhor que os SVMs (pois eles podem decidir sua própria representação interna, em vez de tê-la pré-especificada pela função do kernel). Uma boa implementação de MLPs (por exemplo, NETLAB) e regularização ou parada antecipada ou seleção de arquitetura (ou melhor ainda, os três) geralmente podem fornecer resultados muito bons e podem ser reproduzíveis (pelo menos em termos de desempenho).

A seleção de modelo é o principal problema dos SVMs. A escolha do kernel e a otimização dos parâmetros de kernel e regularização podem levar a um ajuste excessivo severo se você otimizar o critério de seleção de modelo. Embora a teoria que sustenta o SVM seja um conforto, a maioria se aplica apenas a um kernel fixo, portanto, assim que você tenta otimizar os parâmetros do kernel, ele não se aplica mais (por exemplo, o problema de otimização a ser resolvido no ajuste do kernel) geralmente não é convexa e pode ter mínimos locais).

Dikran Marsupial
fonte
7
Concordo plenamente com isto. Atualmente, estou treinando SVMs e ANNs em dados da interface cérebro-computador e existem alguns conjuntos de dados em que os SVMs são melhores e alguns em que as RNAs são melhores. O interessante é que, quando calculo a média do desempenho de todos os conjuntos de dados que estou usando, os SVMs e ANNs atingem exatamente o mesmo desempenho. Claro, isso não é uma prova. É apenas uma anedota. :)
alfa
27

Vou apenas tentar explicar minha opinião que parecia ser compartilhada pela maioria dos meus amigos. Tenho as seguintes preocupações sobre NN que não são sobre SVM:

  1. Em um NN clássico, a quantidade de parâmetros é enormemente alta. Digamos que você tenha os vetores do comprimento 100 que deseja classificar em duas classes. Uma camada oculta do mesmo tamanho que uma camada de entrada leva a mais de 100000 parâmetros livres. Imagine o quão mal você pode se ajustar demais (como é fácil cair ao mínimo local em um espaço assim) e quantos pontos de treinamento serão necessários para evitar isso (e quanto tempo você precisará treinar).
  2. Normalmente, você precisa ser um especialista real para escolher a topologia rapidamente. Isso significa que, se você deseja obter bons resultados, deve realizar muitas experiências. É por isso que é mais fácil usar o SVM e dizer que você não conseguiu obter resultados semelhantes com o NN.
  3. Normalmente, os resultados de NN não são reproduzíveis. Mesmo se você executar o treinamento NN duas vezes, provavelmente obterá resultados diferentes devido à aleatoriedade de um algoritmo de aprendizado.
  4. Normalmente você não tem nenhuma interpretação dos resultados. Essa é uma pequena preocupação, mas de qualquer maneira.

Isso não significa que você não deve usar o NN, apenas deve usá-lo com cuidado. Por exemplo, o NN Convolucional pode ser extremamente bom para o processamento de imagens, enquanto outros Deep NN também se mostraram bons para outros problemas.

Espero que ajude.

Dmitry Laptev
fonte
2
Para tornar os resultados da RNA reprodutíveis, propague a função aleatória.
Franck Dernoncourt
@Franck Isso não é reprodutibilidade real.
sanidade
17

Estou usando redes neurais para a maioria dos problemas. O ponto é que, na maioria dos casos, é mais sobre a experiência do usuário do que sobre o modelo. Aqui estão algumas razões pelas quais eu gosto de NNs.

  1. Eles são flexíveis. Eu posso jogar qualquer perda que eu quiser: perda de dobradiça, quadrado, entropia cruzada, o que você quiser. Desde que seja diferenciável, posso até projetar uma perda que atenda exatamente às minhas necessidades.
  2. Eles podem ser tratados probabilisticamente: redes neurais bayesianas, Bayes variacionais, MLE / MAP, está tudo lá. (Mas, em alguns casos, mais difícil.)
  3. Eles são rápidos. A maioria dos MLPs será composta de duas multiplicações de matriz e um componente aplicado de não-linearidade no sentido intermediário. Bata isso com um SVM.

Analisarei seus outros pontos passo a passo.

Tenha uma forte teoria fundadora

Eu diria que os NNs são igualmente fortes nesse caso: desde que você os treine em uma estrutura probabilística. Isso possibilita o uso de priores e um tratamento bayesiano (por exemplo, com técnicas variacionais ou aproximações).

Alcance o melhor global devido à programação quadrática

Para um conjunto de hiperparâmetros. No entanto, a busca por bons hps não é convexa e você não saberá se também encontrou o ideal global.

Não há problema em escolher um número adequado de parâmetros

Com os SVMs, você também deve selecionar hiper parâmetros.

Precisa de menos memória para armazenar o modelo preditivo

Você precisa armazenar os vetores de suporte. Em geral, os SVMs não serão mais baratos para armazenar MLPs, dependendo do caso.

Obtenha resultados mais legíveis e uma interpretação geométrica

A camada superior de um MLP é uma regressão logística no caso de classificação. Assim, há uma interpretação geométrica (separando o hiperplano) e uma interpretação probabilística também.

bayerj
fonte
Por que preciso armazenar vetores de suporte? Não é suficiente armazenar o hiperplano / maring do SVM?
Julian
Isso ocorre porque o hiperplano é representado através de vetores de suporte. Para calcular a distância de um novo ponto a partir dele, você repetirá esses pontos.
bayerj
0

De certa forma, essas duas grandes categorias de técnicas de aprendizado de máquina estão relacionadas. Embora não seja perfeito, dois artigos que achei úteis para mostrar as semelhanças nessas técnicas estão abaixo

Ronan Collobert e Samy Bengio. 2004. Links entre perceptrons, MLPs e SVMs. Em Anais da Vigésima Primeira Conferência Internacional sobre Aprendizado de Máquina (ICML '04). ACM, Nova Iorque, NY, EUA, 23-. DOI: https://doi.org/10.1145/1015330.1015415

e

Andras, Peter. (2002) A equivalência entre máquinas de vetores de suporte e redes neurais de regularização. Letras de processamento neural. 15. 97-104. 10.1023 / A: 1015292818897.

Paulo
fonte