svmsharp – uma implementação didática de uma svm alexandre Ávila higor dos santos pinto...

26
SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Upload: internet

Post on 22-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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

Alexandre ÁvilaHigor dos Santos Pinto

Anselmo Nunes MontenegroInhaúma Neves Ferraz

Page 2: 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

Page 3: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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íniodo problema e melhora seu desempenho

Page 4: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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

Page 5: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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

Page 6: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

SVMComo separar essas duas classes?

Page 7: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

SVMComo separar essas duas classes?

Existem diversas retas que podem ser traçadas para separar os dados.

Qual delas é a melhor opção?

Page 8: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

SVMComo separar essas duas classes?

Existem diversas retas que podem ser traçadas para separar os dados.

Qual delas é a melhor opção?

Hiperplano ótimo!

Page 9: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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.

Page 10: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Hiperplano:

Espaço 1D = Ponto Espaço 2D = Reta

Espaço 3D = Plano

Hiperplanos

Page 11: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

SVM Não Lineares

x

x2

x

O que fazer quando os dados não são linearmente separáveis?

A abordagem utilizada pelo SVM para resolver esse tipo de problema consistem em mapear os dados para um espaço de dimensão maior:

Page 12: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

MapeamentoO 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:

Page 13: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Funções de Kernel

Linear

RBF

Sigmóide

Polinomial

Page 14: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Linear

Funções de Kernel

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:

Page 15: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

RBF

Funções de Kernel

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

Page 16: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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.

Page 17: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Funções de Kernel

PolinomialO 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.

Amostras com erro da classificação linear

Classificação polinomial, sem erros

Page 18: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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.

Page 19: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

SVMSharp

Apresentação do Aplicativo

Page 20: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

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.

Page 21: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Modelo aprendido com Kernel Linear

Page 22: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Modelo aprendido com Kernel RBF

Page 23: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Modelo aprendido com Kernel Sigmóide

Page 24: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Modelo aprendido com Kernel Polinomial

Page 25: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

Agradecimentos

Page 26: SVMSharp – Uma implementação didática de uma SVM Alexandre Ávila Higor dos Santos Pinto Anselmo Nunes Montenegro Inhaúma Neves Ferraz

ReferênciasSIMON, H. A. Comportamento administrativo: estudo dos processos decisórios nasOrganizaçõ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 deVetores 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.