Objetivo da aprendizagem
Conhecimento em extensão
(exemplos percepção-ação,
características-conceitos, etc.)
Exemplos
dia 29, a Caxangá estava engarrafada
dia 30, a Caxangá estava engarrafada
dia 01, a Caxangá estava engarrafada
dia 03, a Caxangá estava engarrafada
Conhecimento em intenção
(regras definições.)
Hipótese indutiva
Todo dia, a Caxangá está engarrafada
Geber Ramalho
1
Aprendizado indutivo
Inferência de uma regra geral (hipótese) a partir
de exemplos particulares
• ex. trânsito na caxangá
Precisão diretamente proporcional à quantidade
de exemplos
É uma inferência que “preserva a falsidade”
Pode ser
• incremental: atualiza hipótese a cada novo exemplo
– mais flexível, situada... Porém a ordem de apresentação
é importante (backtracking)
• não incremental: gera h a partir de todo conjunto de
exemplos
– mais eficiente e prática
Geber Ramalho
2
2 Abordagens típicas em
aprendizagem simbólica
Árvores de decisão: inductive decision trees (ID3)
•
•
•
•
Lógica de ordem 0+ (atributo/valor)
Fáceis de serem implementadas e utilizadas
aprendizagem não incremental
estatística (admite exceções)
Espaço de versões (Version space)
•
•
•
•
lógica de primeira ordem & resolução
implementação mais complicada
aprendizagem incremental
indução lógica unicamente
Geber Ramalho
3
Árvore de Decisão
A partir de um conjunto de propriedades, decide
sim ou não
Exemplo Soparia (by Carlos Figueira)
• predicado-objetivo: vaiASoparia
• Atributos considerados:
– Sono: Estou com sono?
– Transporte: Tenho como ir de carro? Carona? etc.
– CONIC: Devo estar amanhã cedo no CONIC?
– Álcool: Estou precisando de álcool?
– Sair: Quero sair de casa?
– Fome: Estou com fome?
Geber Ramalho
4
Árvore de Decisão “pensada”
valores
atributo
Sono?
Não.
Sim.
Meio de
transporte?
Carona
CONIC?
Precisa de
álcool?
Sim.
Geber Ramalho
Não.
Não.
CONIC?
Sim.
Não.
Quer sair?
Sim.
Não.
5
ID3: exemplos da soparia
Atributos: (Sono, Transporte, CONIC, Álcool, Sair,
Fome)-> propriedade-objetivo
•
•
•
•
•
•
•
•
•
•
•
•
E01: (Pouco,Carro,Sim,Sim,Não,Sim) -> Sim!
E02: (Pouco,Carona,Não,Não,Sim,Sim) -> Sim!
E03: (Sim,Carro,Não,Sim,Sim,Sim) -> Não.
E04: (Pouco,Carona,Não,Não,Sim,Não) -> Sim!
E05: (Sim,Outros,Sim,Sim,Sim,Não) -> Não.
E06: (Pouco,Outros,Não,Sim,Não,Sim) -> Não.
E07: (Pouco,Carro,Sim,Não,Sim,Sim) -> Sim!
E08: (Pouco,Carona,Não,Não,Não,Sim) -> Não.
E09: (Sim,Carro,Não,Sim,Sim,Não) -> Não.
E10: (Não,Outros,Sim,Sim,Sim,Sim) -> Sim!
E11: (Não,Carro,Não,Sim,Sim,Não) -> Sim!
E12: (Não,Carona,Não,Sim,Sim,Sim) -> Sim!
Geber Ramalho
6
ID3: conceitos
Classificação
• aplicação do predicado objetivo p a um exemplo
Exemplo positivo (ep) e exemplo negativo (en)
• p(ep) = verdadeiro, p(en) = falso
Conjunto de treinamento
• positivos + negativos
Objetivo da aprendizagem
• gerar a descrição d de p segundo os atributos dados
• d deve ser consistente (cobre todos positivos e exclui
todos negativos) e preditiva/geral (vai além da
memorização)
• d deve ser a mais simples possível (navalha de
Ockahm)
Geber Ramalho
7
ID3: construção da árvore
Escolha do melhor atributo
• O que discrimina o maior número de exemplos
• Maior ganho de informação (entropia)
Candidatos:
• Transporte: Não classifica imediatamente nenhum dos
exemplos
• Sono: Classifica de imediato 6 dos 12 exemplos
• ...
Geber Ramalho
8
Exemplo: atributo transporte
+:E01,E02,E04,E07,E10,E11,E12
- :E03,E05,E06,E08,E09
Transporte?
carro
+: E01,E07,E11
-: E03,E09
Geber Ramalho
carona
+: E02,E04,E12
-: E08
outros
+: E10
-: E05,E06
9
Exemplo: atributo sono
+:E01,E02,E04,E07,E10,E11,E12
- :E03,E05,E06,E08,E09
Sono?
sim
+: - - -: E3, E5, E9
Geber Ramalho
pouco
+: E1,E2,E4, E7
-: E6,E8
não
+: E10,E11,E12
-: - - -
10
Cálculo do ganho de informação
Ganho(A) = I p/p+n, n/p+n - vi=1(pi+ni)/(pi+ni) I pi/pi+ni, ni/pi+ni
I p/p+n, n/p+n = -p/(p+n) (log2 p/(p+n)) - n/(n+p) (log2 n/(p+n))
Onde
A = atributo
p = positivo
n = negativo
ID3: Algoritmo de aprendizagem
function APRENDIZAGEM_DA_ID3(exemplos,atributos,default) :
árvore de decisão
if (exemplos é vazio) then return default;
else if (todos os exemplos têm a mesma classificação)
then return (a classificação);
elseif (atributos é vazio) then return maioria(exexmplos);
else
melhor <- ESCOLHA_MELHOR_ATRIBUTO(atributos,exemplos);
árvore <- nova árvore com raiz “melhor”;
para cada valor vi de melhor faça
exemplosi <- exemplos onde melhor = vi;
subárvore <- APRENDIZAGEM_DA_ID3(exemplosi,
atributos-{melhor}, maioria(exemplos));
adicione subárvore como um ramo à árvore com
rótulo vi;
return arvore;
Geber Ramalho
12
Árvore de Decisão “Induzida”
+: E1,E2,E4,E7,E10,E11,E12
-: E3, E5, E6, E8, E9
Sono?
+: - - -: E3, E5, E9
Não.
+: E1,E2,E4, E7
-: E6,E8
+: E10,E11,E12
-: - - -
Meio de
transporte?
Sim.
Carona
+: E1,E7
-: - - -
Sim.
Geber Ramalho
+: E2,E4
-: E8
+: - - -: E6
Quer sair?
+: E2,E4
-: - - -
+: - - -: E8
Sim.
Não.
Não.
13
Regras
É possível mostrar o resultado como regras
lógicas
• toma-se as folhas com conclusão positiva e sobe-se
até a raiz
Exemplos:
• t Sono(Não,t) VaiASoparia(t)
• t Sono(Pouco,t) Transporte(Carro,t)
VaiASoparia(t)
• t Sono(Pouco,t) Transporte(Carona,t)
QuerSair(Sim,t) VaiASoparia(t)
Geber Ramalho
14
Problemas c/ ID3: Expressividade
Só pode tratar de um único objeto
• t Sono(Não,t) VaiASoparia(t)
• t Sono(Pouco,t) Transporte(Carro,t) VaiASoparia(t)
Mais de um... não dá com eficiência
• Ex: “se posso ficar mais indisposto mais tarde, eu vou
logo à soparia”
• t1t2 MesmoDia(t1,t2) Disposição(t1,d1)
Disposição(t2,d2) Maior (d1,d2) VaiASoparia(t)
• alternativa: atributo possoFicarMaisIndisposto(t)
Geber Ramalho
15
Problemas c/ ID3: Expressividade
Exemplo: Goal predicate = BomPesquisador (x)
Como tratar atributos multi-valorados?
• Filiação(José, {USP, Unesp})
Como tratar atributos numéricos?
• Tem entre 45 e 52 anos
Como tratar listas ordenandas?
• Formação = {graduação, mestrado, doutorado, pós}
Como inserir conhecimento a priori?
BR
• Hierarquias conceituais
NE
Geber Ramalho
PE
PB
Norte
AL
CE
16
Problemas gerais: ambigüidade
Ambigüidade:
• Dois ou mais exemplos com a mesma descrição (em
termos de atributos) mas classificações diferentes
Causas:
• Ruído
• Atributos insuficientes
Soluções:
• tratamento estatístico
• indução construtiva
• etc.
Geber Ramalho
17
Problemas gerais: overfitting
Overfitting (hiper-especialização):
• Evitar encontrar uma “regularidade” muito restrita nos
dados
Soluções:
• validação cruzada
• poda
Geber Ramalho
18
Validação Cruzada
Serve para evitar overfitting e para averiguar
robustez dos resultados
Algoritmo
1) Divide o conjunto de exemplos em dois subconjuntos: conjuntos de treinamento (TR) e de teste
(TE)
2) Usa indução para gerar hipótese H sobre TR
3) Mede percentagem de erro de H aplicada à TE
4) Repete passos 1-3 com diferentes tamanhos de TE e
TR, e tendo elemento escolhidos aleatoriamente
Treinamento
Geber Ramalho
Teste
19
Curva de aprendizagem
Geber Ramalho
20
Exemplos Práticos
GASOIL
• Sistema de separação de gás-óleo em plataformas de
petróleo
• Sistema de 10 pessoas-ano se baseado em regras
• Desenvolvido em 100 pessoas-dia
Piloto automático de um Cessna
• Treinado por três pilotos
• Obteve um desempenho melhor que os três
Mineração de dados
Recuperação de Informação
Geber Ramalho
21
Aprendendo descrições lógicas
Version space
Geber Ramalho
Aprendendo descrições lógicas
Dado o Predicado objetivo (unário) P, a tarefa é
• encontrar uma expressão lógica C, equivalente a P, que
classifique os exemplos corretamente
• Hipótese (Hi) Definição Candidata (Ci)
• x P(x) Ci(x)
• é uma dedução!!!!
Exemplos
Hr: r VaiEsperar(r) Pessoas(r, Algumas)
(Pessoas(r,Cheio) Fome(r) Tipo(r,Francês))
(Pessoas(r,Cheio) Fome(r) Tipo(r,Tailandês)
Sex/Sab(r))
HS: t VaiASoparia(t) Sono(Não,t)
(Sono(Pouco,t) Transporte(Carona,t) Conic(Sim,t))
Geber Ramalho
23
Aprendendo descrições lógicas (2/3)
O que é um exemplo (Xi)?
• objeto em que o predicado objetivo p pode ou não se
aplicar
representação
• exemplo positivo: Di(Xi) P(Xi)
• negativo: Di(Xi) P(Xi)
Por exemplo...
• Pessoas(X1,Cheio) Fome(X1) Tipo(X1,Tailandês)
Sex/Sab(X1) VaiEsperar(X1)
Geber Ramalho
24
Aprendendo descrições lógicas (3/3)
O que é aprender?
• processo de busca por uma boa hipótese Hi no
espaço de hipóteses H
Idéia:
• reduzir conjunto de hipóteses H1 H2 ... Hn
testando a consistência através de inferência
(dedução) lógica
• Direção: top-down (geral específico) ou bottom-up
(específico geral )
Problema
• tamanho do espaço de hipóteses
Geber Ramalho
25
Hipóteses...
Exemplo1 +
Exemplo 2 +
Existe um polígono
Existe um polígono hachurado
Existem dois objetos, um sobre o outro
Existem dois objetos & o inferior é um polígono
Existem dois objetos & o inferior está hachurado
Existem dois objetos, dos quais um é um quadrado
....
Geber Ramalho
26
Consistência
Um exemplo pode ser:
• falso negativo - Se a hipótese diz que deveria ser
negativo mas de fato é positivo
• falso positivo - Se a hipótese diz que deveria ser positivo
mas de fato é negativo
Por exemplo...
• Diante de Hs:
– t Sono(Pouco,t) Transporte(Carona,t) vaiASoparia(t)
• O exemplo E08:
– Sono(Pouco,t1) Transporte(Carona,t1) Conic(Não,t1)
Alcool(Não,t1) Sair(Não,t1) Fome(Sim,t1)
VaiASoparia(t)
• é um falso positivo
Geber Ramalho
27
Busca no espaço de hipóteses
Existem duas soluções para o problema da
complexidade da busca no espaço de hipóteses
1) busca pela melhor hipótese corrente
2) busca de engajamento mínimo
Geber Ramalho
28
Busca pela melhor hipótese corrente
(Current-best-hypothesis Search)
Manter uma hipótese única, e ajustá-la quando um
novo exemplo chega a fim de manter a consistência:
Generalizando e especializando
hipótese
inicial
Falso
negativo
Hipótese muito
restritiva
Generalização
Falso
positivo
Hipótese muito
permissiva
Especialização
Generalização/especialização
(H1 C1) (H2 C2) (H1 mais geral que H2)
• x C2(x) C1(x)
• define indução por meio da dedução para usar o poder da
lógica
Importante: generalização/especialização podem
ser operações sintáticas
• variabilizar/instanciar de uma constante/variável
– Conic(Sim) Conic(x)
• adicionar/retirar condições: conjunções ou disjunções
– Conic(Sim) Fome(Sim) Fome(Sim)
– Conic(Sim) Fome(Sim) Fome(Sim)
Geber Ramalho
30
Exemplo do restaurante (aima pag. 534)
Alt = alternativo?
Hun = fome?
Rain = chove?
Geber Ramalho
Bar = tem área de bar?
Pat = vagas livres?
Res = fez reserva?
Fri = é sex ou sábado?
Price = preço?
Est = tempo de espera
31
Exemplos
positivos: X1, X3, X4; negativo: X2
X1: exemplo inicial
• H1: x VaiEsperar(x) Alternativo(x)
X2: falso +
• H2: x VaiEsperar(x) Alternativo(x)
Pessoas(x,Alguma)
X3: falso -
• H3: x VaiEsperar(x) Pessoas(x,Alguma)
X4: falso -
• H4: x VaiEsperar(x) Pessoas(x,Alguma)
(Pessoas(x,Cheio) Sex/Sab(x))
Problema: backtracking
Geber Ramalho
32
Busca de menor engajamento
(Least-Commitment Search)
Espaço de hipóteses: H1 H2 H3 ... Hn
Solução 2:
• Ao invés de uma hipótese, eliminamos unicamente
aquelas inconsistentes com os exemplos até o
momento.
• Assim, cercamos (encurralamos) incrementalmente as
hipóteses boas
• Este conjunto de hipóteses consistentes restantes
chama-se Espaço de Versões.
Dois conjuntos consistentes de hipóteses
• G-set borda mais geral
• S-set borda mais específica
Geber Ramalho
33
Região Inconsistente
G1
G2
G3
...
S2
S3
...
Gn
consistente
Mais Geral
S1
Mais Específico
Região Inconsistente
Sn
Propriedades
Toda hipótese consistente é mais específica do que algum
membro do G-set e mais geral que algum membro do Sset (ninguém está fora)
Toda hipótese mais específica que algum membro do Gset e mais geral que algum membro do S-set é uma
hipótese consistente (não há buracos)
Como atualizar G-set e S-set?
• S-set
– falso+ -> fora
– falso- -> generalizar
(não pode mais especializar)
• G-set
– falso+ -> especializar
– falso- -> fora
Geber Ramalho
(não pode mais generalizar)
35
Exemplo (parte 1)
exemplo
1
2
3
4
5
restaurante
tonho
makro
tonho
club
tonho
[?, ?, ?, ?]
refeicao
Café
Almoço
Almoço
Café
Café
dia
Quinta
Quinta
Sábado
Domingo
Domingo
Custo
Barato
Caro
Barato
Barato
Caro
reação
sim
não
Sim
Não
não
Ex1+: [tonho,café,quinta,barato]
G-set
Ex2-: [macro,almoço,quinta,caro]
[tonho,café,quinta,barato]
S-set
Exemplo (parte 2)
[?, ?, ?, ?]
[tonho, ?,?,?] [?,café,?,?] [?,?,?,barato]
[tonho,café,quinta,barato]
Ex1+: [tonho,café,quinta,barato]
Ex2-: [makro,almoço,quinta,caro]
Ex3+: [tonho,almoço,sábado,barato]
Exemplo (parte 3)
[?, ?, ?, ?]
[tonho, ?,?,?]
[?,?,?,barato]
[tonho,?,?,barato]
Ex1+: [tonho,café,quinta,barato]
Ex2-: [makro,almoço,quinta,caro]
Ex3+: [tonho,almoço,sábado,barato]
[tonho,café,quinta,barato]
Ex4-: [club,café,domingo,barato]
Exemplo (parte 4)
[?, ?, ?, ?]
[tonho, ?,?,?]
[?,?,?,barato]
[tonho,?,?,barato]
[tonho,?,?,barato]
[tonho,café,quinta,barato]
Ex1+: [tonho,café,quinta,barato]
Ex2-: [makro,almoço,quinta,caro]
Ex3+: [tonho,almoço,sábado,barato]
Ex4-: [club,café,domingo,barato]
Ex5-: [tonho,café,domingo,caro]
Questões
Como garantir que o algoritmo de aprendizagem
pode funcionar bem nos exemplos futuros?
Caso não haja garantia, como saber que ele tem
alguma utilidade?
Aprender regras tudo bem, mas e se elas não
existirem?
Geber Ramalho
40