Vítor Amorim Fróis
Support Vector Machines são uma das minhas ideias favoritas no contexto de Aprendizado de Máquina. É um conceito muito simples que combinado com matemática, se torna uma ferramenta poderosa. O cientista soviético Vladimir Vapnik trouxe a ideia original nos anos 60 mas apenas em 1992, um grupo de cientistias foram capazes de encontrar um truque que transformasse o modelo linear em não linear. Esse truque permite aplicar o modelo para qualquer tipo de dado desde que haja um kernel adequado. Assim, vamos ver como aplicar o conceito para classificação de nós em grafos.
Imagine duas classes separáveis que vivem em um espaço qualquer. Para criar um modelo, devemos encontrar a melhor maneira de separá-los. Enquanto Árvores de Decisão e Redes Neurais tem suas ideias, SVM buscam encontrar uma faixa que realize a melhor separação.
A faixa tem duas bordas e nós queremos maximizar a distância entre elas.
Considere
Assim, para classificar
- Se
$\vec{w} \vec{u} + b \ge 0$ então$\vec{u}$ pertence a classe 1.
Ótimo! Mas ainda não sabemos qual valor usar, então devemos introduzir algumas restrições (constraints) a fim de calcular
Para conveniência introduzimos
Assim reescrevemos (1) com
Sabendo a equação para amostras nas bordas, podemos encontrar a largura da faixa ao projetar a diferença entre os representantes de cada classe nas boardas pela vetor perpendicular a faixa normalizado.
O vetor perpendicular que buscamos é
Reescrevendo (1) para amostras nas bordas obtemos
E substituindo na fórmula da largura
Nós queremos maximizar a largura, isto é, maximizar
Para minimizar
Introduzimos
Note que
$\frac{\partial ||\vec{w}||}{\partial \vec{w}} = \frac{\vec{w}}{||\vec{w}||}$ .
Ao pegar as derivadas parciais obtemos
Resumindo, encontramos que o vetor
Finalmente! O mais importante aqui é descobrirmos que a otimização depende apenas do produto escalar dos pares de amostras (
Podemos inserir o vetor obtido para a faixa
Se
$\sum_l a_i y_i \vec{x_i} \vec{u} + b \ge 0$ então$\vec{u}$ pertence a classe 1.
De forma similar, a regra de decisão também depende apenas do produto escalar entre o vetor desconhecido e as amostras.
Nota 1: é possível provar que o Lagrangiano pertence a um espaço convexo, e portanto, o máximo local também é global.
Nota 2: as amostras com
Uma forma comum para lidar com a linearidade de um vetor
Entretanto, como visto nos últimos parágrafos, para otimizar e classificar precisamos apenas do resultado de
O Kernel Radial Basis Function (RBF), generaliza um kernel polinomial para gerar a relação entre vetores num espaço de dimensão infinita:
Considere um conjunto de amostras
onde
Em ciência de dados, os dados podem estar estruturados como nós de um grafo e não como vetores. Isso pode acontecer naturalmente, pela discretização de um espaço contínuo ou por que é conveniente.
Para aplicar SVMs em grafos, é preciso encontrar um
Não é um kernel válido :( Podemos encontrar vários problemas. Um exemplo muito claro é que nem todos vértices podem ser diretamente alcançáveis.
Para resolver esse problema, utilizamos a difusão em grafos. A difusão é um processo amplamente conhecido na física e pode ser interpretado como o espalhamento de uma substância quando introduzido em um meio.
Na versão para grafos, a difusão pode ser considerada como um RBF em grafos e representa caminhadas aleatórias em tempo contínuo.
onde
A rede social Karate Club foi estudada por Zachary por um período de três anos, de 1970 a 1972. A rede captura 34 membros do clube, documentando ligações entre pares de membros que interagiam fora do clube. Durante o estudo surgiu um conflito entre o administrador "John A" (nó 33) e o instrutor "Mr. Hi" (nó 0), o que levou à divisão do clube em dois. Metade dos membros formou um novo clube em torno do Sr. Hi; membros da outra parte encontraram um novo instrutor ou desistiram do caratê. Com base nos dados coletados, Zachary atribuiu corretamente todos os membros do clube, exceto um.
Vamos realizar a difusão no Grafo com
Para realizar a classificação, pegamos o sinal do estado de cada nó.