Quais são as vantagens das redes neurais artificiais sobre as máquinas de vetores de suporte? [fechadas]

381

ANN (Redes Neurais Artificiais) e SVM (Máquinas de Vetor de Suporte) são duas estratégias populares para aprendizado e classificação supervisionados de máquinas. Muitas vezes, não é claro qual método é melhor para um projeto específico e tenho certeza de que a resposta é sempre "depende". Freqüentemente, uma combinação de ambos e a classificação bayesiana é usada.

Essas perguntas no Stackoverflow já foram feitas sobre ANN vs SVM:

Classificação de RNA e SVM

qual a diferença entre RNA, SVM e KNN na minha pergunta de classificação

Suporte Vector Machine ou Rede Neural Artificial para processamento de texto?

Nesta pergunta, eu gostaria de saber especificamente quais aspectos de uma RNA (especificamente, um Multilayer Perceptron) podem tornar desejável o uso em um SVM? A razão pela qual pergunto é porque é fácil responder à pergunta oposta : Máquinas de vetores de suporte geralmente são superiores às RNAs porque evitam duas grandes fraquezas das RNAs:

(1) As RNAs frequentemente convergem para mínimos locais em vez de mínimos globais, o que significa que eles estão "perdendo a visão geral" às vezes (ou perdendo a floresta para as árvores)

(2) As RNAs geralmente se ajustam demais se o treinamento continuar muito longo, o que significa que, para qualquer padrão, uma RNA pode começar a considerar o ruído como parte do padrão.

Os SVMs não sofrem desses dois problemas. No entanto, não é prontamente aparente que os SVMs sejam um substituto total para as RNAs. Então, quais vantagens específicas uma RNA possui sobre um SVM que pode torná-lo aplicável a determinadas situações? Eu listei vantagens específicas de um SVM sobre uma RNA, agora eu gostaria de ver uma lista de vantagens da RNA (se houver).

Channel72
fonte
61
Infelizmente, isso provavelmente será fechado ou movido em breve, mas eu absolutamente amo a pergunta. Eu gostaria de nada melhor do que ver uma série de respostas bem pensadas para essa.
Duffymo
10
Imagino que a maioria das respostas a essa pergunta seja especulativa ou baseada em evidências, porque há muito poucas garantias teóricas sobre o poder dessas máquinas. Por exemplo (se bem me lembro), não se sabe se uma rede neural de feed-forward de camada n é mais poderosa que uma rede de duas camadas. Então, como podemos dizer que um é melhor que o outro em princípio se nem mesmo entendemos as relações entre pequenas variações do mesmo modelo?
JeremyKun
13
Está fechado por não ser muito construtivo ... Lol!
Erogol 01/05
65
Eu amo que o StackOverflow tente manter a qualidade das perguntas e respostas altas. Odeio que o StackOverflow imponha isso com um machado em vez de um bisturi. Há uma diferença entre perguntar "como faço para fazer coisas em HTML?" e uma pergunta específica do domínio que seria difícil encontrar uma resposta para outro lugar. Há uma razão para isso ter 140 votos positivos - mas é considerado "não construtivo". Perguntas como essa são o epítome do construtivo. Certamente muito mais do que muitos dos que eu vejo todos os dias que se encaixam perfeitamente no formato de perguntas e respostas, apesar de serem inúteis para quase todos, exceto os que pedem.
Perseguição Ries
20
Isto é obviamente construtivo. Não consigo entender por que estaria fechado. Ele está pedindo situações específicas em que o uso de um algoritmo tem vantagens sobre o uso de um algoritmo alternativo. Isso não é uma coisa razoável a se perguntar?
Rab

Respostas:

137

A julgar pelos exemplos que você fornece, suponho que, por RNAs, você queira dizer redes feed-forward multicamadas (redes FF para abreviar), como perceptrons multicamadas, porque estão em concorrência direta com SVMs.

Um benefício específico que esses modelos têm sobre os SVMs é que seu tamanho é fixo: eles são modelos paramétricos , enquanto os SVMs não são paramétricos. Ou seja, em uma RNA você tem um monte de camadas ocultas com tamanhos h 1 a h ndependendo do número de recursos, além de parâmetros de viés, e aqueles que compõem seu modelo. Por outro lado, um SVM (pelo menos um kernelizado) consiste em um conjunto de vetores de suporte, selecionados no conjunto de treinamento, com um peso para cada um. No pior dos casos, o número de vetores de suporte é exatamente o número de amostras de treinamento (embora isso ocorra principalmente com pequenos conjuntos de treinamento ou em casos degenerados) e, em geral, o tamanho do modelo é escalonado linearmente. No processamento de linguagem natural, os classificadores SVM com dezenas de milhares de vetores de suporte, cada um com centenas de milhares de recursos, não são inéditos.

Além disso, o treinamento on-line de redes FF é muito simples comparado ao ajuste SVM on-line, e a previsão pode ser um pouco mais rápida.

EDIT : tudo acima se refere ao caso geral de SVMs kernelizados. O SVM linear é um caso especial, pois eles são paramétricos e permitem o aprendizado on-line com algoritmos simples, como a descida do gradiente estocástico.

Fred Foo
fonte
12
Outro motivo pode ser encontrado neste documento: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Em resumo, o autor afirma que "arquiteturas profundas" podem representar comportamentos / funções "inteligentes" etc., mais eficientemente do que "arquiteturas rasas", como SVMs.
Alfa
11
Como um aparte, o aprendizado profundo perde as "vantagens" dadas aqui para os MLPs (tamanho fixo, treinamento mais simples). Não tenho certeza de que essas vantagens valham a pena.
Muhammad Alkarouri
6
@ MuhammadAlkarouri: o aprendizado profundo é um conjunto bastante amplo de técnicas, mas as que eu conheço mantêm o benefício dos modelos serem paramétricos (tamanho fixo).
Fred Foo
Dois comentários: o ponto de treinamento on-line é verdadeiro, mas há uma variante de classificadores do tipo SVM projetados especificamente para o aprendizado on-line, denominada MIRA (um tipo de classificador passivo-agressivo) para o qual as atualizações são triviais. Em segundo lugar, vale ressaltar que muitas redes neurais podem ser formuladas como SVMs através do truque do kernel.
Ben Allison
11
O @FredFoo também ANN pode ser preso em mínimos locais, onde as máquinas de vetores de suporte não são propensas a esse problema.
tourist
62

Uma vantagem óbvia das redes neurais artificiais sobre as máquinas de vetores de suporte é que as redes neurais artificiais podem ter qualquer número de saídas, enquanto as máquinas de vetores de suporte têm apenas uma. A maneira mais direta de criar um classificador n-ário com máquinas de vetores de suporte é criar n máquinas de vetores de suporte e treinar cada uma delas uma a uma. Por outro lado, um classificador n-ário com redes neurais pode ser treinado de uma só vez. Além disso, a rede neural fará mais sentido porque é um todo, enquanto as máquinas de vetores de suporte são sistemas isolados. Isso é especialmente útil se as saídas estiverem inter-relacionadas.

Por exemplo, se o objetivo era classificar dígitos escritos à mão, dez máquinas de vetores de suporte o fariam. Cada máquina de vetores de suporte reconheceria exatamente um dígito e falharia em reconhecer todos os outros. Como cada dígito manuscrito não pode conter mais informações do que apenas sua classe, não faz sentido tentar resolver isso com uma rede neural artificial.

No entanto, suponha que o objetivo fosse modelar o equilíbrio hormonal de uma pessoa (para vários hormônios) em função de fatores fisiológicos facilmente mensuráveis, como tempo desde a última refeição, freqüência cardíaca, etc. a regressão de rede faz mais sentido do que a regressão à máquina de vetores.

Alan
fonte
18
Na verdade, existem formulações verdadeiras em várias classes da máquina de vetores de suporte (consulte os artigos de Crammer & Singer). Eu acredito que o LibSVM contém uma implementação deles.
Fred Foo
3
No entanto, treinar um SVM multiclasse não é tão fácil e o desempenho parece ser melhor na abordagem OVA do que na AVA.
crodriguezo
3
"não faz sentido tentar resolver isso com uma rede neural artificial" Você pode usar uma rede neural para resolver a classificação de dígitos manuscritos. Fiz isso como uma tarefa de HW para uma classe. A camada de saída contém probabilidades de todos os dígitos. A classe com maior probabilidade é usada como hipótese. Eu tinha uma taxa de precisão de 94%.
user3266824
Você quer dizer criar n número de 1 vs N-1 classificadores SVM vs usar NN para fazer n saídas. SVM parece ser mais lento dessa maneira?
mskw
@ user3266824 Bem, sim, essa citação não envelheceu bem.
runDOSrun
46

Uma coisa a notar é que os dois são realmente muito relacionados. Os SVMs lineares são equivalentes aos NNs de camada única (ou seja, perceptrons), e os NNs de várias camadas podem ser expressos em termos de SVMs. Veja aqui alguns detalhes.

Bryce
fonte
18

Se você deseja usar um SVM do kernel, deve adivinhar o kernel. No entanto, as RNAs são aproximadores universais, com apenas suposições a serem feitas: largura (precisão da aproximação) e altura (eficiência da aproximação). Se você projetou o problema de otimização corretamente, não ajustou demais (consulte a bibliografia para ajustar demais). Também depende dos exemplos de treinamento, se eles digitalizarem o espaço de pesquisa de maneira correta e uniforme. A descoberta de largura e profundidade é o assunto da programação inteira.

Suponha que você tenha funções limitadas f (.) E aproximadores universais limitados em I = [0,1] com faixa novamente I = [0,1] por exemplo, que são parametrizados por uma sequência real de suporte compacto U (., A) com a propriedade que existe uma sequência de sequências com

lim sup { |f(x) - U(x,a(k) ) | : x } =0

e você desenha exemplos e testes (x,y)com uma distribuição D on IxI.

Para um suporte prescrito, o que você faz é encontrar o melhor para que

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Deixe isto a=aaque é uma variável aleatória !, o excesso de ajuste é então

média usando D and D^{N} of ( y - U(x,aa) )^{2}

Deixe-me explicar por que, se você selecionar de aaforma que o erro seja minimizado, para um conjunto raro de valores você terá um ajuste perfeito. No entanto, como são raras, a média nunca é 0. Você deseja minimizar o segundo, embora tenha uma aproximação discreta de D. E lembre-se de que o comprimento do suporte é livre.

Vasileios Anagnostopoulos
fonte
14

Uma resposta está faltando aqui: o perceptron de várias camadas é capaz de encontrar relação entre os recursos. Por exemplo, é necessário na visão computacional quando uma imagem bruta é fornecida ao algoritmo de aprendizado e agora os recursos sofisticados são calculados. Essencialmente, os níveis intermediários podem calcular novos recursos desconhecidos.

dolbi
fonte
12

Também devemos considerar que o sistema SVM pode ser aplicado diretamente a espaços não métricos, como o conjunto de gráficos ou seqüências de caracteres rotulados. De fato, a função interna do kernel pode ser generalizada adequadamente para praticamente qualquer tipo de entrada, desde que o requisito de definição positiva do kernel seja atendido. Por outro lado, para poder usar uma RNA em um conjunto de gráficos rotulados, procedimentos explícitos de incorporação devem ser considerados.

strozzino
fonte
6
Na minha opinião, construir um núcleo sensível e construir uma incorporação métrica sensível são igualmente problemáticos. Portanto, este é apenas um comentário de que pode haver kernels mais variados do que métricas, mas eu realmente não acredito nisso. ohli.de/download/papers/Deza2009.pdf
JeremyKun