SVMSharp – Uma
implementação
didática de uma SVM
Alexandre Ávila
Higor dos Santos Pinto
Anselmo Nunes Montenegro
Inhaúma Neves Ferraz
Introdução

Inteligência Artificial

Área da computação dedicada a resolver
problemas complexos

Raciocínio, Aprendizagem e
Reconhecimento de Padrões
Aprendizado de Máquina
• Aprendizado de máquina é área da Inteligência Artificial que
trabalha com a idéia de criar aplicações que possam induzirem um
resultado a partir de um comportamento padrão
• Aprendizado automático e qualquer processo no qual um sistema
melhora seu desempenho através da experiência
• O sistema armazena informação do trabalho executado
• Quanto mais o sistema trabalha mais aprende sobre o domínio
do problema e melhora seu desempenho
SVM
Poderosa metodologia para resolver
problemas de aprendizagem de máquina
Proposto em 1995 pelo russo Vladimir
Vapnik
Muito utilizado atualmente em diversos
tipos de aplicações e áreas
SVM
Consiste em um método de aprendizado que
tenta encontrar a maior margem para separar
diferentes classes de dados
A essência do SVM é a construção de um
hiperplano ótimo, de modo que ele possa
separar diferentes classes de dados com a
maior margem possível
SVM
Como separar essas duas
classes?
SVM
Como separar essas duas
classes?
Existem diversas retas que
podem ser traçadas para
separar os dados.
Qual delas é a melhor
opção?
SVM
Como separar essas duas
classes?
Existem diversas retas que
podem ser traçadas para
separar os dados.
Qual delas é a melhor
opção?
Hiperplano ótimo!
Vetores de Suporte
Servem para definir qual
será o hiperplano.
São encontrados durante a
fase de treinamento.
Os vetores de suporte são
os exemplos de
treinamento realmente
importantes. Os outros
exemplos podem ser
ignorados.
Hiperplanos
Hiperplano:
Espaço 1D = Ponto
Espaço 3D = Plano
Espaço 2D = Reta
SVM Não Lineares
O que fazer quando os dados não são linearmente separáveis?
x
A abordagem utilizada pelo SVM para resolver esse tipo de problema
consistem em mapear os dados para um espaço de dimensão maior:
x2
x
Mapeamento
O espaço de atributos original pode ser mapeado em um
espaço de atributos de dimensão maior onde o conjunto de
treinamento é linearmente separável:
Funções de Kernel

Linear

RBF

Sigmóide

Polinomial
Funções de Kernel

Linear
O Kernel Linear é a função de Kernel mais simples e básica. É dada
apenas pelo produto interno, e geralmente somada de uma constante.
É importante lembrar que essa constante não é levada em consideração
pela LIBSVM, e não deve ser confundida com o parâmetro C, que é o
custo de penalidade de amostras classificadas com erro.
Conjunto com amostras não separáveis:
Funções de Kernel

RBF
O Kernel RBF, também conhecido como Kernel Gausiano, é de longe um dos mais versáteis.
Ele é uma função base radial, sendo o preferido quando não conhecemos muito sobre os
dados que tentamos modelar. Utiliza apenas o parâmetro gamma, que deve ser muito bem
ajustado para o problema. Se sobrestimado, a exponencial ficará praticamente linear,
consequentemente perdendo seu poder não-linear. Se subestimado, perde regularidade e
fica muito sujeito à ruídos no conjunto de treinamento.
Função Base Radial (RBF)
no conjunto original
Conjunto original após
mapeamento RBF
Funções de Kernel

Sigmóide
Também conhecido como Kernel de Tangente Hiperbólica. Tendo sua origem no campo das
Redes Neurais, onde é comumente usado como função de ativação. Existem dois parâmetros
ajustáveis, o declive gamma e a constante de interceptação r (coef). Um valor comum para
gamma é 1/N, sendo N o número de atributos do treinamento. Se mostra com uma
performance boa na prática, para alguns modelos.
Funções de Kernel

Polinomial
O Kernel Polinomial é um Kernel não estacionário. Mostra sua boa
performance em problemas em que o todo o conjunto de treinamento
está normalizado. Os parâmetros ajustáveis são a declividade gamma,
a constante r (coef), e o grau do polinômio d.
Classificação polinomial,
sem erros
Amostras com erro da
classificação linear
SVM
Vantagens:
Consegue lidar bem com grandes conjuntos de exemplos.
Trata bem dados de alta dimensão.
O processo de classificação é rápido.
Desvantagens:
É necessário definir um bom Kernel.
O tempo de treinamento pode ser bem longo dependendo do
numero de exemplos e dimensionalidade dos dados.
SVMSharp

Apresentação do Aplicativo
Testes e Resultados
Conjunto de treinamento FourClass, retirado do repositório de dados da
LIBSVM, o único com apenas 2 características. Foi escolhido para melhor
visualização dos dados e resultado dos modelos gerados por cada kernel.
Modelo aprendido com Kernel Linear
Modelo aprendido com Kernel RBF
Modelo aprendido com Kernel Sigmóide
Modelo aprendido com Kernel Polinomial
Agradecimentos
Referências
SIMON, H. A. Comportamento administrativo: estudo dos processos decisórios nas
Organizações administrativas. 2.ed. Rio de Janeiro: Fundação Getulio Vargas, 1965.
Mitchell, Tom M. Machine Learning McGraw Hill, 1997.
Vladimir N. Vapnik , The Nature of Statistical Learning Theory, Springer, 1995.
Sanjeev R. Kulkarni and Gilbert Harman, Statistical Learning Theory: A Tutorial,
February 20, 2011
Ana Carolina Lorena, Andre C. P. L. F. de Carvalho Introduc~ao as Maquinas de
Vetores de Suporte( Support Vector Machines), Universidade de S~ao Paulo
Chih-Chung Chang and Chih-Jen Lin LIBSVM: a library for support vector machines,
2001, Software available at http://www.csie.ntu.edu.tw/ cjlin/libsvm.
Download

SVMSharp – Uma implementação didática de uma SVM