Alguém pode me explicar como projetar uma função de decisão SVM? Ou aponte-me para um recurso que discuta um exemplo concreto.
EDITAR
Para o exemplo abaixo, posso ver que a equação separa as classes com margem máxima. Mas como ajusto os pesos e escrevo equações para hiperplanos da seguinte forma.
Estou tentando acertar a teoria subjacente no espaço 2D (como é mais fácil de visualizar) antes de pensar em dimensões mais altas.
Eu elaborei a solução para isso. Alguém pode confirmar se isso está correto?
o vetor de peso é (0, -2) e W_0 é 3
Respostas:
Existem pelo menos duas maneiras de motivar os SVMs, mas seguirei a rota mais simples aqui.
Agora, esqueça tudo o que sabe sobre o SVM no momento e concentre-se apenas no problema em questão. Você recebe um conjunto de pontos junto com alguns rótulos ( y i ) que são de { 1 , - 1 } . Agora, estamos tentando encontrar uma linha em 2D tal que todos os pontos com etiqueta 1 queda de um lado da linha e todos os pontos com etiqueta - 1 queda do outro lado.D={(xi1,xi2,yi)} yi {1,−1} 1 −1
Antes de tudo, perceba que é uma linha em 2D e w 0 + w 1 x 1 + w 2 x 2 > 0 representa "um lado" da linha e w 0 + w 1 x 1 + w 2 x 2 < 0 representa o "outro lado" da linha.w0+w1x1+w2x2=0 w0+w1x1+w2x2>0 w0+w1x1+w2x2<0
Do exposto, podemos concluir que queremos um vetor tal que, w 0 + w 1 x i 1 + w 2 x i 2 ≥ 0 para todos os pontos x i com y i = 1 e w 0 + w 1 x i 1 + w 2 x i 2 < 0[w0,w1,w2] w0+w1xi1+w2xi2≥0 xi yi=1 w0+w1xi1+w2xi2<0 para todos os pontos com y i = - 1 [1].xi yi=−1
Vamos supor que essa linha realmente exista, então eu posso definir um classificador da seguinte maneira,
Eu usei uma função objetivo arbitrária acima, na verdade não nos importamos no momento em que função objetivo seja usada. Nós apenas queremos um que satisfaça nossas restrições. Como assumimos que existe uma linha de forma que possamos separar as duas classes com essa linha, encontraremos uma solução para o problema de otimização acima.w
O acima não é SVM, mas fornecerá um classificador :-). No entanto, esse classificador pode não ser muito bom. Mas como você define um bom classificador? Um bom classificador é geralmente aquele que se sai bem no conjunto de testes. Idealmente, você examinaria todos os possíveis que separam seus dados de treinamento e veria qual deles se saiu bem nos dados de teste. No entanto, existem infinitos , então isso é totalmente inútil. Em vez disso, consideraremos algumas heurísticas para definir um bom classificador. Uma heurística é que a linha que separa os dados estará suficientemente longe de todos os pontos (ou seja, sempre há espaço ou margem entre os pontos e a linha). O melhor classificador dentre esses é o de margem máxima. É isso que é usado nos SVMs.ww w
Em vez de insistir que para todos os pontos com e para todos os pontos com , se insistimos que para todos os pontos com e para todos os pontos com , então estamos realmente insistindo para que os pontos estejam longe da linha. A margem geométrica correspondente a esse requisito é .x i y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 < 0 x i y i = - 1 w 0 + w 1 x i 1 + w 2 x i 2 ≥ 1w0+w1xi1+w2xi2≥0 xi yi=1 w0+w1xi1+w2xi2<0 xi yi=−1 w0+w1xi1+w2xi2≥1 y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 ≤ - 1 x i y i = - 1 1xi yi=1 w0+w1xi1+w2xi2≤−1 xi yi=−1 1∥w∥2
Portanto, obtemos o seguinte problema de otimização, Uma forma ligeiramente sucinta de escrever é: Essa é basicamente a formulação básica do SVM. Eu pulei muita discussão por questões de brevidade. Espero que ainda tenha conseguido a maior parte da idéia.
Script CVX para resolver o problema de exemplo:
Adenda - Margem Geométrica
Acima, já solicitamos que modo que ou geralmente . O LHS aqui que você vê é chamado de margem funcional; portanto, o que solicitamos aqui é que a margem funcional seja . Agora, tentaremos calcular a margem geométrica, considerando esse requisito de margem funcional.w yi(w0+w1x1+w2x2)≥1 yi(w0+wTx)≥1 ≥1
O que é margem geométrica? Margem geométrica é a menor distância entre pontos nos exemplos positivos e pontos nos exemplos negativos. Agora, os pontos que possuem a menor distância, conforme exigido acima, podem ter uma margem funcional maior que igual a 1. No entanto, vamos considerar o caso extremo, quando estiverem mais próximos do hiperplano, a margem funcional para os pontos mais curtos é exatamente igual para 1. Seja o ponto no exemplo positivo, seja um ponto tal que e seja o ponto no exemplo negativo, seja um ponto tal que . Agora, a distância entre e será a mais curta quandox+ wTx++w0=1 x− wTx−+w0=−1 x+ x− x+−x− é perpendicular ao hiperplano.
Agora, com todas as informações acima, tentaremos encontrar que é a margem geométrica.∥x+−x−∥2
[1] Não importa qual lado você escolhe para e . Você só precisa permanecer consistente com o que escolher.- 11 −1
fonte