Você está na página 1de 332

Fundamentos em Aprendizagem de Máquina

Capítulo 1. Introdução ao Aprendizado de Máquina

Prof. João Paulo Nascimento


Aula 1.1. História da Inteligência Artificial
Nesta aula

 Inteligência Artificial.
 História.

 Evolução.
História da Inteligência Artificial

 Começou na antiguidade, com mitos sobre seres artificiais dotados de


inteligência.

 IA moderna, filósofos clássicos.

 Tentaram descrever o pensamento humano como um mecanismo de


manipulação de símbolos.

 Esse pensamento culminou com a invenção do computador digital


programável na década de 1940.
História da Inteligência Artificial

 Gestação da IA (1943-1955)
– Primeiro trabalho reconhecido como IA. Lógica proposicional (Russell e Whitehead).

– Teoria da computação de Turing.

– Primeiro computador de rede neural (1951) - SNARC. 3000 válvulas.

– Alan Turing – visão completa da IA em um artigo de 1950.

– Teste de Turing.
História da Inteligência Artificial

 Nascimento da IA (1956)
– John McCarthy – Universidade de Princeton.

– Teoria dos Autômatos, Redes Neurais e estudos de IA em geral.

– Logic Theorist (LT) – Programa de raciocínio não numérico.


História da Inteligência Artificial

 Entusiasmo inicial e grandes expectativas (1952-1969)


– McCarthy se referiu a esse período como a era do “Olha mamãe, sem as mãos”.

– GPS (General Problem Solver) – projetado para imitar protocolos humanos de


resolução.

– Geometry Theorem Solver (1959).


História da Inteligência Artificial

 Entusiasmo inicial e grandes expectativas (1952-1969)


– Linguagem de alto nível LISP – 1958. Linguagem dominante da IA.

– Advice Taker (McCarthy, 1958). Conhecimento para solução de problemas.

– ANALOGY de Tom Evans (1968) resolvia problemas de analogia geométrica (testes


de QI).

– STUDENT de Daniel Bobrow (1967) resolvia problemas de álgebra.


História da Inteligência Artificial

 Uma dose de realidade (1966-1973)


– Herbert Simon:
• Em 10 anos um computador seria campeão de xadrez;

• Um teorema matemático significativo seria resolvido.

– Essas previsões se realizaram em 40 anos.

– O otimismo de Simon se devia aos promissores resultados iniciais em exemplos


simples.
História da Inteligência Artificial

 Uma dose de realidade (1966-1973)


– Esses experimentos falharam em problemas mais extensos.

– IA resolvia problemas experimentando diferentes combinações até encontrar a


solução.

– Principal crítica sobre a IA: incapacidade de conviver com a explosão combinatória.


Motivo para o governo britânico encerrar o financiamento.
História da Inteligência Artificial

 Sistemas baseados em conhecimento (1969-1979)


– Até aqui: mecanismo de busca de uso geral.

– Buscavam elementos do raciocínio para encontrar soluções completas (métodos


fracos).

– Problema ao aumentar o número de objetos ou instâncias.

– DENDRAL (1969) – para resolver um problema difícil é necessário saber a resposta.


História da Inteligência Artificial

 Sistemas baseados em conhecimento (1969-1979)


– Primeiro sistema de conhecimento intensivo.

– Sistema especialista (conhecimento em forma de regras).

– Necessário capturar o conhecimento humano.

– Linguagem de representação do conhecimento (Prolog e PLANNER).


História da Inteligência Artificial

 A IA se torna uma indústria (1980 até a atualidade)


– Primeiro sistema bem-sucedido, RI (1982). Ajudou a configurar novos pedidos de
computadores.

– 1986 – Retorno da Rede Neural, que foi abandonada nos 70.

– 1980 – Recriação do algoritmo de retro-propagação (1969).

– 1987 – IA se torna uma ciência com firmeza do método científico.

– Tecnologia da Mineração de Dados gerou uma nova e vigorosa indústria.

– Revoluções no campo da robótica, visão computacional e representação de


conhecimento.
História da Inteligência Artificial

 Estado da Arte

 Jogos:
– Deep Blue IBM.

– Primeiro programa a derrotar o campão mundial de xadrez Kasparov.

– Kasparov disse que sentiu “uma nova espécie de inteligência do outro lado do
tabuleiro”.
História da Inteligência Artificial

 Estado da Arte

 ALVINN: carro autônomo


– Percorreu 4600 Km nos EUA. Manteve o controle em 98% do tempo.

– Câmeras transmitem imagens da estrada e ALVINN decide a melhor forma de guiar.

– Baseado em experiências e treinamentos anteriores.

 Diagnósticos de doenças
História da Inteligência Artificial

 Evolução do Hardware.
– Processamento paralelo e distribuído.

– Memória, processador e armazenamento.


Conclusão

 História da IA.

 Desenvolvimento.

 Presente.
Próxima aula

 Introdução ao Aprendizado de Máquina e Aplicações.


Aula 1.2. Introdução ao Aprendizado de Máquina e
Aplicações
Nesta aula

 Introdução ao Aprendizado de Máquina.

 Conceitos iniciais.

 Aplicações.
Introdução ao Aprendizado de Máquina

 Computadores são capazes de aprender?

 Aprender conforme os humanos?

 Alguns algoritmos têm alcançado bons resultados nesse sentido.


Introdução ao Aprendizado de Máquina

 Programadores não podem antecipar todas as situações que podem


acontecer.
– Ex.: um carro autônomo programado especificamente para andar em uma cidade
pode não andar na outra.
Introdução ao Aprendizado de Máquina

 Quando é necessário usar o Aprendizado de Máquina?

 Sempre que não for possível escrever um algoritmo determinístico para


resolver o problema.

 Nesse caso buscamos o conhecimento por meio de exemplos.


Introdução ao Aprendizado de Máquina

 Aprendizagem não é memorizar.

 Desejamos generalizar um comportamento diante de uma nova situação.

 Computadores memorizam facilmente.

 Computadores não generalizam facilmente.


Introdução ao Aprendizado de Máquina
Introdução ao Aprendizado de Máquina
Introdução ao Aprendizado de Máquina

 Fases do aprendizado

 Treinamento:
– São apresentados exemplos para o sistema;

– O sistema aprende com os exemplos;

– O sistema modifica os parâmetros ajustáveis;

– A saída se aproxima do desejado.


Introdução ao Aprendizado de Máquina

 Fases do aprendizado

 Utilização:
– Novos exemplos “desconhecidos” são apresentados;

– Espera-se que o sistema generalize e apresente resultados satisfatórios.


Introdução ao Aprendizado de Máquina

 Não desejamos aprender por memorização;

 Com isso teremos respostas apenas para o que está memorizado;

 Aprender com o objetivo de generalizar posteriormente;

 Mais difícil. Existem muitas formas de generalizar;

 Devemos analisar a estrutura dos dados;

 Não somente aprender a boa resposta.


Introdução ao Aprendizado de Máquina

 Quantidade finita de dados para treinamento.

 Temos que derivar uma função h que se aproxime da verdadeira função f(x).

 f(x) gerou os dados e é desconhecida.

 Número infinito de funções h.


Introdução ao Aprendizado de Máquina
Conclusão

 Conceitos básicos de Aprendizado de Máquina.

 Aprendizado.
Próxima aula

 Formas de Aprendizado.
 Supervisionado.

 Não supervisionado.

 Reforço.
Aula 1.3. Formas de Aprendizado
Nesta aula

 Formas de Aprendizado.
 Supervisionado.

 Não supervisionado.

 Por reforço.
Formas de Aprendizado

 Aprendizado Supervisionado
– Observam-se alguns pares de exemplos de entrada e saída.

– Dada uma entrada, é produzida determinada saída.

– Tem o objetivo de “aprender” uma função que mapeia a entrada para a saída.

– Informamos para o sistema qual é a resposta correta.

– Classes são conhecidas previamente.


Formas de Aprendizado

 Aprendizado Supervisionado
– É eficiente, pois o sistema trabalha com os resultados corretos.

– Útil para tarefas de:


• Classificação;

• Regressão;

• Estimativa de probabilidade condicional.


Formas de Aprendizado

 Aprendizado Supervisionado
– Primeiramente são apresentados exemplos ao sistema.

– O sistema aprende a partir dos exemplos.

– Em seguida, inicia-se a fase de testes.

– Novos dados jamais vistos são apresentados para o agente.

– Desejável que o agente tenha um bom poder de generalização.


Formas de Aprendizado

 Aprendizado Supervisionado
– Dado um conjunto de exemplos de treinamento {(x1, y1), ..., (xn, yn)}

– Queremos aprender um mapeamento f : X  Y tal que:

– yi ≈ f(xi), i = 1, ..., n
Formas de Aprendizado

 Aprendizado Não Supervisionado


– O agente reconhece o padrão nos dados de entrada;

– Mesmo sem conhecer nenhum feedback de saída;

– A resposta não é dada;

– As classes não são conhecidas;

– Descoberta do conhecimento;

– “Autodidata”.
Formas de Aprendizado

 Aprendizado Não Supervisionado


– Reconhecimento de faces e manuscritos.

– Finanças: predição de ações e gerenciamento de risco.

– Predição de tráfego.

– Jogos e controles de robôs.


Formas de Aprendizado
 Aprendizagem por Reforço
– A cada instante de tempo t.

– O agente está em um estado s.

– Executa uma ação a.

– Vai para o estado s’.

– Recebe uma recompensa r.

 Objetivo: escolher um conjunto de ações que maximize as recompensas


Formas de Aprendizado
 Aprendizagem por Reforço
– O agente fica sabendo de uma série de reforços, recompensas ou punições.

– Ex.: para um táxi autônomo, a falta de gorjeta ao final indica que ele fez algo errado.

– Cabe ao agente reconhecer qual das ações antes do reforço ocasionaram isso.

– Não damos a resposta correta para o sistema. Ele faz uma hipótese e determina se
foi boa ou ruim.
Conclusão

 Diferenças entre as formas de aprendizados.

 Diversos algoritmos para cada uma das formas.

 Cada problema demanda uma forma.


Próxima aula

 Overfitting.

 Underfitting
Aula 1.4. Overfitting e underfitting
Nesta aula

 Overfitting e underfitting
 Significado.

 Exemplos.
Overfitting

Overfitting / Sobreajuste
 Termo da Estatística e do Aprendizado de Máquina.

 Ocorre quando o modelo estatístico se ajusta de forma excessiva ao conjunto de treino.

 O algoritmo “presta muita atenção” nas particularidades dos dados de treinamento e


não consegue generalizar muito bem.
Overfitting
Overfitting

Exemplo:

– Um estudante que memoriza toda a matéria de uma prova sem realmente entender
o conteúdo.

 Aprender por memorização não permite a generalização em novos casos.

 Erro baixo sobre os exemplos de aprendizagem (treino).

 Erro elevado para os dados de testes.

 Ocorre quando é usado um conjunto muito grande de exemplos com pequena variação
entre as classes.
Overfitting e underfitting

 Um classificador com 100% de precisão no treinamento e 50% nos dados de


testes está causando overfitting.
Overfitting
 Verificando o overfitting:
– Divida o conjunto de dados em dois conjuntos (treino e teste).

– Treine o modelo com os dados de treinamento.

– Avalie o modelo com os dados de treinamento.

– Avalie o modelo com os dados de teste.

– A diferença entre as duas avaliações vai mensurar a habilidade em generalizar.


Overfitting e underfitting

Erro
Overfitting e underfitting

Causas do overfitting

 Ruídos no conjunto de dados de treinamento.

 Conjunto de dados que não representa de forma adequada a base completa.

 Base de treinamento pequena demais.


Underfitting

Underfitting (subajuste)

 Considerado um complemento ao problema de overfitting.

 Overfitting trabalha muito bem com o dataset de treinamento, mas não com
novas instâncias.

 Underfitting apresenta problemas no próprio conjunto de dados de


treinamento.

 Erro elevado na aprendizagem e no teste.


Overfitting e underfitting
Underfitting Overfitting
Overfitting e underfitting

Um bom modelo (balanceado)


 O modelo é suficientemente flexível para capturar a forma da curva da função f.

 Não é exatamente igual a função f.


Conclusão

 Overfitting, underfitting e um modelo balanceado.


Próxima aula

 Dimensionalidade e definição de problemas.


Aula 1.5. Dimensionalidade e definição de problemas
Nesta aula

 Maldição da dimensionalidade.

 Influência da quantidade de atributos na eficácia.

 Redução da dimensionalidade (vantagens).


Dimensionalidade e definição de problemas

Maldição da dimensionalidade
 Aprendizagem pode se tornar mais difícil a medida que aumentamos as características
em cada caso.

 Termo que se refere a vários fenômenos que surgem na análise de dados.

 Em espaços com muitas dimensões (atributos).


Dimensionalidade e definição de problemas

Ex.: um conjunto de dados é descrito com 30 atributos


 Somente três atributos são realmente relevantes.

 Os outros 27 atributos são correlacionados ou irrelevantes.

 O resultado será um desempenho ruim na classificação.

 O algoritmo KNN é enganado quando existe um grande número de atributos.


Dimensionalidade e definição de problemas

 O desempenho de um algoritmo tende a cair a medida que aumentamos a


quantidade de atributos.
 Mesmo que sejam atributos relevantes.
Dimensionalidade e definição de problemas

 Cada atributo é uma dimensão no espaço de características.

 O volume cresce exponencialmente ao adicionar novos atributos.


– Um atributo com dez valores possíveis: dez objetos possíveis.

– Cinco atributos com dez possíveis valores: 105 objetos possíveis.


Dimensionalidade e definição de problemas

 Espaços com muitas dimensões.

 As amostras se tornam esparsas.

 Pouco similares.

 Distantes umas das outras.


Dimensionalidade e definição de problemas

 Redução da dimensionalidade pode trazer benefícios.


Dimensionalidade e definição de problemas

Redução da dimensionalidade

 Etapa importante no projeto de um sistema.

 Utilizar um número pequeno de atributos.

 Faz-se a seleção ou composição de atributos.

 Criam-se novos atributos via transformação de dados (agregação).


– Massa e volume vira densidade.

– Valor unitário e quantidade vira valor total.

 Seleção dos melhores atributos.


Dimensionalidade e definição de problemas

Vantagens:

– Melhora a eficácia dos algoritmos.

– Reduz o tamanho da amostra.

– Simplifica o modelo e facilita a interpretação.

– Melhora a visualização dos resultados.


Dimensionalidade e definição de problemas

Definição de problemas.

 Problemas de aprendizado bem definidos devem identificar:

– A classe de tarefas.

– A medida de desempenho a ser melhorada.

– A fonte de conhecimento.
Dimensionalidade e definição de problemas

 Um programa de computador aprende:

– A partir de uma experiência E.

– Com uma classe de tarefas T.

– Uma medida de desempenho P.

 Seu desempenho nas tarefas T, medida por P, melhora com a experiência E.


Dimensionalidade e definição de problemas

 Exemplo de problema bem definido.

 Tarefa T: aprender a jogar Xadrez.

 Medida de desempenho P: percentual de jogos ganhos contra adversários.

 Experiência de treinamento E: jogar contra si mesmo ou memorizar


movimentos de jogadores experientes.
Conclusão

 Dimensionalidade x Eficiência.

 Relação da dimensionalidade e atributos.

 Redução da dimensionalidade.
Próxima aula

 Projetando um sistema de aprendizagem.


Aula 1.6. Projetando um sistema de aprendizagem
Nesta aula

 Projeto de um sistema de aprendizagem.

 Etapas básicas do projeto.


Projetando um sistema de aprendizagem
Como projetar um sistema de aprendizagem em etapas?

1. Escolha da experiência de treinamento.

2. Escolha do objetivo (uma função objetivo).

3. Escolha de uma representação da função objetivo.

4. Escolha de um algoritmo para a função de aproximação.


Projetando um sistema de aprendizagem

1 – Experiência de treinamento

– Escolher o tipo de experiência de treinamento, pelo qual o sistema


aprenderá.

– O grau de controle sobre a sequência de treinamento (supervisionado ou


não supervisionado).

– Representa a distribuição de exemplos usados no treinamento.


Projetando um sistema de aprendizagem

2 – Função objetivo

– Que tipo de conhecimento será aprendido?

– Como ele será usado pelo sistema?

– O problema do jogo de Xadrez é composto por diversas tarefas.

– O programa precisa aprender como escolher o melhor movimento dentre


os possíveis.
Projetando um sistema de aprendizagem

2 – Função objetivo

– Função:
• EscolherMovimento

• EscolherMovimento : K  M

– A função recebe como entrada qualquer estado do conjunto de estados


possíveis do tabuleiro K.

– Produz como saída algum movimento do conjunto de movimentos


possíveis M.
Projetando um sistema de aprendizagem

2 – Função objetivo

– Função alternativa:
• Função V

• V:KR

• V mapeia qualquer estado legal do tabuleiro do conjunto K.

• Resulta em um valor Real.

• Com isso pode-se atribuir valores maiores para os melhores estados.


Projetando um sistema de aprendizagem

2 – Função objetivo

– Função alternativa:
• V:KR

• Se a é um estado vitorioso: V(a) = 10.

• Se a é um estado perdedor: V(a) = -10.

• Se a é um não é um estado final do jogo: V(a) = V(a’)

• Onde a’ é o melhor estado final que pode ser atingido.


Projetando um sistema de aprendizagem

3 – Representação da função objetivo

– Devemos escolher a representação que o programa de aprendizagem


usará para descrever a função V.

– Redes Neurais.

– Funções Polinomiais.

– Coleção de Regras.
Projetando um sistema de aprendizagem

3 – Representação da função objetivo

– bp(k): número de peças pretas no tabuleiro k.

– rp(k): número de peças vermelhas no tabuleiro k.

...

– bt(k): número de peças vermelhas ameaçadas pelas pretas.

– rt(k): número de peças pretas ameaçadas pelas vermelhas.


Projetando um sistema de aprendizagem

3 – Representação da função objetivo

– Com isso temos uma V’(b) linear.

– Considerando o tabuleiro como b.


Projetando um sistema de aprendizagem

 Temos:

 Tarefa T: jogar Xadrez.

 Medida de desempenho P: percentual de partidas ganhas.

 Experiência de Treinamento E: partidas jogadas contra si mesmo.

 Função objetivo: V : K  R

 Representação da função:
Projetando um sistema de aprendizagem

4 – Algoritmo para a função de aproximação

– Para aprender a função V’ precisamos de um conjunto de exemplos para


treino.

– Cada exemplo descrevendo um estado K específico do tabuleiro.

– É fácil atribuir valores para estados do tabuleiro correspondentes ao final


do jogo.

– É mais difícil atribuir valores para os numerosos estados intermediários


Conclusão

 Introdução ao processo de aprendizagem.

 Projeto.

 Etapas.
Próxima aula

 Extração de características.

 Pré-processamento.

 Preparação dos dados.


Aula 1.7. Pré-processamento e extração de características
Nesta aula

 Extração de características de um problema.

 Usado para treinamento.

 Importância do pré-processamento dos dados.


Pré-processamento e extração de características

Extração de características
Pré-processamento e extração de características

 Característica: atributo utilizado na descrição de um padrão.

 Padrão: objeto, comportamento ou situação.

 Descrição:

– Padrão pessoa (dados de uma instância).

– Programadora, 1.60 de altura, feminina.

– Analista de testes, 1.75 de altura, masculino.


Pré-processamento e extração de características

 Extrair características é um processo.

 Tem o objetivo de caracterizar objetos.

 Verificar atributos que são:


– Similares para objetos da mesma classe.

– Bastante diferentes para objetos de outras classes.


Pré-processamento e extração de características

 Características devem ser discriminantes e invariantes.

 Objetos devem ser reconhecidos independente da rotação, translação, escala, etc.

 Modelos exigem que as características sejam normalizadas.

 O que caracteriza um avião? E um caminhão?


Pré-processamento e extração de características

 A característica é qualquer medida que se possa extrair de um objeto

– Simbólicas: cor do objeto.

– Numéricas contínuas: peso ou altura do objeto.

– Numéricas discretas: idade.

– Numéricas binárias: determina a presença ou ausência de uma


característica. Possui cabelos longos?
Pré-processamento e extração de características

 Devemos utilizar um pré-processamento.

 Dados podem estar:

– Incompletos.

– Ausência de valores.

– Ruidosos (valores fora do normal – outliers).

– Inconsistentes

 Alguns algoritmos de Machine Learning são mais indicados para determinadas


características.
Pré-processamento e extração de características

Desafios da extração de características

– Quais características?

– Como representá-las?

– Como defini-las de maneira confiável?


Pré-processamento e extração de características

 Extração global:

– Maneira holística.

– Forma como humanos reconhecem objetos.

 Extração local

– Segmentar o objeto em partes menores.

– Identificar a estrutura e então extrair parte do interesse.

 A maioria das coisas é definida por padrões.


Pré-processamento e extração de características

 Método para extração de características é um dos fatores mais importantes em


um sistema.

 Um método determina um subespaço de dimensão m (conjunto das


características).

 A partir de um espaço de dimensão d (representando a cena).

 Sendo m <= d.
Pré-processamento e extração de características

Pré-processamento
Pré-processamento e extração de características

Pré-processamento

 Limpeza dos dados:

– Preencher dados ausentes.

– Remover ruídos (valores absurdos).

– Resolver inconsistências

 Integração e transformação de dados

– Integrar múltiplas bases.

– Dados externos.
Pré-processamento e extração de características

 Normalização e agregação

– Redução do volume de dados.

– Remover redundâncias e dados similares.

– Agregar.

 Para dados numéricos

– Criar categorias de valores possíveis.


Pré-processamento e extração de características

 Clustering (agrupamento)
– Detecção de valores absurdos.

– Valores são organizados em grupos de acordo com as suas características.

– Valores isolados podem ser considerados absurdos (outliers) e eliminados ou


marcados.

 Normalização
– Remover problemas com o uso de unidades distintas entre variáveis

– Variáveis normalizadas de acordo com critérios.


Conclusão

 Importância da extração de características.

 Vantagens de uma extração bem-feita.

 Pré-processamento.
Próxima aula

 Iniciaremos a discussão sobre as técnicas de Aprendizado de Máquina.

 Classificação.
Fundamentos em Aprendizagem de Máquina
Capítulo 2. Técnicas de Aprendizado de Máquina

Prof. João Paulo Nascimento


Aula 2.1. Classificação
Nesta aula

 Conceitos básicos de classificação.

 Aplicação.

 Algoritmos.
Classificação

 Diante de uma base de dados contendo objetos pré-classificados (treino).

 Construir um modelo que seja capaz de classificar automaticamente novos


objetos.

 Em função de suas características.

 Esse modelo é chamado de classificador.


Classificação
Classificação

 A maioria das dificuldades é voltada para problemas de classificação.

 Problemas mais comuns da vida real.

 Classificação é o processo de identificar um modelo (ou função) que descreve


e identifica classes de dados.

 O modelo é derivado com uma base de análise de dados (treino).

 O modelo é utilizado para predizer a classe de um conjunto de dados ainda


não classificado.
Classificação

 A técnica mapeia conjuntos de dados em categorias ou classes.

 De acordo com um modelo criado após o treinamento, com um conjunto de


dados cuja classificação é conhecida.

 Treinamento supervisionado.
Classificação

 Exemplo
Classificação

 Aplicações (classificação):
– Riscos (financeiro).

– E-mails (spam).

– Imagens.

– Doenças.
Classificação

 Algoritmos:
– Árvores de decisão.

– K-Nearest Neighbour.

– Redes neurais.

– Naive Bayes.

– SVM.
Conclusão

 Uma das principais técnicas de Machine Learning.

 Diversos algoritmos.

 Muitas aplicações.
Próxima aula

 Agrupamento (clusters).
Aula 2.2. Agrupamento (clusters)
Nesta aula

 Agrupamento (clusterização).

 Aplicações.
Agrupamento

 Objetivo do agrupamento:
– Dividir automaticamente um conjunto de objetos em grupos (clusters).

– Essa divisão acontece de acordo com algum tipo de relacionamento de similaridade.

– Também conhecido como clustering ou clusterização.

– As classes podem não ser conhecidas.

– Por isso é necessário dividir as instâncias de acordo com suas similaridades.


Agrupamento

 Cada grupo pode ser exclusivo.

 Cada instância pertence a apenas determinado cluster.

 Abordagem probabilística: cada instância possui a probabilidade de pertencer


a cada grupo.

 O algoritmo mais comum é o K-médias.


Agrupamento

Dados não agrupados Dados agrupados


Agrupamento

 Ex.: como dividir os indivíduos abaixo?


Agrupamento

 Ex.: como dividir os indivíduos abaixo?

 Algumas soluções possíveis:


Agrupamento

 Ex.: como dividir os indivíduos abaixo?

 Algumas soluções possíveis (outro exemplo):


Agrupamento

 Ex.: como dividir os indivíduos abaixo?

 Outras divisões: magros x obesos; crianças x adultos; inteligentes e não


inteligentes.

 Clusterização é algo bem subjetivo.


Agrupamento

 Aplicações:
– Identificação de clientes similares (ser mais assertivo ao oferecer novo produto).

– Agrupar pacientes com mesmos sintomas.

– Marketing: identificar público-alvo ou segmento de mercado.

– Classificação de documentos.

– Qualquer aplicação com grande quantidade de dados, baseada em suas


características.
Conclusão

 Importância do agrupamento.

 Técnica amplamente utilizada.

 Importante definir a similaridade.


Próxima aula

 Regressão.
Aula 2.3. Regressão
Nesta aula

 Regressão (conceitos).

 Aplicações.

 Regressão linear e não linear.


Regressão

 Utilizada quando deseja-se prever um valor numérico.

 Geralmente consiste em encontrar uma relação entre um conjunto de dados


de entrada e uma saída numérica.

 Valores são contínuos.


Regressão

 Ex.: determinar o preço de um carro.

 Buscaríamos as características de vários carros (bolinhas


azuis) e os seus preços (linha vermelha).

 Treinaríamos um algoritmo capaz de criar uma relação


entre as características do carro e seu preço.

 Ao final, poderíamos determinar o preço de um novo


carro (bolinhas amarelas) baseado em suas
características.
Regressão

 Aplicações:
– Uma determinada rede de lojas deseja prever qual será a quantidade de vendas de
um produto em um mês com base nas vendas dos anos anteriores.

– Previsão de demanda.

– Previsão do tempo.

– Bolsa de valores.
Regressão

Regressão linear:

 Uma equação para estimar o valor esperado de uma variável y, dados os


valores de algumas variáveis x.
Regressão

Regressão não linear:

 Dados observacionais são modelados por uma função que é uma combinação
não linear dos parâmetros do modelo.

 Depende de uma ou mais variáveis independentes.

 Os dados são ajustados por um método de aproximação sucessiva.


Regressão
Regressão
Conclusão

 Importância da regressão.

 Predição de valores.
Próxima aula

 Reconhecimento de padrões.
Aula 2.4. Reconhecimento de padrões
Nesta aula

 Reconhecimento de padrões.

 Importância.

 Aplicações.
Reconhecimento de padrões

Definições:

 “É uma área de pesquisa que tem o objetivo de classificar objetos (padrões)


em um número de categorias ou classes”.

 “O ato de observar os dados brutos e tomar uma ação baseada na categoria de


um padrão.”
Reconhecimento de padrões
Reconhecimento de padrões

Pode-se:

 Atribuir um padrão a um conjunto desconhecido de classes de padrões


(clustering).

 Identificar um padrão como membro de um conjunto de padrões conhecidos


(classificação).
Reconhecimento de padrões

 Identificação de um suspeito criminal por meio das impressões digitais ou


reconhecimento facial.

 Reconhecimento de uma palavra construída em uma escrita cursiva.

 Reconhecimento de caracteres.

 Classificação de células no sangue.

 Contagem de partículas de matéria (células, bactérias, vírus, etc.).


Reconhecimento de padrões
Reconhecimento de padrões
Conclusão

 Importância do reconhecimento de padrões.

 Aplicações.
Próxima aula

 Sistemas de recomendação.
Aula 2.5. Sistemas de recomendação
Nesta aula

 Funcionamento dos sistemas de recomendação.

 Aplicações.

 Filtragem colaborativa.
Sistemas de recomendação

 Sistemas que procuram auxiliar indivíduos a identificarem conteúdos de


interesses em um conjunto de opções.

 São sistemas que procuram facilitar a atividade de busca por conteúdo


interessante.

 Auxiliam no processo de indicação já existente nas relações sociais.

 Recomendações são feitas muito antes da existência dos sistemas de


informação.
Sistemas de recomendação
Sistemas de recomendação
Sistemas de recomendação
Sistemas de recomendação

 Principal função é analisar os dados de um problema e extrair informações


úteis para futuras predições.

 Muito utilizado em experiências de usuários.


Sistemas de recomendação

Netflix

 Faz recomendações com base na identificação de determinados parâmetros de


produções já assistidas.

 Se você viu um filme de ação até o final, provavelmente gosta da categoria.

 Recomendação com base em um ator de uma produção já assistida pode não


ser uma boa escolha.
Sistemas de recomendação

Netflix.

 Atualmente utiliza um sistema de deep learning.

 Leva em consideração:
– O que o usuário faz.

– Tempo que passa vasculhando determinada categoria.

– Quanto tempo passa na tela de descrição de um vídeo.


Sistemas de recomendação
Sistemas de recomendação

 O sistema de recomendação precisa de, basicamente, duas coisas para poder


funcionar de maneira apropriada:
– Informações sobre as preferências dos usuários.

– Um método para determinar se um dado item é interessante para um usuário.


Sistemas de recomendação

 Coleta de informações (algum método para identificar o usuário).


– Login.

– Cookies.

 Explícita: o usuário indica espontaneamente o que é importante para ele.


Sistemas de recomendação

 Implícita: ações que indicam interesse:

– Inserir uma página nos favoritos.

– Visualizar páginas por longo prazo.

– Movimentos e cliques do mouse.

– Barra de scroll.

– Análise de logs (pages, frequência, localização do usuário, etc.).


Sistemas de recomendação

Filtragem colaborativa (Collaborative Filtering)

 Processo de filtrar informação ou padrões usando técnicas que envolvem


colaboração de múltiplos agentes.

 Pontos de vista, fontes de dados, etc.


Sistemas de recomendação

Filtragem colaborativa (Collaborative Filtering)

 Funciona construindo uma base de dados de preferências para usuários.

 Um novo usuário é comparado nessa base para encontrar seus “vizinhos”.

 Características similares.
Sistemas de recomendação

Filtragem colaborativa (Collaborative Filtering)

 Diversos algoritmos.
– K-nearest Neighbour.

– Algoritmos baseados em clusterização.

– Algoritmos baseados em regressão.


Conclusão

 Desafios:
 Algoritmos atuais buscam dezenas de milhares de vizinhos em tempo real.
Demanda real: dezenas de milhões.

 Aumentar a qualidade das recomendações (confiáveis).


Próxima aula

 Textos.
 Processamento.

 Mineração.
Aula 2.6. Processamento e mineração de textos
Nesta aula

 Processamento e mineração de textos.

 Recuperação da informação.

 Aplicações.
Processamento e mineração de textos

 Considerado uma evolução da área de Recuperação da Informação (R.I.).

 Mineração de textos (Text Mining) é um processo de descoberta do


conhecimento.

 Aplica algoritmos que processam textos e identificam informações úteis e


implícitas.

 Utiliza técnicas de análise e extração de dados a partir de:


– Textos completos.

– Frases.

– Simples palavras.
Processamento e mineração de textos

 Essas informações normalmente não podem ser recuperadas utilizando os


métodos tradicionais de consultas.

 Geralmente estão armazenadas em formato não estruturado.

 Contribuições:
– Busca específica em documentos.

– Análise quantitativa e qualitativa de grandes volumes de textos.

– Melhor compreensão de textos disponíveis em documentos.


Processamento e mineração de textos

 Textos representados por:


– E-mails.

– Arquivos em diferentes formatos (pdf, doc, txt, etc).

– Páginas web.

– Campos textuais de bancos de dados.

– Textos eletrônicos digitalizados de documentos físicos.

 Atualmente a mineração de textos pode ser considerada um sinônimo de


descoberta de conhecimento em textos.
Processamento e mineração de textos

 Processo de mineração de textos.


Processamento e mineração de textos

 Técnicas de Machine Learning que podem ser aplicadas:


– Cadeias de Markov.

– Máquinas de Vetor de Suporte (SVM).

– Naive Bayes.
Processamento e mineração de textos

 Aplicações:
– Coleta da web (Web Crawler).

– Análise de sentimento.

– Inteligência competitiva.

– Suporte e atendimento ao usuário.

– Análise e extração de informações em contratos (vigência, partes, valore, etc.).

– Direito (textos jurídicos, relatórios policiais, depoimentos, etc.).

– Medicina (registros de prontuários não estruturados, pesquisas de doentes, etc.).


Processamento e mineração de textos

 Aplicações. Inteligência competitiva:


Conclusão

 Mineração de textos.
 Termômetro de alguns assuntos na internet.

 Competitividade das empresas.


Próxima aula

 Análise de sentimentos.
Aula 2.7. Análise de sentimentos
Nesta aula

 Análise de sentimentos.

 Mineração de textos.

 Aplicações.
Análise de sentimentos

 Mineração de opinião.

 É evidente o crescimento da quantidade de informações disponíveis na web.

 Além do conteúdo disponibilizado pelas empresas, os usuários também compartilham


suas opiniões e experiências.

 Sites pessoais e redes sociais.

 Usado para entender atitudes, ideias, opiniões ou pensamentos expressos na web.

 Utilizadas pontuações para as análises (Score).


Análise de sentimentos

 A análise de sentimentos visa identificar o sentimento que os usuários apresentam a


respeito de uma entidade de interesse.

– Produto / Empresa.

– Figura pública.

– Um lugar.

 Objetivo: permitir que um usuário obtenha um relatório contendo o que as pessoas


andam dizendo sobre algo.

 Compilado. Sem precisar encontrar e ler todas as informações.

 Termômetro.
Análise de sentimentos
Análise de sentimentos
Análise de sentimentos

 Empresas querem saber como anda a sua reputação. Como está a aceitação de um novo
produto.

 Bolsa de valores.

 Esportes.

 Política.

 Artistas (audiências).

 Doenças (epidemias)

 Criação dos observatórios.


Análise de sentimentos

 Desafios:
– Textos com erros. Sentenças sintaticamente mal formatadas.

– Distinguir se um texto é opinião ou fato. Fatos com opiniões embutidas.

– Textos com sarcasmos e ironias.

– Uso de pronomes para referenciar itens.

– Uso de termos informais da Internet. Ex.: “blz”, “fds”.

– Uso de memes.

– Uso de emoticons.
Análise de sentimentos

 Etapas da análise de sentimentos:

– Coleta de conteúdo (obtenção dos dados).

– Classificação (opinião positiva, negativa ou neutra).

– Sumarização dos resultados (apresentação dos resultados, textuais ou


gráficos).
Conclusão

 É possível ter grandes visões baseadas em informações de análise de


sentimentos.

 Geração de dashboards. Diversas maneiras de visualização.

 Insights interessantes. Reação rápida ao termômetro do mercado.


Próxima aula

 Métodos ensembles.
Aula 2.8. Métodos ensembles
Nesta aula

 Uso de ensembles.

 Classificadores.
Métodos ensembles

 Tomada de decisões.

 Procuramos uma segunda, terceira ou quarta opinião.

 Assuntos médicos, financeiros, sociais, etc.

 Atribuímos valores/pesos para cada uma das opiniões.

 Com uma combinação, espera-se alcançar a opinião mais bem informada de todas.

 Consultar “outros especialistas” é algo presente no comportamento humano.

 Apenas recentemente esse processo foi descoberto pela inteligência computacional.


Métodos ensembles

 Essa técnica tem apresentado bons resultados quando comparada a resultados


de um único especialista.

 Razões:
– Um bom desempenho no conjunto de treinamento não garante um bom
desempenho na generalização.

– Não seguir a recomendação de um único especialista.

– O volume de dados a ser analisado pode ser muito grande para um único
classificador.
Métodos ensembles

 Dividir para conquistar.

 A ideia é de que o sistema adote essa iniciativa.

 O espaço de dados é dividido em porções menores e mais fáceis de aprender


por diferentes classificadores.

 A linha base de fronteira de decisão pode ser aproximada por meio de uma
combinação dos diferentes classificadores.

 Fusão dos dados.


Métodos ensembles

.
.
.
Métodos ensembles
Métodos ensembles
Conclusão

 Uma alternativa para a criação de classificadores mais precisos.

 Deve-se analisar o desempenho da solução.

 Analisar também a taxa de acerto.


Próxima aula

 Introdução às Redes Neurais Artificiais (RNAs).


Fundamentos em Aprendizagem de Máquina
Capítulo 3. Redes neurais

Prof. João Paulo Nascimento


Aula 3.1. Introdução a redes neurais artificiais
Nesta aula

 Conceito de rede neural artificial (RNA).

 Estrutura.

 Formato do neurônio artificial.


Redes neurais

 Redes neurais apresentam um modelo matemático inspirado na estrutura real


de organismos inteligentes.

 Adquirem conhecimento por meio da experiência.

 Podem possuir centenas ou milhares de unidades de processamento.

 Cérebro de um mamífero pode ter bilhões de neurônios.


Redes neurais

 Sistema nervoso formado por células complexas: os neurônios.

 Dendritos: conjunto de terminais de entrada.

 Corpo central.

 Axônios: terminais de saída.


Redes neurais

 Neurônios se comunicam por meio de sinapses.

 Neurônio A recebe impulsos e eles são processados. Ao atingir um dado limiar


da ação, o neurônio A dispara, produzindo substância neurotransmissora.

 Substância flui para o axônio que pode estar conectado a um neurônio B.

 Cérebro humano possui cerca de 1011 neurônios e 1014 sinapses.

 Isso forma uma rede muito complexa.


Redes neurais

O neurônio artificial
Redes neurais

 Rede neural artificial é composta por várias unidades de processamento.

 Essas unidades são conectadas por canais de comunicação associados a pesos.

 Operam apenas sobre seus dados locais, recebidos pelas conexões.


Redes neurais

 Sinais são apresentados à entrada.

 Cada sinal é multiplicado por um peso.

 É feita uma soma ponderada dos sinais que produzem um nível de atividade.

 Se esse nível exceder o limite, a unidade produz determinada resposta de saída.


Redes neurais
 Suponha que temos p sinais de entrada x.

x1, x2, ..., xp

 E pesos w:

w1, w2, ..., wp

 E limitador t, com sinais assumindo valores booleanos e pesos com valores reais.

 Nesse modelo o nível de atividade do neurônio será dado por:

a = w1x1 + w2x2 + ... + wpxp

 A saída y é dada por:

y = 1, se a > = t ou y = 0, se a < t
Redes neurais
 x1, x2, ..., xp

 w1, w2, ..., wp


 t

 a = w1x1 + w2x2 + ... + wpxp

 y = 1, se a > = t ou y = 0, se a < t t

a
Redes neurais

A rede de neurônios
Redes neurais

 Combinando diversos neurônios podemos criar uma RNA (rede neural artificial).

 As entradas (estímulos) podem ser conectadas em diversos neurônios.

 Com isso podemos ter uma série de saídas.

 Rede neural com quatro entradas, duas camadas e duas saídas.


Redes neurais

 A função da conexão é transformar o sinal de saída de um neurônio em um sinal de


entrada em outro.

 Ou gerar um sinal de saída para o mundo externo.

 As diferentes formas de conectar os neurônios podem gerar n números de estruturas


diferentes.
Redes neurais

 Exemplo:
Redes neurais

 As camadas de uma rede neural são classificadas em três grupos:

– Camada de entrada: onde os padrões são apresentados à rede.

– Camadas intermediárias ou escondidas: onde é feita a maior parte do


processamento.

– Camada de saída: onde o resultado final é concluído e apresentado.


Conclusão

 Redes neurais ficaram esquecidas durante muito tempo.

 Atualmente têm muitas aplicações.

 Vários estudos atuais na área.

 Aplicações:
 Robótica;

 Classificação de dados;

 Análise de imagens e voz;

 Avaliação de crédito.
Próxima aula

 Tipos de redes neurais.


Aula 3.2. Tipos de redes
Nesta aula

 Tipos de redes neurais.

 Perceptron de uma e múltiplas camadas.

 Redes Hopfield.
Tipos de redes neurais

 Perceptron com uma camada.

 Desenvolvido por Rosenblatt em 1958.

 Todas as entradas são conectadas diretamente nas saídas.

 Estrutura mais simples de RNA.


Tipos de redes neurais

 Utilizada para classificação de padrões linearmente separáveis.

 O algoritmo computa os erros entre a saída dos dados calculados e a saída


desejada.

 Com isso ajusta os pesos.


Tipos de redes neurais

Perceptron multicamadas.

 Consiste de múltiplas camadas de unidades computacionais.

 Geralmente conectada no formato feedforward.

 Neurônios de uma camada têm conexões com neurônios da próxima camada.


Tipos de redes neurais

 Apresentam um poder computacional muito maior.

 Tratam dados que não são linearmente separáveis.

 Teoricamente as redes com mais de uma camada podem implementar


qualquer função. Linearmente separável ou não.

 Cada camada escondida representa uma função de ativação no espaço de


entradas.

 Uma unidade de saída é vista como uma combinação de funções.


Tipos de redes neurais

 Problema: redes com uma camada resolvem apenas problemas linearmente


separáveis.

 Solução: utilizar mais de uma camada.


Tipos de redes neurais

Perceptron multicamada retropropagation (backpropagation):

 É um algoritmo para treinamento de redes neurais multicamadas.

 Um sinal de erro é calculado na saída da rede e propagado no sentido inverso.

 Camada a camada.

 Ao final os pesos são ajustados de acordo com uma regra de correção de erros.

 Esse tipo de rede pode demandar um longo tempo de treinamento.


Tipos de redes neurais
Tipos de redes neurais

 Rede Hopfield.

 Revolução iniciada por John Hopfield em 1982.

 Rede de camada única com retroalimentação.

 Cada unidade se liga a todas as outras.


Tipos de redes neurais
Conclusão

 Tipos de redes neurais.

 Existem outros tipos.

 Existem combinações.
Próxima aula

 Deep learning.
Aula 3.3. Deep learning
Nesta aula

 Deep learning.

 Funcionamento.

 Aplicações.
Deep learning

 Aprendizagem profunda. Aprendizado estruturado profundo.

 Aprendizado hierárquico.

 Ramo da Machine Learning baseado em um conjunto de algoritmos que


tentam modelar abstrações de alto nível de dados usando um grafo profundo
com várias camadas de processamento.

 Composto de várias transformações lineares e não lineares.


Deep learning
Deep learning

 Treinar redes neurais que realizam o aprendizado de características de forma


hierárquica.

 Características dos níveis mais altos da hierarquia são combinadas com


características de mais baixo nível.
Deep learning

Composição de funções  Pilar do deep learning


Deep learning

 Composição de características.
Deep learning

 Composição de características.

Albert
Einstein
Deep learning

 Com uma única camada oculta é possível aproximar qualquer função contínua
limitada.

 Contando que se possa definir livremente a quantidade suficiente de


neurônios.

 Então por que usar aprendizado profundo?


Deep learning

 A teoria não dá garantias sobre o limite superior da quantidade Q de


neurônios da camada oculta.

 Dependendo do problema, Q pode crescer exponencialmente com o tamanho


de entrada.

 Ex.: Q = 4 para entrada de tamanho 2.

 Q = ? para entrada de tamanho 200?


Deep learning

 Expressividade: é possível modelar uma função altamente não linear formada


por uma hierarquia de funções não lineares mais simples.
Deep learning

 Se temos mais dados, melhor.

 “O que estava errado nos anos 80 é que nós não tínhamos dados
suficientes e também não tínhamos capacidade computacional suficiente”.
Geoffrey Hinton
Deep learning

 Uso da técnica de deep learning:


– Reconhecimento facial.

– Classificação de doenças.

– Diagnóstico de câncer.

– Carros autônomos.

– Visão computacional.

– Processamento de linguagem natural.

– Base do Google Translate e Cortana.


Conclusão

 Deep Learning  alternativa para o processamento de grande


quantidade de dados.

 Uma forma de trabalhar com redes neurais.


Próxima aula

 Algoritmos para Machine Learning.


Fundamentos em Aprendizagem de Máquina
Capítulo 4. Algoritmos de Machine Learning

Prof. João Paulo Nascimento


Aula 4.1. Árvores de decisão
Nesta aula

 Árvores de decisão.

 Funcionamento.

 Utilização.
Árvores de decisão

 Modelos estatísticos que utilizam um treinamento supervisionado para a


classificação e previsão de dados.

 Utilizam a estratégia de dividir para conquistar.

 Um problema complexo é dividido em subproblemas mais simples, onde a técnica


é aplicada.

 São algoritmos de inferência. Pode-se extrair regras do tipo “se-então”.


Árvores de decisão

 Capacidade da técnica vem da divisão do espaço em subespaços.

 Cada um deles é associado a uma classe.


Árvores de decisão

 Exemplo: jogo de tênis.

 Árvore criada para auxiliar na decisão de jogar ou não uma partida de tênis.

 Atributos selecionados:
Árvores de decisão

 Base de treino:
Árvores de decisão
Árvores de decisão

 Cada nó contém um teste em um atributo.

 Cada ramo corresponde a um possível


valor desse atributo.

 Cada nó-folha está associado a uma classe.

 Cada percurso na árvore (raiz até folha)


corresponde a uma regra de classificação.
Árvores de decisão

 Exemplos de aplicações:
– Diagnóstico médico.

– Diagnóstico de equipamentos.

– Análise de crédito.

– Decisões em compra e venda.


Árvores de decisão

 Entropia:
 Grau de pureza de um conjunto.

 É uma medida que caracteriza a aleatoriedade (impureza) de uma coleção arbitrária de


exemplos:

 P+ proporção de exemplos positivos em S.

 P- proporção de exemplos negativos em S.


Árvores de decisão

 A função Entropia com a proporção P+ de exemplos positivos varia entre de 0


e 1.
Árvores de decisão

 Principais algoritmos:

 ID3
– Algoritmo recursivo.

– Baseado em busca exaustiva.

 C4.5
– Usa técnica dividir para conquistar.

– Baseado em busca exaustiva.

– Lida com problemas em que os atributos possuem custos diferenciados.


Árvores de decisão

 CART – Classification and Regression Trees.


– Utiliza pesquisa exaustiva.

– Árvores binárias.
Conclusão

 Amplamente utilizado em sistemas especialistas.

 Inferência.

 Recomendações.

 Decisões.
Próxima aula

 SVM – Support Vector Machines.


Aula 4.2. SVM – Support Vector Machines
Nesta aula

 Algoritmo SVM.

 Aplicações.

 Funcionamento.
SVM

 Proposto em 1995 pelo russo Vladimir Vapnik.

 Método de aprendizado que tenta encontrar a maior margem para separar


diferentes classes de dados.

 Pertence à classe de algoritmos de aprendizado supervisionado.

 Classificação binária.
SVM

 Técnica de aprendizado para problemas de reconhecimento de padrões.

 Vem sendo utilizada com sucesso em problemas de categorização de texto.

 É uma abordagem geométrica para o problema de classificação.

 Cada contexto do conjunto de treinamento pode ser visto como um ponto xi


num espaço RM.

 O aprendizado consiste em dividir os elementos positivos dos negativos nesse


espaço euclidiano.
SVM
SVM

 SVM é um algoritmo binário de classificação.

 Dado pontos de dois tipos, o objetivo do SVN é separar esses dados em dois
grupos.

 O SVM encontrará uma linha reta que separa esses pontos em dois tipos e
situados o mais longe possível desses pontos.
SVM

 Leva em conta um conjunto de dados de entrada.

 Prevê, para cada dado de entrada, duas classes de possíveis formas de saída.

 Como separar essas duas classes?


SVM

 Existem diversas retas que podem ser traçadas para separar os dados.
SVM

 Hiperplano ótimo.

 Encontrado na fase de treinamento.


SVM

 Objetivo: encontrar uma linha de separação (chamada hiperplano) entre duas


classes.

 Essa linha busca maximizar a distância entre os pontos mais próximos em


relação a cada uma das classes.
SVM
 Um método puramente linear para classificar um conjunto pode sofrer dois
problemas comuns:
– Outliers.

– Exemplos rotulados erroneamente.

 Em alguns problemas não é possível separar as classes linearmente.

 Na realidade, a grande maioria dos problemas não é linearmente separável.


SVM

 O SVM foi originalmente concebido para lidar com classificação binária.

 Entretanto, a maior parte dos problemas reais requer múltiplas classes.

 Para se utilizar o SVM em múltiplas classes é preciso transformar o problema


em vários problemas de classes binárias.
Conclusão

 Funcionamento do SVM.

 Muito utilizado na classificação de imagens.


Próxima aula

 KNN.
Aula 4.3. KNN
Nesta aula

 Descrição do KNN.

 Funcionamento.

 Aplicações.
KNN
 K-Nearest Neighbor (KNN).

 Aprendizado supervisionado.

 Um dos algoritmos de classificação mais simples.

 Usado para classificar objetos com base em exemplos de treinamento.


KNN

 Para utilizar o KNN:


– Um conjunto de exemplos de treinamento.

– Definir uma métrica para calcular a distância entre os exemplos de treinamento.

– Definir o valor de K (o número de vizinhos mais próximos que serão considerados).


KNN
KNN

 Dado o conjunto de dados.


KNN

 Os alunos aprovados estão destacados em azul e os reprovados em vermelho.


KNN

 Cálculo das distâncias Euclidiana Quadrada:


KNN

 Identificação dos K registros de referência que apresentam a menor distância


em relação ao novo registro (nesse caso, K = 3):
KNN
KNN
Conclusão

 Funcionamento do KNN.

 Classificação.

 Agrupamento.
Próxima aula

 Algoritmo Naive Bayes.


Aula 4.4. Naive Bayes
Nesta aula

 Naive Bayes.

 Teorema.

 Aplicações.
Naive Bayes

 Classificador probabilístico baseado no “Teorema de Bayes”.

 Criado por Thomaz Bayes (1701-1761). Tentativa de provar a existência de Deus.

 Atualmente muito utilizado na área de Machine Learning.


Naive Bayes

 Classificador Bayes.

 Assume que uma característica particular em uma classe não está relacionada
com a presença de qualquer outro recurso.

 Desconsidera a correlação entre as variáveis.

 Por isso recebe o nome de Naive (ingênuo).


Naive Bayes

 Exemplo:
– Um fruto pode ser considerado uma maçã:

– Se é vermelho.

– Levemente redondo.

– Possuir aproximadamente 3 polegadas de diâmetro.

 Todas essas características contribuem de forma independente para a


probabilidade de que esse fruto seja uma maçã.
Naive Bayes

 O algoritmo não vai levar em consideração a correlação entre essas


características.

 Vai tratar cada um de forma independente.

 Teorema:
Naive Bayes

 P(c | x): probabilidade da classe c, dado o vetor de características x.

 P(x | c): probabilidade do vetor x dada a classe c.

 P(c): probabilidade a priori da classe c.

 P(x): probabilidade a priori do vetor de treinamento x.


Naive Bayes

Exemplo: problema de diagnóstico médico.

 Duas classes possíveis:

– O paciente tem H1N1.

– O paciente não tem H1N1.

 Características disponíveis com um exame de laboratório e dois resultados possíveis:

– + positivo.

– - negativo.

 Conhecimento prévio de que somente 0,008 da população tem essa doença.


Naive Bayes

 Exame aponta um resultado positivo correto em 98% dos casos em que a doença
está presente.

 Exame aponta um resultado negativo em 97% dos casos em que a doença não
esteja presente.
Naive Bayes

 Suponha que um paciente fez o exame e o resultado foi positivo.

 O paciente tem H1N1 ou não?

 Calculando a classe com maior probabilidade:

– P(+ | H1N1) P(H1N1) = 0,98 x 0,008 = 0,0078.

– P(+ | ~H1N1) P(~H1N1) = 0,03 x 0,992 = 0,0298.

– Assim cMap = ~H1N1

– Onde cMap = arg max P(c|x)


Naive Bayes

Outro exemplo:

 Jogo de tênis.

 Tarefa: predizer o valor alvo (sim ou não).

 P(cj | xt) = arg max P(cj | xt).

 Devemos estimar duas probabilidades a posteriori.

 P(cj = yes | xt), P(cj = no | xt)


Naive Bayes

 Atributo alvo: PlayTennis [yes, no].


Naive Bayes

 Exemplo:

– P(yes) = 9 / 14 = 0,643.

– P(no) = 5/14 = 0,357.

 Um vetor de combinações.
Naive Bayes

 Temos que estimar todas as probabilidades condicionais.

 Considerando todas as classes possíveis.

 Todos os vetores de características possíveis.

 72 probabilidades condicionais.

 2 [ 3 x 3 x 2 x 2]

 Outlook (sunny / overcast / rain): 3 valores possíveis.

 Temperature (hot / mild / cool): 3 valores possíveis.

 Humidity (high / normal): 2 valores possíveis.


Conclusão

 Um dos métodos mais práticos.

 Usado quando?

 Disponibilidade de um conjunto de treinamento grande ou moderado.

 Os atributos que descrevem a classe forem independentes, dada a classe.

 Aplicações bem-sucedidas.

 Diagnóstico médico.

 Classificação de documentos textuais.

 Consiste em atribuir o valor alvo mais provável (cMap) dados os valores dos atributos <a1,
a2, ..., an) que descrevem a instância.
Próxima aula

 Principais linguagens e frameworks para Machine Learning.


Fundamentos em Aprendizagem de Máquina
Capítulo 5. Atualidades sobre Machine Learning

Prof. João Paulo Nascimento


Aula 5.1. Principais linguagens e frameworks para
Machine Learning
Nesta aula

 Linguagens de programação.

 Bibliotecas.

 Frameworks.
Linguagens e frameworks

 Diversas linguagens.

 Importância dos algoritmos.

 Algumas mais utilizadas:


– Matlab.

– R.

– Python.

– Java.

– Família C.
Linguagens e frameworks

Principais linguagens de programação para Machine Learning


Linguagens e frameworks

 Bibliotecas C/C++ para Machine Learning:


– MultiBoost.

– Shogun.

– LibSVN.

 Bibliotecas JavaScript para Machine Learning:


– Math.js (rotinas matemáticas).

– Brain.js (redes neurais).

– Natural (processamento de linguagem natural).

– Webdnn (Deep Learning).


Linguagens e frameworks

 Bibliotecas Scala:
– Epic: análise preditiva.

– ScalaNLP: Machine Learning.

– PredictionIO: Machine Learning.


Linguagens e frameworks

Frameworks

 Scikit-Learn:
– Código aberto. Python.

– Inclui diversos algoritmos de classificação, regressão e agrupamento.

– Vasta documentação.

– Grande comunidade e utilizado por diversas empresas.

– Naive Bayes, árvores de decisão, métodos ensembles, KNN e redes


neurais.
Linguagens e frameworks

 Open source.

 Desenvolvido pela Google e destinado a IA.

 Base são as redes neurais.

 Base para o Google Translator, Google Fotos e o próprio buscador.

 Google espera transformar o TF em um padrão aberto no ramo da IA.


Linguagens e frameworks

 Shogun:

 Uma das mais antigas e veneráveis bibliotecas de Machine Learning.

 Nasceu em 1999 e foi escrito em C++.

 Atualmente não se limita apenas a essa linguagem.

 Pode ser usado em ambientes Java, Python, C#, Ruby, Matlab e outras.
Linguagens e frameworks

 Apache Mahout:

 Framework alinhado ao Apache Hadoop.

 Muitos de seus algoritmos podem ser executados fora dessa


plataforma.
Linguagens e frameworks

 MLlib.

 Biblioteca do Apache Spark.

 Java é a linguagem primária.

 Pode-se utilizar Python e Scala.


Linguagens e frameworks

 WEKA:

 Produto da universidade neozelandesa de Waikato.

 Conjunto de algoritmos de aprendizado de máquina.

 Interface gráfica.

 Integração com Hadoop e Spark.


Linguagens e frameworks

 Serviços em nuvem.

 Microsoft Azure.

 Amazon AWS.

 Google Cloud.

 Diversos ambientes prontos.

 Algoritmos.
Conclusão

 Diversas linguagens e frameworks.

 Importância da escolha e aplicação.


Próxima aula

 Aplicações atuais de Machine Learning.


 Big Data.

 IoT.
5.2. Aplicações atuais de Machine Learning (IoT, Big Data,
etc.)
Nesta aula

 Principais aplicações atuais.

 Utilização.

 Futuro.
Aplicações atuais de Machine Learning

 Crescimento da aplicação do Machine Learning:


– Casos reais.

– Big Data.

– Processamento disponível.

– Evolução dos algoritmos.

– Evolução dos modelos.


Aplicações atuais de Machine Learning

 Três pilares da computação:


– Machine Learning.

– Big Data.

– IoT.
Aplicações atuais de Machine Learning

 Exemplos de aplicações que encontramos diariamente:


– Recomendações realizadas por serviços online (Amazon, Netflix, etc.).

– Sistema financeiro.

– Redes sociais.

– Futebol e demais esportes.

– Precificação de produtos.

– Carros autônomos.

– Processamento de vídeos e som.


Aplicações atuais de Machine Learning

 Exemplos de aplicações que encontramos diariamente:


– Diagnóstico médico.

– Tomada de decisões médicas.

– Área do direito.

– Chatbots e assistentes digitais (Siri, Cortana e Amazon Echo).


Aplicações atuais de Machine Learning

 Aplicações preditivas
– Predições evoluem cada vez mais.

– Identificação de tendências.

– Entender os clientes.

– Melhorar o desempenho dos negócios.

– Promover a tomada de decisão estratégica.

– Prever comportamentos.
Aplicações atuais de Machine Learning

 IOT
– Drones (Ex.: análises de tubulações para manutenções).

– Eletrodomésticos inteligentes.

– Automóveis integrados.
Aplicações atuais de Machine Learning

 Um dos impedimentos mais importantes para o Machine Learning é a


legislação.

 A legislação precisa ser atualizada com o que já temos disponível.

 Definir os limites e as atribuições das máquinas.


Conclusão

 Machine Learning, IOT e Big Data. Amplamente utilizados.

 Houve um tempo que a IA ficou estagnada.

 Estamos vivendo uma grande retomada.

Você também pode gostar