Máquina de vetor de suporte - Support-vector machine

No aprendizado de máquina , as máquinas de vetores de suporte ( SVMs , também redes de vetores de suporte ) são modelos de aprendizado supervisionado com algoritmos de aprendizado associados que analisam dados para classificação e análise de regressão . Desenvolvido na AT&T Bell Laboratories por Vladimir Vapnik com colegas (Boser et al., 1992, Guyon et al., 1993, Vapnik et al., 1997) SVMs são um dos métodos de previsão mais robustos, sendo baseados em frameworks de aprendizagem estatística ou VC teoria proposta por Vapnik (1982, 1995) e Chervonenkis (1974). Dado um conjunto de exemplos de treinamento, cada um marcado como pertencente a uma de duas categorias, um algoritmo de treinamento SVM constrói um modelo que atribui novos exemplos a uma categoria ou outra, tornando-o um classificador linear binário não probabilístico (embora métodos como Platt dimensionamento existe para usar SVM em uma configuração de classificação probabilística). O SVM mapeia exemplos de treinamento para pontos no espaço de modo a maximizar a largura da lacuna entre as duas categorias. Novos exemplos são então mapeados nesse mesmo espaço e considerados pertencentes a uma categoria com base em qual lado da lacuna eles se enquadram.

Além de realizar a classificação linear , os SVMs podem realizar com eficiência uma classificação não linear usando o que é chamado de truque do kernel , mapeando implicitamente suas entradas em espaços de recursos de alta dimensão.

Quando os dados não estão marcados, o aprendizado supervisionado não é possível e uma abordagem de aprendizado não supervisionado é necessária, que tenta encontrar o agrupamento natural dos dados para grupos e, em seguida, mapeia novos dados para esses grupos formados. O algoritmo de agrupamento de vetores de suporte , criado por Hava Siegelmann e Vladimir Vapnik , aplica a estatística de vetores de suporte, desenvolvida no algoritmo de máquinas de vetores de suporte, para categorizar dados não rotulados, e é um dos algoritmos de agrupamento mais amplamente utilizados em aplicações industriais.

Motivação

H 1 não separa as classes. H 2 sim, mas apenas com uma pequena margem. H 3 os separa com a margem máxima.

Classificar dados é uma tarefa comum no aprendizado de máquina . Suponha que alguns pontos de dados dados pertençam a uma de duas classes, e o objetivo é decidir em qual classe um novo ponto de dados estará. No caso de máquinas de vetores de suporte, um ponto de dados é visto como um vetor dimensional (um lista de números), e queremos saber se podemos separar esses pontos com um hiperplano dimensional . Isso é chamado de classificador linear . Existem muitos hiperplanos que podem classificar os dados. Uma escolha razoável como o melhor hiperplano é aquela que representa a maior separação, ou margem , entre as duas classes. Portanto, escolhemos o hiperplano de forma que a distância dele até o ponto de dados mais próximo em cada lado seja maximizada. Se existir um tal hiperplana, que é conhecido como o hiperplana máximo-margem e o classificador linear que define é conhecido como um maximum- classificador margem ; ou equivalentemente, o perceptron de estabilidade ótima .

Definição

Mais formalmente, uma máquina de vetores de suporte constrói um hiperplano ou conjunto de hiperplanos em um espaço de dimensão alta ou infinita, que pode ser usado para classificação , regressão ou outras tarefas como detecção de outliers. Intuitivamente, uma boa separação é alcançada pelo hiperplano que possui a maior distância ao ponto de dados de treinamento mais próximo de qualquer classe (a chamada margem funcional), pois em geral quanto maior a margem, menor o erro de generalização do classificador.

Máquina de kernel

Enquanto o problema original pode ser colocado em um espaço de dimensão finita, freqüentemente acontece que os conjuntos a discriminar não são linearmente separáveis naquele espaço. Por esta razão, foi proposto que o espaço de dimensão finita original fosse mapeado em um espaço de dimensão muito superior, provavelmente tornando a separação mais fácil naquele espaço. Para manter a carga computacional razoável, os mapeamentos usados ​​pelos esquemas SVM são projetados para garantir que produtos escalares de pares de vetores de dados de entrada possam ser calculados facilmente em termos das variáveis ​​no espaço original, definindo-as em termos de uma função kernel selecionada para se adequar ao problema. Os hiperplanos no espaço de dimensão superior são definidos como o conjunto de pontos cujo produto escalar com um vetor naquele espaço é constante, onde tal conjunto de vetores é um conjunto ortogonal (e, portanto, mínimo) de vetores que define um hiperplano. Os vetores que definem os hiperplanos podem ser escolhidos como combinações lineares com parâmetros de imagens de vetores de características que ocorrem na base de dados. Com esta escolha de um hiperplano, os pontos no espaço de recursos que são mapeados no hiperplano são definidos pela relação. Observe que se torna- se pequeno conforme cresce mais longe , cada termo na soma mede o grau de proximidade do ponto de teste para o ponto de base de dados correspondente . Desta forma, a soma dos kernels acima pode ser usada para medir a proximidade relativa de cada ponto de teste aos pontos de dados originados em um ou outro dos conjuntos a serem discriminados. Observe o fato de que o conjunto de pontos mapeados em qualquer hiperplano pode ser bastante complicado como resultado, permitindo uma discriminação muito mais complexa entre conjuntos que não são convexos no espaço original.

Formulários

Os SVMs podem ser usados ​​para resolver vários problemas do mundo real:

  • Os SVMs são úteis na categorização de texto e hipertexto , pois sua aplicação pode reduzir significativamente a necessidade de instâncias de treinamento rotuladas em configurações indutivas e transdutivas padrão. Alguns métodos de análise semântica superficial são baseados em máquinas de vetores de suporte.
  • A classificação de imagens também pode ser realizada usando SVMs. Os resultados experimentais mostram que os SVMs alcançam uma precisão de pesquisa significativamente maior do que os esquemas de refinamento de consulta tradicionais após apenas três a quatro rodadas de feedback de relevância. Isso também é verdadeiro para sistemas de segmentação de imagem , incluindo aqueles que usam uma versão modificada do SVM que usa a abordagem privilegiada sugerida por Vapnik.
  • Classificação de dados de satélite como dados SAR usando SVM supervisionado.
  • Os caracteres escritos à mão podem ser reconhecidos usando SVM.
  • O algoritmo SVM tem sido amplamente aplicado nas ciências biológicas e outras. Eles têm sido usados ​​para classificar proteínas com até 90% dos compostos classificados corretamente. Testes de permutação baseados em pesos de SVM foram sugeridos como um mecanismo para interpretação de modelos de SVM. Pesos de máquina de vetor de suporte também foram usados ​​para interpretar modelos SVM no passado. A interpretação posthoc de modelos de máquinas de vetores de suporte para identificar recursos usados ​​pelo modelo para fazer previsões é uma área de pesquisa relativamente nova com significado especial nas ciências biológicas.

História

O algoritmo SVM original foi inventado por Vladimir N. Vapnik e Alexey Ya. Chervonenkis em 1963. Em 1992, Bernhard Boser, Isabelle Guyon e Vladimir Vapnik sugeriram uma maneira de criar classificadores não lineares aplicando o truque do kernel a hiperplanos de margem máxima. A encarnação da "margem suave", como são os pacotes de software comumente usados, foi proposta por Corinna Cortes e Vapnik em 1993 e publicada em 1995.

Linear SVM

Hiperplano de margem máxima e margens para um SVM treinado com amostras de duas classes. As amostras na margem são chamadas de vetores de suporte.

Recebemos um conjunto de dados de treinamento de pontos do formulário

onde são 1 ou -1, cada um indicando a classe à qual o ponto pertence. Cada um é um vetor real dimensional . Queremos encontrar o "hiperplano de margem máxima" que divide o grupo de pontos para os quais do grupo de pontos para os quais , que é definido de forma que a distância entre o hiperplano e o ponto mais próximo de cada grupo seja maximizada.

Qualquer hiperplano pode ser escrito como o conjunto de pontos que satisfazem

onde está o (não necessariamente normalizado) vetor normal para o hiperplano. Isso é muito parecido com a forma normal de Hesse , exceto que não é necessariamente um vetor unitário. O parâmetro determina o deslocamento do hiperplano da origem ao longo do vetor normal .

Margem dura

Se os dados de treinamento forem linearmente separáveis , podemos selecionar dois hiperplanos paralelos que separam as duas classes de dados, de modo que a distância entre eles seja a maior possível. A região delimitada por esses dois hiperplanos é chamada de "margem", e o hiperplano de margem máxima é o hiperplano que fica a meio caminho entre eles. Com um conjunto de dados normalizado ou padronizado, esses hiperplanos podem ser descritos pelas equações

(qualquer coisa dentro ou acima desse limite pertence a uma classe, com rótulo 1)

e

(qualquer coisa dentro ou abaixo desse limite é da outra classe, com rótulo -1).

Geometricamente, a distância entre esses dois hiperplanos é , portanto, para maximizar a distância entre os planos, queremos minimizar . A distância é calculada usando a distância de um ponto a uma equação plana . Também temos que evitar que os pontos de dados caiam na margem, adicionamos a seguinte restrição: para cada um

, se ,

ou

, se .

Essas restrições determinam que cada ponto de dados deve estar no lado correto da margem.

Isso pode ser reescrito como

Podemos montar isso para resolver o problema de otimização:

"Minimize o assunto para para ."

Os e que resolvem este problema determinam nosso classificador, onde está a função de sinal .

Uma consequência importante dessa descrição geométrica é que o hiperplano de margem máxima é completamente determinado por aqueles que estão mais próximos a ele. Eles são chamados de vetores de suporte .

Margem suave

Para estender o SVM a casos em que os dados não são linearmente separáveis, a função de perda de dobradiça é útil

Observe que é o i -ésimo destino (ou seja, neste caso, 1 ou -1) e é a i -ésima saída.

Esta função é zero se a restrição em (1) for satisfeita, ou seja, se estiver do lado correto da margem. Para dados no lado errado da margem, o valor da função é proporcional à distância da margem.

O objetivo da otimização, então, é minimizar

onde o parâmetro determina o trade-off entre aumentar o tamanho da margem e garantir que ela esteja do lado correto da margem. Assim, para valores suficientemente grandes de , ele se comportará de forma semelhante ao SVM de margem dura, se os dados de entrada forem classificáveis ​​linearmente, mas ainda aprenderá se uma regra de classificação é viável ou não. (Este parâmetro também é chamado de C, por exemplo, em LIBSVM .)

Classificação não linear

Máquina de kernel

O algoritmo de hiperplano de margem máxima original proposto por Vapnik em 1963 construiu um classificador linear . No entanto, em 1992, Bernhard Boser , Isabelle Guyon e Vladimir Vapnik sugeriram uma maneira de criar classificadores não lineares aplicando o truque do kernel (originalmente proposto por Aizerman et al.) A hiperplanos de margem máxima. O algoritmo resultante é formalmente semelhante, exceto que cada produto escalar é substituído por uma função de kernel não linear . Isso permite que o algoritmo ajuste o hiperplano de margem máxima em um espaço de feições transformado . A transformação pode ser não linear e o espaço transformado altamente dimensional; embora o classificador seja um hiperplano no espaço de recurso transformado, ele pode ser não linear no espaço de entrada original.

É digno de nota que trabalhar em um espaço de recursos de dimensão superior aumenta o erro de generalização das máquinas de vetores de suporte, embora, com amostras suficientes, o algoritmo ainda tenha um bom desempenho.

Alguns kernels comuns incluem:

  • Polinomial (homogénea) : .
  • Polinomial (homognea): .
  • Função de base radial gaussiana : para . Às vezes parametrizado usando .
  • Tangente hiperbólica : para alguns (não todos) e .

O kernel está relacionado à transformação pela equação . O valor w também está no espaço transformado, com . Produtos de ponto com w para classificação podem ser novamente calculados pelo truque do kernel, isto é .

Calculando o classificador SVM

Calcular o classificador SVM (margem suave) equivale a minimizar uma expressão do formulário

Nós nos concentramos no classificador de margem suave, uma vez que, conforme observado acima, a escolha de um valor suficientemente pequeno para produz o classificador de margem rígida para dados de entrada classificáveis ​​linearmente. A abordagem clássica, que envolve a redução de (2) a um problema de programação quadrática , é detalhada a seguir. Em seguida, abordagens mais recentes, como descida de sub-gradiente e descida por coordenadas, serão discutidas.

Primitivo

A minimização (2) pode ser reescrita como um problema de otimização restrito com uma função objetivo diferenciável da seguinte maneira.

Para cada um , apresentamos uma variável . Observe que é o menor número não negativo que satisfaz

Assim, podemos reescrever o problema de otimização da seguinte maneira

Isso é chamado de problema primário .

Dual

Ao resolver para o dual de Lagrange do problema acima, obtém-se o problema simplificado

Isso é chamado de problema duplo . Uma vez que o problema de maximização dupla é uma função quadrática do sujeito a restrições lineares, ele pode ser resolvido de forma eficiente por algoritmos de programação quadrática .

Aqui, as variáveis são definidas de modo que

.

Além disso, exatamente quando está no lado correto da margem e quando está no limite da margem. Segue-se que pode ser escrito como uma combinação linear dos vetores de suporte.

O deslocamento,, pode ser recuperado encontrando um no limite da margem e resolvendo

(Observe que desde então .)

Truque do kernel

Um exemplo de treinamento de SVM com kernel dado por φ (( a , b )) = ( a , b , a 2 + b 2 )

Suponha agora que gostaríamos de aprender uma regra de classificação não linear que corresponde a uma regra de classificação linear para os pontos de dados transformados. Além disso, recebemos uma função kernel que satisfaz .

Sabemos que o vetor de classificação no espaço transformado satisfaz

onde, são obtidos resolvendo o problema de otimização

Os coeficientes podem ser resolvidos usando a programação quadrática, como antes. Novamente, podemos encontrar algum índice tal que , de modo que fique no limite da margem no espaço transformado, e então resolver

Finalmente,

Métodos modernos

Algoritmos recentes para encontrar o classificador SVM incluem descida de sub-gradiente e descida de coordenada. Ambas as técnicas provaram oferecer vantagens significativas em relação à abordagem tradicional ao lidar com conjuntos de dados grandes e esparsos - os métodos de sub-gradiente são especialmente eficientes quando há muitos exemplos de treinamento e a descida coordenada quando a dimensão do espaço do recurso é alta.

Sub-gradiente descida

Algoritmos de descida de sub-gradiente para o SVM trabalham diretamente com a expressão

Observe que é uma função convexa de e . Como tal, os métodos tradicionais de gradiente descendente (ou SGD ) podem ser adaptados, onde em vez de dar um passo na direção do gradiente da função, um passo é dado na direção de um vetor selecionado do sub-gradiente da função . Essa abordagem tem a vantagem de que, para certas implementações, o número de iterações não é escalonado com o número de pontos de dados.

Descida coordenada

Algoritmos de descida de coordenadas para o SVM funcionam a partir do problema duplo

Para cada um , iterativamente, o coeficiente é ajustado na direção de . Em seguida, o vetor de coeficientes resultante é projetado no vetor de coeficientes mais próximo que satisfaça as restrições fornecidas. (Normalmente são usadas distâncias euclidianas.) O processo é então repetido até que um vetor de coeficientes quase ótimo seja obtido. O algoritmo resultante é extremamente rápido na prática, embora poucas garantias de desempenho tenham sido comprovadas.

Minimização de risco empírico

A máquina de vetor de suporte de margem suave descrita acima é um exemplo de um algoritmo de minimização de risco empírico (ERM) para a perda de dobradiça . Vistas dessa forma, as máquinas de vetores de suporte pertencem a uma classe natural de algoritmos para inferência estatística, e muitas de suas características exclusivas são devidas ao comportamento da perda de dobradiça. Essa perspectiva pode fornecer mais informações sobre como e por que os SVMs funcionam e nos permite analisar melhor suas propriedades estatísticas.

Minimização de risco

Na aprendizagem supervisionada, é dado um conjunto de exemplos de treinamento com rótulos e desejos de prever dados . Para fazer isso, forma-se uma hipótese , tal que é uma "boa" aproximação de . A "boa" aproximação é geralmente definida com a ajuda de uma função de perda , que caracteriza o quão ruim é como uma previsão de . Gostaríamos então de escolher uma hipótese que minimize o risco esperado :

Na maioria dos casos, não sabemos a distribuição conjunta de definitivo. Nestes casos, uma estratégia comum é escolher a hipótese que minimiza o risco empírico:

Sob certas suposições sobre a sequência de variáveis ​​aleatórias (por exemplo, que elas são geradas por um processo de Markov finito), se o conjunto de hipóteses sendo considerado for pequeno o suficiente, o minimizador do risco empírico se aproximará do minimizador do risco esperado à medida que cresce. Essa abordagem é chamada de minimização de risco empírico ou ERM.

Regularização e estabilidade

Para que o problema de minimização tenha uma solução bem definida, temos que colocar restrições no conjunto de hipóteses que está sendo considerado. Se for um espaço normalizado (como é o caso do SVM), uma técnica particularmente eficaz é considerar apenas as hipóteses para as quais . Isso é equivalente a impor uma penalidade de regularização e resolver o novo problema de otimização

Essa abordagem é chamada de regularização de Tikhonov .

De forma mais geral, pode haver alguma medida da complexidade da hipótese , de modo que hipóteses mais simples são preferidas.

SVM e a perda de dobradiça

Lembre-se de que o classificador SVM (margem suave) é escolhido para minimizar a seguinte expressão:

À luz da discussão acima, vemos que a técnica SVM é equivalente à minimização do risco empírico com a regularização de Tikhonov, onde, neste caso, a função de perda é a perda de dobradiça.

Dessa perspectiva, o SVM está intimamente relacionado a outros algoritmos de classificação fundamentais , como mínimos quadrados regularizados e regressão logística . A diferença entre os três reside na escolha da função de perda: regularizada mínimos quadrados equivale a minimização do risco empírico com a perda de quadrado , ; a regressão logística emprega a perda logarítmica ,

Funções alvo

A diferença entre a perda de dobradiça e essas outras funções de perda é mais bem definida em termos de funções de destino - a função que minimiza o risco esperado para um determinado par de variáveis ​​aleatórias .

Em particular, deixe denotar condicional ao evento que . Na configuração de classificação, temos:

O classificador ideal é, portanto:

Para a perda quadrática, a função de destino é a função de expectativa condicional ,; Para a perda logística, é a função logit ,. Embora ambas as funções de destino produzam o classificador correto, as , elas nos fornecem mais informações do que precisamos. Na verdade, eles nos fornecem informações suficientes para descrever completamente a distribuição de .

Por outro lado, pode-se verificar se a função alvo para a perda da dobradiça é exata . Assim, em um espaço de hipóteses suficientemente rico - ou de forma equivalente, para um kernel escolhido apropriadamente - o classificador SVM convergirá para a função mais simples (em termos de ) que classifica corretamente os dados. Isso estende a interpretação geométrica de SVM - para classificação linear, o risco empírico é minimizado por qualquer função cujas margens estejam entre os vetores de suporte, e o mais simples deles é o classificador de margem máxima.

Propriedades

Os SVMs pertencem a uma família de classificadores lineares generalizados e podem ser interpretados como uma extensão do perceptron . Eles também podem ser considerados um caso especial de regularização Tikhonov . Uma propriedade especial é que eles minimizam simultaneamente o erro de classificação empírica e maximizam a margem geométrica ; portanto, eles também são conhecidos como classificadores de margem máxima .

Uma comparação do SVM com outros classificadores foi feita por Meyer, Leisch e Hornik.

Seleção de parâmetros

A eficácia do SVM depende da seleção do kernel, dos parâmetros do kernel e do parâmetro de margem suave . Uma escolha comum é um kernel gaussiano, que possui um único parâmetro . A melhor combinação de e geralmente é selecionada por uma pesquisa em grade com sequências de crescimento exponencial de e , por exemplo ,; . Normalmente, cada combinação de opções de parâmetro é verificada usando validação cruzada e os parâmetros com melhor precisão de validação cruzada são escolhidos. Alternativamente, o trabalho recente em otimização Bayesiana pode ser usado para selecionar e , muitas vezes exigindo a avaliação de muito menos combinações de parâmetros do que a pesquisa de grade. O modelo final, que é usado para testar e classificar novos dados, é então treinado em todo o conjunto de treinamento usando os parâmetros selecionados.

Problemas

As desvantagens potenciais do SVM incluem os seguintes aspectos:

  • Requer rotulagem completa de dados de entrada
  • Probabilidades de associação de classe não calibradas —SVM deriva da teoria de Vapnik que evita estimar probabilidades em dados finitos
  • O SVM é diretamente aplicável apenas para tarefas de duas classes. Portanto, algoritmos que reduzem a tarefa multiclasse a vários problemas binários devem ser aplicados; consulte a seção SVM multiclasse .
  • Os parâmetros de um modelo resolvido são difíceis de interpretar.

Extensões

Clustering de vetores de suporte (SVC)

O SVC é um método semelhante que também se baseia nas funções do kernel, mas é apropriado para o aprendizado não supervisionado. É considerado um método fundamental na ciência de dados .

SVM multiclasse

O SVM multiclasse visa atribuir rótulos a instâncias usando máquinas de vetores de suporte, onde os rótulos são desenhados a partir de um conjunto finito de vários elementos.

A abordagem dominante para fazer isso é reduzir o problema de multiclasse único em vários problemas de classificação binária . Os métodos comuns para essa redução incluem:

  • Construir classificadores binários que distinguem entre um dos rótulos e o resto ( um contra todos ) ou entre cada par de classes ( um contra um ). A classificação de novas instâncias para o caso um contra todos é feita por uma estratégia de o vencedor leva tudo, em que o classificador com a função de maior resultado atribui a classe (é importante que as funções de saída sejam calibradas para produzir pontuações comparáveis ) Para a abordagem de um contra um, a classificação é feita por uma estratégia de votação de vitórias máximas, na qual cada classificador atribui a instância a uma das duas classes, então o voto para a classe atribuída é aumentado em um voto e, finalmente, o a classe com mais votos determina a classificação da instância.
  • SVM de gráfico acíclico direcionado (DAGSVM)
  • Códigos de saída para correção de erros

Crammer e Singer propuseram um método SVM multiclasse que converte o problema de classificação multiclasse em um único problema de otimização, ao invés de decompor em vários problemas binários de classificação. Veja também Lee, Lin e Wahba e Van den Burg e Groenen.

Máquinas transdutivas de vetor de suporte

As máquinas transdutivas de vetores de suporte estendem os SVMs, pois também podem tratar dados parcialmente rotulados na aprendizagem semissupervisionada , seguindo os princípios da transdução . Aqui, além do conjunto de treinamento , o aluno também recebe um conjunto

de exemplos de teste a serem classificados. Formalmente, uma máquina de vetor de suporte transdutiva é definida pelo seguinte problema de otimização primária:

Minimize (em )

sujeito a (para qualquer e qualquer )

e

As máquinas transdutivas de vetores de suporte foram introduzidas por Vladimir N. Vapnik em 1998.

SVM estruturado

SVMs foram generalizados para SVMs estruturados , onde o espaço do rótulo é estruturado e de tamanho possivelmente infinito.

Regressão

Regressão do vetor de suporte (predição) com diferentes limiares ε . À medida que ε aumenta, a previsão se torna menos sensível a erros.

Uma versão do SVM para regressão foi proposta em 1996 por Vladimir N. Vapnik , Harris Drucker, Christopher JC Burges, Linda Kaufman e Alexander J. Smola. Esse método é chamado de regressão de vetor de suporte (SVR). O modelo produzido pela classificação do vetor de suporte (conforme descrito acima) depende apenas de um subconjunto dos dados de treinamento, porque a função de custo para construir o modelo não se preocupa com os pontos de treinamento que estão além da margem. Analogamente, o modelo produzido pelo SVR depende apenas de um subconjunto dos dados de treinamento, porque a função de custo para construir o modelo ignora quaisquer dados de treinamento próximos à previsão do modelo. Outra versão de SVM conhecida como máquina de vetor de suporte de mínimos quadrados (LS-SVM) foi proposta por Suykens e Vandewalle.

Treinar o SVR original significa resolver

minimizar
sujeito a

onde é uma amostra de treinamento com o valor alvo . O produto interno mais a interceptação é a previsão para essa amostra e é um parâmetro livre que serve como um limite: todas as previsões devem estar dentro de uma faixa das previsões verdadeiras. As variáveis ​​de folga são geralmente adicionadas ao item acima para permitir erros e para permitir a aproximação caso o problema acima seja inviável.

SVM Bayesian

Em 2011 foi demonstrado por Polson e Scott que o SVM admite uma interpretação bayesiana por meio da técnica de aumento de dados . Nesta abordagem, o SVM é visto como um modelo gráfico (onde os parâmetros são conectados por meio de distribuições de probabilidade). Essa visão estendida permite a aplicação de técnicas bayesianas a SVMs, como modelagem de recursos flexíveis, ajuste automático de hiperparâmetros e quantificação de incerteza preditiva . Recentemente, uma versão escalável do Bayesian SVM foi desenvolvida por Florian Wenzel , permitindo a aplicação de Bayesian SVMs para big data . Florian Wenzel desenvolveu duas versões diferentes, um esquema de inferência variacional (VI) para a máquina de vetores de suporte ao kernel Bayesiano (SVM) e uma versão estocástica (SVI) para a SVM linear Bayesiana.

Implementação

Os parâmetros do hiperplano de margem máxima são derivados resolvendo a otimização. Existem vários algoritmos especializados para resolver rapidamente o problema de programação quadrática (QP) que surge de SVMs, principalmente contando com heurísticas para quebrar o problema em pedaços menores e mais gerenciáveis.

Outra abordagem é usar um método de ponto interior que usa iterações do tipo Newton para encontrar uma solução para as condições de Karush-Kuhn-Tucker dos problemas primários e duais. Em vez de resolver uma sequência de problemas fragmentados, essa abordagem resolve diretamente o problema por completo. Para evitar a solução de um sistema linear envolvendo a grande matriz do kernel, uma aproximação de classificação baixa para a matriz é freqüentemente usada no truque do kernel.

Outro método comum é o algoritmo de otimização sequencial mínima (SMO) de Platt , que divide o problema em subproblemas bidimensionais que são resolvidos analiticamente, eliminando a necessidade de um algoritmo de otimização numérica e armazenamento de matriz. Este algoritmo é conceitualmente simples, fácil de implementar, geralmente mais rápido e tem melhores propriedades de dimensionamento para problemas difíceis de SVM.

O caso especial de máquinas de vetores de suporte linear pode ser resolvido com mais eficiência pelo mesmo tipo de algoritmo usado para otimizar seu primo próximo, a regressão logística ; esta classe de algoritmos inclui descida de sub-gradiente (por exemplo, PEGASOS) e descida por coordenadas (por exemplo, LIBLINEAR). LIBLINEAR tem algumas propriedades atraentes de tempo de treinamento. Cada iteração de convergência leva um tempo linear no tempo gasto para ler os dados do trem, e as iterações também possuem uma propriedade de convergência Q-linear , tornando o algoritmo extremamente rápido.

Os SVMs gerais do kernel também podem ser resolvidos de forma mais eficiente usando a descida de sub-gradiente (por exemplo, P-packSVM), especialmente quando a paralelização é permitida.

Kernel SVMs estão disponíveis em muitos kits de ferramentas de aprendizado de máquina, incluindo LIBSVM , MATLAB , SAS , SVMlight, kernlab , scikit -learn , Shogun , Weka , Shark , JKernelMachines , OpenCV e outros.

O pré-processamento de dados (padronização) é altamente recomendado para aumentar a precisão da classificação. Existem alguns métodos de padronização, como mín-máx, normalização por escala decimal, Z-score. A subtração da média e a divisão pela variância de cada recurso geralmente é usada para SVM.

Veja também

Referências

Leitura adicional

links externos

  • libsvm , LIBSVM é uma biblioteca popular de alunos SVM
  • liblinear é uma biblioteca para grande classificação linear incluindo alguns SVMs
  • SVM light é uma coleção de ferramentas de software para aprendizagem e classificação usando SVM
  • SVMJS live demo é uma demonstração GUI para implementação JavaScript de SVMs