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.