Inteligência Artificial na Prática - static.eventials.com · Definição 5 "Machine Learning ou...

64
Inteligência Artificial na Prática Claudio Filipi Gonçalves dos Santos 1

Transcript of Inteligência Artificial na Prática - static.eventials.com · Definição 5 "Machine Learning ou...

Inteligência Artificial na PráticaClaudio Filipi Gonçalves dos Santos

1

Nesta apresentação:

- O que é Machine Learning ?

- Análise de Dados

- Exemplo 1: Análise de Dados

- Deep Learning

- Exemplo 2: Reconhecedor de Caracteres

- Exemplo 3: Reconhecedor de Faces2

O que é Machine Learning?

- Sub-área da Inteligência Artificial

- Fornece habilidade do computador aprender

- Sem programação explicita!

3

Solução de Problemas

- Otimização

- Classificação

- Análise de padrões

- Clusterização

4

Definição

5

"Machine Learning ou Aprendizado de Máquina é um método de análise de

dados que automatiza o desenvolvimento de modelos analíticos.

Usando algoritmos que aprendem interativamente a partir de dados, o

aprendizado de máquinas permite que os computadores encontrem insights

ocultos sem serem explicitamente programados para procurar algo específico."

SAS - https://www.sas.com/pt_br/insights/analytics/machine-learning.html

Algumas Técnicas

6

Algoritmo Genético

Um dos primeiros criados e muito usado até hoje

● Baseado no modelo evolutivo

de Darwin

● Versão de John Henry Holland

de 1975 é a mais popular

● Otimizador muito usado no

meio acadêmico

7

Ant Colony Optimization

(ACO)Solução alternativa ao Problema

do Caixeiro Viajante

● Sistema baseado na

natureza(colônia de formigas)

● Criado em 1992

● Google Maps usa uma versão

do ACO combinada com outros

algoritmos para gerar rota

8

Redes Neurais Artificiais

Base para Deep Learning

● Familia de algoritmos

baseados no cérebro de

diversos animais

● Interesse no modelo de volta

em 1986 com Backpropagation

● Capacidade de separação não

linear

9

Como fazer uma primeira análise?

10

Exemplo 1: Análise de Dados

Classificação/Regressão

- Categorizar uma entrada/Definir valor de uma entrada

- Baseadas nas características

11

Exemplo 1: Análise de Dados

Análise dos Dados

- Quais características mais influenciam?

- Quais menos influenciam?

- É possível determinar o valor/classificar usando menos características?

- É possível determinar o valor/classificar combinando características?

12

Gradient Boosting

- Classificador

- Regressor

- Determina importância das

características

13

Gradient Boosting

“Um algoritmo eficiente para transformar hipóteses ruins em hipóteses boas”

Thoughts on Hypothesis Boosting, Michael Kearns (1998)

- Funcionamento

- Método supervisionado

- Usa Árvore de Decisão

14

Gradient Boosting

15

Exemplo: Iris Dataset

Banco com características de flores

- 4 características

- 3 classes

- 150 entradas, 50 para cada tipo de flor

16

Código

17

Resultado

18

Modelo Bom?

Poucas características

Dataset pequeno

Flores possuem mais características:

- Cor

- Estrutura

- Altura

- Formato das folhas

- E muito mais!

19

Mundo Real

20

Competição Kaggle-Santander

- Determinar quais clientes estão

satisfeitos e insatisfeitos

- 369 características

- 76020 entradas

21

Código

22

Resultado

23

24

Fácil e sair usando?

Ler documentação vale a pena

Usado com os parâmetros default

25

http://xgboost.readthedocs.io/en/latest/python/python_api.html - Documentação

Leve alteração, outros resultados

26

Versão 1 Versão 2

27

Versão 1

28

Versão 2

Deep Learning

29

Deep Learning

Funcionamento

- 1a fase: extração de características

- 2a fase: modelo generativo

30

Exemplo 2: Classificador de Dígitos (0-9)

Rede Neural Convolucional

31

Convolutional Neural Network

(CNN)Leva em conta a localização

dos dados

● Tratamento de imagens

● 1998: Yan LeCun alcança

mais de 99% de acerto na

classificação de dígitos

escritos à mão (MNIST)

● Técnica de processamento

de sinais (convolução)

32

Exemplo 2: Classificador de Dígitos (0-9)

- Classificação de dígitos (0-9) escritos à mão

- Dataset MNIST

33

Exemplo 2: Classificador de Dígitos (0-9)

34

Exemplo 2: Classificador de Dígitos (0-9)

35

Exemplo 2 (treinamento e resultados)

36

O que se passa na rede?

37

Exemplo 3: Reconhecimento Facial

Quem é? Claudio!

Faces Conhecidas

38

Fases Para Reconhecimento Facial

1a Fase:

- Detectar face

2a Fase:

- Detectar e codificar

características da

face

3a Fase:

- Comparar os dados

39

Código

40

0a Fase:Preparação

41

1a Fase:Detecção de Face

- Primeiro detectar se há uma face

- Uma imagem pode conter mais de uma face

- Importante isolar para facilitar o trabalho posterior

42

2a Fase:Características da Face

Quais características?

- Tamanho do rosto

- Distância dos olhos

- Posição da boca

- Entre outras

43

3a Fase:Encoding das Faces

- Com a detecção dos pontos principais, é

necessário tansformar em algo comparável (um

número, um array, uma matriz...)

- shape_predictor faz essa transformação

44

1a/2a/3a Fases em um Bloco

45

O que está acontecendo?

As partes de interesse das faces

foram detectados, em forma de

pontos

46

4a Fase:Comparar Faces

- Com os valores de encoding prontos, resta fazer

a comparação

- O valor comparado deve ser menor que

TOLERANCE

Quem é? Claudio!

Faces Conhecidas

47

4a Fase:Comparar Faces

48

5a Fase:Comparar Faces

- A função anterior retorna um vetor de Booleanos

dizendo com qual face o dado de entrada se

parece

- Sinta-se a vontade para criar uma interface!

49

5a Fase:Comparar Faces

50

5a Fase:Comparar Faces

51

Resultados?

52

Imagens Conhecidas

53

Imagens para Reconhecimento

54

Resultado

55

Bom Resultado?

56

OK!

OK!

OK!

OK!

OK!

OK! 100% DE

ACERTO!!!

Limitações do exemplo

- Limitado à 1(uma) face por imagem

- A face deve estar de frente para pegar todos os pontos de destaque

- Não foi feito teste com muitas imagens

57

Conclusão

58

Conclusão

Se trabalha com dados:

- Estudar Gradient Boosting

Se trabalha com mídia

- Estudar Deep Learning

- Convolutional Neural Network

59

Recomendação

PCA (Principal Component

Analysis)

Combinar Gradient Boosting com

PCA

Deep Learning: Keras

Técnicas de Deep Learning

- Convolutional Neural Network

- Recurrent Neural Network

- Long Short-Term Memory(LSTM)

- Gated Recurrent Unit (GRU)

60

Links

61

Competições Kaggle: https://www.kaggle.com/competitions

Gradient Boosting:

- Introdução:http://machinelearningmastery.com/gentle-introduction-gradient-boosting-algorithm-machine-

learning/

- Seleção de Características: http://machinelearningmastery.com/gentle-introduction-gradient-boosting-

algorithm-machine-learning/

- Diferença: Gradient Boosting x Randon Forest: http://fastml.com/what-is-better-gradient-boosted-trees-

or-random-forest/

Deep Learning:

Blog sobre Deep Learning: http://machinelearningmastery.com/blog/

Tutoriais com implementações mais baixo nível das arquiteturas Deep Learning-

http://deeplearning.net/tutorial/logreg.html

Livro sobre deep learning: http://neuralnetworksanddeeplearning.com/

Links

62

Código dos Exemplos:

- Iris: https://github.com/cfsantos/xgboost-iris

- Competição Kaggle-Santander: https://github.com/cfsantos/xgboost-santander

- CNN - MNIST: https://github.com/cfsantos/CNNExample

- Face Recognition: https://github.com/cfsantos/face-recognition.git

Artigos Relacionados ao Detector de Faces:

- Características da face: One Millisecond Face Alignment with an Ensemble of Regression Trees

- Reconhecedor de Faces: Deep Face Recognition

- ResNET: Deep Residual Learning for Image Recognition

Perguntas?

63

Obrigado!

Contatos:

Linkedin:

https://www.linkedin.com/in/

cfsantos85/

E-mail: [email protected]

Link: www.thedata.com.br

64