Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 03: Aprendizado de Máquina Clássico Parte I Prof. Me. Lucas da Silva Assis Módulo 03 - Machine Learning ● Sobre mim: 2 Engenheiro Eletricista pela EMC - Universidade Federal de Goiás. Durante a graduação co-fundou o Núcleo de Robótica Pequi Mecânico - UFG e tornou-se coordenador da equipe de futebol de robôs (categoria IEEE Very Small Size Soccer). Mestre em Ciência da Computação pelo INF - Universidade Federal de Goiás, sendo bolsista CAPES. Durante o mestrado continuou a pesquisa com a temática de futebol de robôs, com o foco na movimentação e geração de trajetórias para robôs móveis. Atualmente é Doutorando em Ciência da Computação pela Universidade Federal de Goiás. Possui experiência nas áreas de Robótica, Eletrônica Embarcada, Internet das Coisas, Inteligência Computacional, Computação Evolutiva e Aprendizado de Máquina. Também é Instrutor certificado pelo NVIDIA’s Deep Learning Institute para os cursos de Visão Computacional Inteligente. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 3 ● Plano de hoje: ○ Aprendizado Supervisionado ○ Algoritmo dos K-vizinhos mais próximos ○ Support Vector Machine (SVM) Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 4 ● Motivação : ○ A ideia principal deste módulo é a familiarização com funções objetivas, computar seus gradientes e otimizar os objetivos em um conjunto de parâmetros. ○ Essas ferramentas básicas formarão a base para algoritmos mais sofisticados posteriormente! Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 5 ● Os pilares da Inteligência Artificial Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 6 ● Aprendizado Supervisionado ○ Problemas de aprendizagem supervisionados são agrupados em problemas de “regressão” ou “classificação”. ○ Em um problema de regressão, estamos tentando prever os resultados em uma saída contínua, o que significa que estamos tentando mapear variáveis de entrada para alguma função contínua. ○ Em um problema de classificação, estamos tentando prever os resultados em uma saída discreta. Em outras palavras, estamos tentando mapear variáveis de entrada em categorias distintas. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 7 ● Regressão x Classificação ○ Exemplos ? ■ Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 8 ● K-Nearest Neighbors (KNN) ○ O KNN é um classificador baseado na analogia. ○ O conjunto de treinamento é formado por vetores n-dimensionais e cada elemento deste conjunto representa um ponto no espaço n-dimensional. ● Funcionamento ○ Para determinar a classe de um elemento que não pertença ao conjunto de treinamento, o classificador KNN procura K elementos do conjunto de treinamento que estejam mais próximos deste elemento desconhecido, ou seja, que tenham a menor distância. ○ Estes K elementos são chamados de K-vizinhos mais próximos. Verifica-se quais são as classes desses K vizinhos e a classe mais freqüente será atribuída à classe do elemento desconhecido. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 9 ● K-Nearest Neighbors (KNN) ○ A influência do número K : ○ KNN é um classificador que possui apenas um parâmetro livre (o número de K-vizinhos) que é controlado pelo usuário com o objetivo de obter uma melhor classificação. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 10 ● K-Nearest Neighbors (KNN) ○ A influência do número K : ○ KNN é um classificador que possui apenas um parâmetro livre (o número de K-vizinhos) que é controlado pelo usuário com o objetivo de obter uma melhor classificação. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 11 ● K-Nearest Neighbors (KNN) ○ Métricas de distância : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico A distância de Minkowski é a generalização das duas distâncias anteriores. Quando q = 1, esta distância representa a distância de Manhattan e quando q = 2, a distância Euclidiana. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 12 ● K-Nearest Neighbors (KNN) ○ O processo de classificação do KNN pode ser computacionalmente exaustivo se considerado um conjunto com muitos dados. Para determinadas aplicações, no entanto, o processo é aceitável. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 13 ● K-Nearest Neighbors (KNN) ○ Implementação : https://colab.research.google.com/notebooks/welcome.ipynb ○ Dataset : Iris Data Set Este é talvez o dataset mais conhecido na literatura de reconhecimento de padrões. O conjunto de dados contém 3 classes de 50 instâncias cada, onde cada classe se refere a características de um tipo de Íris. Uma classe é linearmente separável das outras duas; no entanto, as últimas duas NÃO são linearmente separáveis uma da outra. ○ Atributo previsto: Espécie de Íris. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 14 ● Iris Plant Dataset Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 15 ● Iris Plant Dataset Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 16 ● Implementação do KNN : 1. Manipular dados: abra o conjunto de dados do CSV e divida em conjuntos de dados de teste / treino. 2. Similaridade/Distância: calcule a distância entre duas instâncias de dados. 3. Vizinhos: localize k instâncias de dados mais semelhantes. 4. Resposta: Gere uma resposta de um conjunto de instâncias de dados. 5. Acurácia: Resuma a acurácia das previsões. 6. Final: Junta tudo e corre pro almoço. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 17 ● SupportVector Machine (SVM): ● “Support Vector Machine” (SVM) é um algoritmo de aprendizado de máquina supervisionado que pode ser usado para desafios de classificação ou regressão. No entanto, é usado principalmente em problemas de classificação. ● Nesse algoritmo, representamos cada item de dados como um ponto no espaço n-dimensional (onde n é o número de características que você possui), com o valor de cada recurso sendo o valor de uma determinada coordenada. Então, realizamos a classificação encontrando o hiperplano que separa as duas classes. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 18 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 1 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Qual a Regra ? Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 19 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 1 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Qual a Regra ? Fazer a Separação total das classes. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 20 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 2 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Qual a Regra ? Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 21 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 2 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Qual a Regra ? Maximizar a distância dos pontos de cada classe para com o hiperplano. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 22 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 3 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Vish !? Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 23 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 4 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico E agora Jesus ? Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 24 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 4 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 25 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 5 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 26 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 5 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico O SVM pode resolver esse problema. Facilmente! Ele resolve esse problema introduzindo uma característica adicional. Aqui, adicionaremos um novo recurso z = x ^ 2 + y ^ 2. Agora, vamos plotar os pontos de dados nos eixos x e z: Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 27 ● Support Vector Machine (SVM): ○ Como achar esse “Hiper-Plano” ? Cenário 5 : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Combinando as características originais x e y em uma característica z, de modo que : z = x² + y² Obtemos o seguinte comportamento : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 28 ● Support Vector Machine (SVM): ○ Como combinar características ? Devemos adicionar esse recurso manualmente para ter um hiperplano. Não, o SVM tem uma técnica chamada truque do kernel. Estas são funções que recebem características em um espaço dimensional inferior e o transformam em um espaço dimensional superior, isto é, ele converte um problema não separável em baixas dimensões em um problema possivelmente separável nas dimensões superiores. Esse truque é especialmente útil em problemas de separação não linear. Simplificando, ele faz algumas transformações de dados extremamente complexas e, em seguida, descobre o processo para separar os dados com base nos rótulos ou nas saídas que você definiu. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 29 ● Resumindo: ○ O SVM é um algoritmo construído para encontrar a melhor fronteira de decisão (as vezes chamada de superfície de decisão) que separa duas únicas classes (A e B) a partir das amostras de treinamento. ○ Ele faz isso por um processo de otimização contínua em que busca encontrar o hiperplano que mais bem separa as duas classes. Esse hiperplano é aquele cuja distância dos exemplos das classes é a maior possível (de modo a ficar o mais bem separado possível!). ○ Note que nem todos os exemplos das classes A e B são necessários para se calcular essa distância e obter esse hiperplano (apenas aqueles mais próximos da área de confusão), e são justamente esses pontos (ou vetores, em termos geométricos utilizados na fundamentação matemática do algorítmo) que importam. Eles são chamados de "vetores de suporte" porque caracterizam o hiperplano separador, e é daí justamente que vem o nome do algoritmo. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 30 ● Resumindo: ○ Não iremos entrar em detalhes na implementação desse processo de otimização porque ele requer muito mais informações, e também porque você não precisa saber de tais detalhes para utilizar as bibliotecas como a do Scikit-Learn (Python) e o libSVM (C++). ○ O que você precisa saber é que os Kernels usados pelo SVM servem apenas para permitir flexibilizar a fronteira de decisão, permitindo outras opções além de um separador linear. ○ Outro detalhe é que, para a classificação entre mais do que duas classes, o algoritmo simplesmente utiliza um conjunto de classificadores binários, treinados para cada combinação de pares (1, n-1): as amostras da classe A são consideradas normalmente e as demais amostras (de todas as outras classes) são consideradas como amostras de uma classe B - esse classificador individual apenas indica se uma amostra é ou não da classe A - com um desses para cada classe, pode-se separá-las pela melhor resposta dentre os classificadores para cada amostra. Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 02- Regressão Linear e Logística 31 ● Resumindo: ○ Diferentes hiper-planos relativos a diferentes kernels : Módulo 03 - Machine Learning Professor: Me. Lucas da Silva Assis Aula 03- Machine Learning Clássico
Compartilhar