SVMSharp – Uma implementação didática de uma SVM
description
Transcript of SVMSharp – Uma implementação didática de uma SVM
SVMSharp – Uma implementação didática de uma SVM
Alexandre ÁvilaHigor dos Santos Pinto
Anselmo Nunes MontenegroInhaú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íniodo 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
SVMComo separar essas duas classes?
SVMComo separar essas duas classes?
Existem diversas retas que podem ser traçadas para separar os dados.
Qual delas é a melhor opção?
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!
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.
Hiperplano:
Espaço 1D = Ponto Espaço 2D = Reta
Espaço 3D = Plano
Hiperplanos
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:
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:
Funções de Kernel
Linear
RBF
Sigmóide
Polinomial
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:
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
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
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
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ê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.