45
Aprendizado de Máquina para Classificação de Dados Diego Henrique Negretto

Aprendizado de Máquina para Classificação de Dados

Embed Size (px)

Citation preview

Page 1: Aprendizado de Máquina para Classificação de Dados

Aprendizado de Máquina para Classificação de Dados

Diego Henrique Negretto

Page 2: Aprendizado de Máquina para Classificação de Dados

Quem vos fala ...

*Mestrando em Ciência da Computação na Universidade Estadual Paulista Júlio de Mesquita Filho.

*Graduado em Sistemas de Informação pela universidade FHO|Uniararas.

*Colaborador no Laboratório de Evolução Molecular (LEM) na Unesp de Rio Claro na área de bioinformática.

*Java, Delphi, Bancos de Dados Relacionais, Drupal e Linux.

*Interesses de pesquisa: Aprendizado de Máquina, Computação Inspirada pela Natureza e Bioinformática.

Page 3: Aprendizado de Máquina para Classificação de Dados

Roteiro➢ IA e Aprendizado de Máquina➢ Tipos de Aprendizado de Máquina➢ Redes Neurais

➢ Neurônios Artificiais➢ Histórico ➢ Algoritmo Perceptron de Múltiplas Camadas➢ Algoritmo Back-Propagation

➢ Árvores de Decisão➢ Algoritmo J48

➢ Exemplo com o Weka.

Page 4: Aprendizado de Máquina para Classificação de Dados

O que você pensa quando ouve os termos IA e Aprendizado de Máquina?

Page 5: Aprendizado de Máquina para Classificação de Dados

Eu penso nisso ...

Page 6: Aprendizado de Máquina para Classificação de Dados

O que temos hoje em dia ...

Page 7: Aprendizado de Máquina para Classificação de Dados

IA – Inteligência Artificial

➢ 1956 – McCarthy, Minsky e Shanon organizaram a primeira conferência sobre IA em Dartmouth – Criado o termo “Inteligência Artificial”

Page 8: Aprendizado de Máquina para Classificação de Dados

IA – Inteligência Artificial

“A ciência e engenharia de produzir máquinas inteligentes.” (John McCarthy).

Page 9: Aprendizado de Máquina para Classificação de Dados

Aprendizado de Máquina

“O Aprendizado de Máquina trata do projeto e desenvolvimento de algoritmos

que imitam o comportamento de aprendizagem humano, com um foco

principal em aprender automaticamente a reconhecer padrões complexos e

tomar decisões.” (T. Mitchell)

Page 10: Aprendizado de Máquina para Classificação de Dados

Aprendizado de Máquina

➢ Sub-Área da Inteligência Artificial.➢ Utiliza o raciocínio Indutivo.➢ Algumas Aplicações práticas:

➢ Motores de Busca;➢ Processamento da Linguagem Natural (NLP)➢ Diagnósticos Médico➢ Bioinformática➢ Reconhecimento da Fala➢ Reconhecimento da Escrita➢ …

Page 11: Aprendizado de Máquina para Classificação de Dados

Tipos de Aprendizado de Máquina

➢ 3 tipos diferentes:➢ Aprendizado Supervisionado.➢ Aprendizado Não Supervisionado.➢ Aprendizado Semi-Supervisionado.

Page 12: Aprendizado de Máquina para Classificação de Dados

Aprendizado Supervisionado

➢ Os algoritmos presentes nessa categoria deduzem uma função a partir dos dados de treinamento, que consistem em pares de exemplos de entradas e saídas. As saídas podem conter um rótulo utilizado para a classificação ou ser um valor contínuo. Dessa forma, o objetivo dos algoritmos deste tipo de aprendizado de máquina é predizer uma saída para qualquer entrada válida, após um treinamento suficiente (MITCHELL, 1997).

Page 13: Aprendizado de Máquina para Classificação de Dados

Aprendizado Não Supervisionado

➢ Nesta categoria, os algoritmos buscam determinar como os dados estão organizados, através de dados de treinamento que consistem apenas de exemplos de entrada e que não estão rotulados. Dessa forma, o objetivo deste tipo de aprendizado é encontrar padrões nos dados de entrada (MITCHELL, 1997).

Page 14: Aprendizado de Máquina para Classificação de Dados

Aprendizado Semi - Supervisionado

➢ Os algoritmos desta categoria estão em um meio termo entre os das categorias de Aprendizado Supervisionado e Não Supervisionado. Assim, faz-se uso de dados rotulados e não rotulados para o treinamento (CHAPELLE, 2006).

Page 15: Aprendizado de Máquina para Classificação de Dados

Redes Neurais

Page 16: Aprendizado de Máquina para Classificação de Dados

Neurônios Artificiais

Neurônio de McCulloch-Pitts

Page 17: Aprendizado de Máquina para Classificação de Dados

Alguns algoritmos baseados em Redes Neurais

➢ Perceptron com uma camada➢ Perceptron com múltiplas camadas➢ Redes ARTs➢ Redes Adaline➢ ...

Page 18: Aprendizado de Máquina para Classificação de Dados

Um pouco de história ...

➢ Em 1958, Rosenblatt implementou a Rede Perceptron (neurônio artificial de McCulloch-Pitts).

➢ Em 1969, Minky e Papert lançaram um livro demonstrando a limitação do Perceptron em classificar apenas objetos linearmente separáveis.

➢ Tal fato, diminui bastante o interesse em redes neurais nos anos 70.

➢ Em 1986, Rumelhart, Hinton e Williams propuseram o algoritmo Back-Propagation (Retropropagação de erro).

Page 19: Aprendizado de Máquina para Classificação de Dados

Perceptron de Múltiplas Camadas

➢ Consiste em uma rede fortemente conectada com conexões feedforward.

Page 20: Aprendizado de Máquina para Classificação de Dados

Perceptron de Múltiplas Camadas

➢ Cada neurônio realiza uma função específica.➢ A função implementada por um neurônio de uma

dada camada é uma combinação das funções realizadas pelos neurônios da camada anterior que estão conectados a ele.

➢ À medida que o processamento avança de uma camada intermediária para outra, o processamento realizado se torna mais complexo.

Page 21: Aprendizado de Máquina para Classificação de Dados

Perceptron de Múltiplas Camadas

Na primeira camada, cada neurônio aprende uma função que define um hiperplano, o qual divide o espaço de entrada em duas partes

Page 22: Aprendizado de Máquina para Classificação de Dados

Perceptron de Múltiplas Camadas

Cada neurônio da camada seguinte combina um grupo de hiperplanos definidos pelos neurônios da camada anterior, formando regiões convexas.

Page 23: Aprendizado de Máquina para Classificação de Dados

Perceptron de Múltiplas Camadas

Os neurônios da camada seguinte combinam um subconjunto das regiões convexas em regiões de formatos arbitrários.

Page 24: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation

➢ É baseado na regra delta utilizada na rede adaline, e também conhecido como regra delta generalizada.

➢ Para que esse algoritmo seja utilizado, a função de ativação precisa ser contínua, diferenciável e, de preferência, não decrescente.

Page 25: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Treinamento

➢ É constituido da iteração de duas fases, uma fase para frente (forward) e uma fase para trás (backward).

Page 26: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Treinamento

Forward = O objeto é recebido por cada um dos neurônios da primeira camada intermediária, que aplica a função de ativação e produz um valor de saída, que é utilizado como valor de entrada pelos neurônios da camada seguinte.

Page 27: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Treinamento

Backward = O valor de erro de cada neurônio é utilizado para ajustar seus pesos de entrada.

➢ O ajuste prossegue da camada de saída até a primeira camada intermediária.

Page 28: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Treinamento

➢ Os valores dos erros são conhecidos apenas para os neurônios da camada de saída, assim o erro para os neurônios das camadas intermediárias precisa ser estimado (soma dos neurônios da camada seguinte que estão conectados à ele, ponderados pelo valor do peso associado a essas conexões) .

Page 29: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Treinamento

Page 30: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Ajuste de Parâmetros

➢ O valor da taxa de aprendizado tem uma forte influência no tempo necessário à convergência da rede.

➢ Muito Pequena: muitos ciclos podem ser necessários para induzir um bom modelo.

➢ Muito Grande: pode provocar oscilações que dificultam a convergência.

Page 31: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Critério de Parada

➢ Número máximo de ciclos.➢ Taxa máxima de erros.➢ Overfitting: a rede para de aprender e começa

a se tornar superajustada aos dados de treinamento.

Page 32: Aprendizado de Máquina para Classificação de Dados

Algoritmo Back-Propagation: Crítica

➢ Uma crítica ao Back-Propagation é sua lentidão para um bom conjunto de pesos e a sua queda de desempenho quando utilizado em grandes conjuntos de dados e problemas complexos.

Page 33: Aprendizado de Máquina para Classificação de Dados

Árvores de Decisão

Page 34: Aprendizado de Máquina para Classificação de Dados

Árvores de Decisão

Uma árvore de decisão utiliza-se da estratégia de dividir para conquistar na resolução de

problemas de decisão.➢ As árvores são construídas no modelo top-

down.

Page 35: Aprendizado de Máquina para Classificação de Dados

Alguns algoritmos baseados em Árvores de Decisão

➢ ID3➢ CART➢ C4.5➢ J48➢ ...

Page 36: Aprendizado de Máquina para Classificação de Dados

Algoritmo J48

➢ O algoritmo J48 permite a criação de modelos de decisão em árvores, sendo uma implementação em Java, para o Weka, do algoritmo C4.5.

➢ Gera árvores de decisão com base em um conjunto de treinamento, sendo que para cada nó, é escolhido um atributo que subdivide o conjunto de amostras mais eficientemente.

Page 37: Aprendizado de Máquina para Classificação de Dados

Exemplo Pŕatico com o Weka

Page 38: Aprendizado de Máquina para Classificação de Dados

http://www.cs.waikato.ac.nz/ml/weka/

Page 39: Aprendizado de Máquina para Classificação de Dados

Alguns resultados

Page 40: Aprendizado de Máquina para Classificação de Dados

Resultados → Iris DataSet

➢ Perceptron de Múltiplas Camadas.

➢ Tempo: 0.09s

Page 41: Aprendizado de Máquina para Classificação de Dados

Resultados → Iris DataSet

➢ Algoritmo J48.

➢ Tempo: - 0s.

Page 42: Aprendizado de Máquina para Classificação de Dados

Resultados Pima-Indians→ DataSet

➢ Perceptron Múltiplas Camadas.

➢ Tempo: 0.73 s

Page 43: Aprendizado de Máquina para Classificação de Dados

Resultados Pima-Indians→ DataSet

➢ Algoritmo J48.

➢ Tempo: 0.01s

Page 44: Aprendizado de Máquina para Classificação de Dados

Obrigado !!!

Dúvidas???

Page 45: Aprendizado de Máquina para Classificação de Dados

Referências Bibliográficas