260 likes | 343 Views
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.
E N D
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 2D = Reta • Espaço 3D = Plano
SVM Não Lineares • 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: x 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 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: Linear
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. RBF Conjunto original após mapeamento RBF Função Base Radial (RBF) no conjunto original
Funções de Kernel 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. Sigmóide
Funções de Kernel 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 Polinomial
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.
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.