Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Inteligência Artificial
Aprendizado de Máquina: Naive Bayes
Professor: Felipe Alberto B. S. Ferreira (felipe.bsferreira@ufrpe.br)
mailto:felipe.bsferreira@ufrpe.br
Aprendizado de Máquina
§ Até agora: como usar um modelo para tomar decisões ótimas
§ Aprendizado de máquina: como obter um modelo através de dados 
/ experiência
§ Aprender parâmetros (ex.: probabilidades)
§ Aprender estruturas (ex.: redes bayesianas)
§ Aprender conceitos (ex.: segmentação, clusterização, redes neurais)
§ Hoje: classificação baseada em modelo com Naive Bayes
Classificação
Exemplo: Filtro de Spam
§ Entrada: um e-mail
§ Saída: sim / não
§ Configuração:
§ Obtenha uma grande quantidade de exemplos de e-
mails, cada um classificado corretamente (label)
§ Nota: alguém precisa fazer isso manualmente!
§ Deseja-se aprender a classificar (predizer a label) 
futuros novos e-mails
§ Características (features): atributos usados para 
decidir entre spam ou não
§ Palavras: FREE!
§ Padrões textuais: R$dd, CAPS
§ Não-textual: SenderInContacts, WidelyBroadcast
§ …
Caro Senhor.
Primeiro, eu gostaria de solicitar sua
discrição nesta transação, devido sua
natureza confidencial e secreta...
VOCÊ FOI SORTEADO PARA GANHAR 
UM PRÊMIO DE R$ 100,00 POR TER 
SIDO O 100º VISITANTE EM NOSSO 
WEBSITE HOJE! PARA OBTER SEU 
PRÊMIO RESPONDA ESTÁ MENSAGEM 
COM SEUS DADOS BANCÁRIOS!
Bom dia! Lembra daquela reunião de de 
amanhã? Ela foi adiada para a semana
seguinte, no mesmo horário. Você
estará disponível?
Exemplo: Reconhecimento de Dígitos
§ Entrada: imagem / matriz de pixels
§ Saída: um dígito de 0-9
§ Configuração:
§ Obtenha uma grande coleção de imagens, cada uma classificada
com um dígito de 0-9
§ Nota: alguém deve fazer esse processo manualmente!
§ Deseja-se aprender a classificar futuras novas imagens de dígitos
§ Características (features): atributos usados para decidir
entre os dígitos
§ Pixels: (6,8)=ON
§ Padrões de formato: NumComponentes, AspectRatio, NumLoops
§ …
0
1
2
1
??
Exemplo: Classificação de Flores de Íris
§ Entrada: dados tabulares
§ Saída: espécie (setosa, versicolor, virgínica)
§ Configuração:
§ Obtenha uma grande quantidade de linhas de dados, cada uma
classificada com uma espécie de íris
§ Nota: alguém deve fazer esse processo manualmente!
§ Deseja-se aprender a classificar futuras linhas de dados
§ Características (features): atributos usados para decidir a
espécie da flor
§ Comprimento e largura da sépala, comprimento e largura da pétala
Outros Problemas de Classificação
§ Classificação: dadas entradas x, predizer labels (classes) y
§ Exemplos:
§ Diagnóstico médico (entradas: sintomas,
classes: doenças)
§ Detecção de fraude (entrada: atividade bancária,
classes: fraude / não fraude)
§ Pontuação automática (entrada: prova,
classes: notas)
§ Identificação de emoções
§ Língua em um texto
§ … muitos outros
§ Classificação é uma tecnologia comercial importante!
Classificação Baseada em Modelo
Classificação Baseada em Modelo
§ Abordagem baseada em modelo
§ Construir um modelo (ex, rede Bayesiana) 
em que a saída (labels) e as entradas são
variáveis aleatórias
§ Instancie todas as variáveis observadas
(características)
§ Consulte pela distribuição da saída
condicionada às características
§ Desafios
§ Qual estrutura a rede deve ter?
§ Como devemos aprender os parâmetros?
Naïve Bayes para Dígitos
§ Naïve Bayes: Assume que todas as features são efeitos independentes da saída
§ Versão simples para reconhecimento de dígitos
§ Uma feature (variável) Fij para cada pixel <i,j>
§ Valores das features são on / off (1 / 0), baseada se a intensidade de cinza
é maior ou menor que 0.5
§ Cada entrada é mapeada para um vetor de características, ex.:
§ Muitos atributos, cada um valorado de forma binária
§ Naïve Bayes model:
§ O que precisamos aprender?
Y
F1 FnF2
Naïve Bayes Geral
§ Um modelo Naive Bayes geral:
§ Precisamos especificar como cada atributo depende da classe
§ Número total de parâmetros é linear em n
§ Modelo bastante simples, mas funciona em muitos cenários
Y
F1 FnF2
n x |F| x |Y| parâmetros|Y| x |F|n valores
Inferência em Modelos Naïve Bayes
§ Objetivo: calcular a distribuição posterior sobre a variável Y
§ Passo 1: obtenha a probabilidade conjunta da saída e das evidências
para cada classe (label)
§ Passo 2: Some para obter a probabilidade da evidência
§ Passo 3: Normalize para obter a probabilidade da saída dadas
dadas as evidências
+
Naïve Bayes Geral
§ O que precisamos para usar o modelo Naïve Bayes?
§ Método de inferência
§ Inicie com as tabelas de probabilidade: P(Y) e P(Fi|Y)
§ Use um algoritmo de inferência para obter P(Y|F1…Fn)
§ Nada de novo nesta etapa
§ Estimativa das tabelas de probabilidade condicional
§ P(Y), probabilidade a priori das classes
§ P(Fi|Y) para cada atributo (variáveis de evidência)
§ Essas probabilidades são chamadas de parâmetros do modelo e são
denotadas por q
§ Até agora, assumimos que essas tabelas eram dadas, mas…
§ …elas são tipicamente obtidas de um conjunto de dados de treino: iremos
ver isto em breve
Exemplo: Probabilidades Condicionais
1 0.1
2 0.1
3 0.1
4 0.1
5 0.1
6 0.1
7 0.1
8 0.1
9 0.1
0 0.1
1 0.01
2 0.05
3 0.05
4 0.30
5 0.80
6 0.90
7 0.05
8 0.60
9 0.50
0 0.80
1 0.05
2 0.01
3 0.90
4 0.80
5 0.90
6 0.90
7 0.25
8 0.85
9 0.60
0 0.80
Naïve Bayes para Texto
§ Naïve Bayes:
§ Atributos: Wi é a palavra na posição i
§ Predizer label (spam vs. não-spam) condicionada nas variáveis
§ Assumir que os atributos são condicionalmente independentes dada a classe
§ Novo: cada Wi é identicamente distribuída
§ Modelo:
§ Normalmente, cada variável tem sua própria distribuição P(F|Y)
§ Em um modelo chamado “bag-of-words”:
§ Cada posição é identicamente distribuída
§ Todas as posições compartilham as mesmas probabilidades P(W|Y)
§ Porque ter esta premissa?
§ O modelo insensível a ordem das palavras
Palavra na
posição i, não i-
ésima palavra do 
dicionário!
Exemplo: Filtro de Spam
§ Modelo:
§ Quais são os parâmetros?
§ De onde vem estas tabelas?
the : 0.0156
to : 0.0153
and : 0.0115
of : 0.0095
you : 0.0093
a : 0.0086
with: 0.0080
from: 0.0075
...
the : 0.0210
to : 0.0133
of : 0.0119
2002: 0.0110
with: 0.0108
from: 0.0107
and : 0.0105
a : 0.0100
...
no-spam : 0.66
spam: 0.33
Exemplo: Filtro de Spam
Word P(w|spam) P(w|not) Tot Spam Tot Not
(prior) 0.33333 0.66666 -1.1 -0.4
Gary 0.00002 0.00021 -11.8 -8.9
would 0.00069 0.00084 -19.1 -16.0
you 0.00881 0.00304 -23.8 -21.8
like 0.00086 0.00083 -30.9 -28.9
to 0.01517 0.01339 -35.1 -33.2
lose 0.00008 0.00002 -44.5 -44.0
weight 0.00016 0.00002 -53.3 -55.0
while 0.00027 0.00027 -61.5 -63.2
you 0.00881 0.00304 -66.2 -69.0
sleep 0.00006 0.00001 -76.0 -80.5
P(spam | w) = 98.9
Naïve Bayes para Dados Tabulares
§ Naïve Bayes:
§ Atributos (matriz): Cada coluna é um atributo diferente (variável aleatória)
§ Saída (vetor): Uma coluna específica define a saída (classe)
§ Iris Data Set:
§ Estimativa para dados contínuos (Gaussian Naive Bayes):
Y
F1 F4F2
Comprimento
da sépala (cm)
Largura da 
sépala (cm)
Comprimento 
da pétala (cm)
Largura da 
pétala (cm)
5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
Classificação
Setosa (0)
Versicolor (1)
Virgínica (2)
F3
𝑃 𝑓!|𝑦 =
1
2𝜋𝜎"#
exp −
𝑓! − 𝜇"
#
2𝜎"#
Treinamento e Teste
Minimização Empírica de Riscos
§ Minimização empírica de riscos
§ Princípio básica de aprendizado de máquina
§ Queremos que o modelo (classificador, etc) que tenha melhor desempenho na
distribuição real de teste
§ Não conhecemos a distribuição real então selecionamos o melhor modelo com base 
no conjunto de treino
§ Encontrar o “melhor” modelo é por si só um problema de otimização
§ Preocupação: super-adaptação ao conjunto de treino (overfitting)
§ Melhor com mais dados (menor variância, mais próximo do conjunto de teste)
§ Melhor se limitarmos a complexidade da nossa hipótese (regularização e/ou espaço
reduzido de hipóteses)
Conceitos Importantes
§ Dados: instâncias classificadas (ex.: emailcomo spam ou não)
§ Conjunto de treinamento
§ Conjunto de validação
§ Conjunto de teste
§ Atributos: pares de atributos/classe que caracterizam cada
indivíduo no conjunto de dados
§ Ciclo de experimentação
§ Aprenda os parâmetros (ex.: probabilidades do modelo) no 
conjunto de treinamento
§ (Aprimore os hiperparâmetros no conjunto de validação)
§ Calcule o desempenho no conjunto de teste
§ Muito importante: nunca use os dados de teste na etapa de 
treinamento!
§ Avaliação (muitas métricas possíveis)
§ Acurácia: fração de instâncias classificadas corretamente
§ Overfitting e generalização
§ Queremos um classificador que se saia bem no conjunto de teste
§ Overfitting: modelo super-adaptado (decorado) ao conjunto de 
treino, mas pouca generalização
Dados de 
Treinamento
Dados de
Validação
Dados de
Teste
Generalização e Overfitting
0 2 4 6 8 10 12 14 16 18 20
-15
-10
-5
0
5
10
15
20
25
30
Polinômio de 15º grau
Overfitting
Exemplo: Overfitting
2 vence!!
Exemplo: Overfitting
§ Probabilidade relativas:
south-west : inf
nation : inf
morally : inf
nicely : inf
extent : inf
seriously : inf
...
O que houve de errado?
screens : inf
minute : inf
guaranteed : inf
$205.00 : inf
delivery : inf
signature : inf
...
Estimativa de Parâmetros
Estimativa de Parâmetros
§ Estimando a distribuição de uma variável aleatória
§ Elicitação: perguntar a um especialista (pouco prático?)
§ Empiricamente: use os dados de treino (aprendendo!)
§ Ex.: para cada resultado x, encontre sua taxa empírica:
§ Esta é a estimativa que maximiza a probabilidade dos dados
r r b
r b b
r bb
rb br bb
r
b
b
Máxima Probabilidade
§ Frequências relativas são estimativas de Máxima Probabilidade
Suavização
Eventos Não Observados
Suavização de Laplace
§ Estimativa de Laplace:
§ Imagine que você observou cada
resultado mais vezes do que você de 
fato viu
r r b
Suavização de Laplace
§ Estimativa de Laplace
§ Imagine que você viu cada resultado k vezes a 
mais
§ Laplace com k = 0?
§ k é a força da probabilidade a priori
r r b
Tuning (Refinamento)
Tuning nos Dados de Validação Held-Out Data
§ Agora temos dois tipos de valores
desconhecidos
§ Parâmetros: as probabilidades P(X|Y), P(Y)
§ Hiperparâmetros: ex.: quantidade de 
suavização, k
§ Como proceder?
§ Aprender os parâmetros dos dados de 
treino
§ Refinar os hiperparâmetros em um conjunto 
diferente. Porquê?
§ Para cada conjunto de hiperparâmetros, 
treine e teste nos dados de validação
§ Escolha o melhor conjunto de valores e 
teste no conjunto final de teste
Referência
§ Stuart RUSSEL e Peter NORVIG, Inteligência Artificial. 3ª ed.
§ Capítulo 20 (seções 20.1 a 20.2.2)

Mais conteúdos dessa disciplina