Aprendizagem de Máquina
O que é Aprendizagem?
A psicologia costuma definir a aprendizagem como uma
mudança relativamente permanente no conhecimento ou no comportamento produzido pela experiência.
Em resumo dizemos que faz parte da aprendizagem:
Memorizar qualquer coisa
Aprender fatos através da observação e exploração
Melhorar capacidades cognitivas e/ou motoras através da
prática
Aprendizagem de Máquina
•
Projeto de sistemas convencionais
Formular um modelo a partir de requisitos do sistema,
informados por um especialista.
Construir o sistema utilizando o modelo
•
Projeto de aprendizagem de máquina
Formular modelo matemático a partir de observações do
ambiente
Baseado apenas nos dados observados do ambiente
Extrair o conhecimento intrínseco aos dados. Generalizar conceitos a partir dos dados
Conjunto de dados
Conjunto de dados:
Percepções do ambiente x ações a serem tomadas
Tamanho depende da complexidade dos dados
Quanto maior a complexidade, maior a quantidade
necessária
Pré-processamento dos dados
Dados numéricos
Presença de valores em todos os campos
Balanceamento entre os dados do domínio (percepções) e
Pré-processamento dos dados
Conversão de valores simbólicos para valores
numéricos
Quando os valores não apresentam ordenação
Vetores de valores binários, cada um com um elemento igual a
1 e os demais iguais a 0
Tamanho do vetor igual ao número de valores diferentes
Quando os valores apresentam ordenação
Codificar cada valor por um número real
Codificar cada valor por um vetor binário, utilizando
Pré-processamento dos dados
Estimativa de valores ausentes
Média de todos os valores do mesmo campo Média entre anterior e posterior
Criação de um novo valor
Normalização de valores numéricos
Normalizar cada campo individualmente
Assegurar que todos os valores de um dado campo
Criação de conjuntos de dados
Dividir o conjunto de dados em:
Subconjunto de treinamento (50% dos dados)
Necessidade de manter uniformidade pode reduzir proporção
Subconjunto de validação (25% dos dados) Subconjunto de teste (25% dos dados)
Dividir dados aleatoriamente entre os conjuntos
Conjuntos devem ser disjuntos
Repetir o processo acima várias vezes
Criando vários conjuntos, cada um com subconjuntos de
Paradigma de Aprendizado
Supervisionado
•
Envolve o aprendizado de uma função a partir de
exemplos de suas entradas e saídas
•
Um agente percebe o ambiente, atua nesse ambiente e
um agente externo (professor) indicará como foi o
desempenho desse agente (onde errou ou se a ação
escolhida foi correta)
•
Para a utilização desse paradigma, os dados utilizados
durante a fase de aprendizagem devem:
Conter as características (percepções do
ambiente)
A ação ideal a ser tomada (que será utilizada
Paradigma de Aprendizado por Reforço
•
O aprendizado ocorre pelo processo de tentativa e erro. O
agente aprende baseado no estimulo recebido por cada
ação executada.
Procura maximizar sinal de reforço
•
Se ação tomada por sistema é seguida por estado
satisfatório, sistema é fortalecido, caso contrário, sistema
é enfraquecido (lei de Thorndike)
•
Tipos de reforço
Positivo = recompensa Negativo = punição Nulo
Supervisionado X Reforço
Aprendizado
supervisionado
Aprendizado por
reforço
Professor
Crítico
Sistema de feedback
instrutivo
Sistema de feedback
estimativo
É dito o que fazer
Faz as coisas e ver o que
acontece
Paradigma de Aprendizado Não
Supervisionado
• Também conhecido como Clusterização
• O agente tentará agrupar dados semelhantes
• Não tem crítico ou professor externo
• Extração de características estatisticamente relevantes
Cria classes
Tarefas de aprendizado
•
Escolha do paradigma de aprendizado é
influenciada pela tarefa a ser realizada pelo
agente
Principais tarefas de aprendizado
Tarefa
Exemplo
Paradigma
Aproximação Dado pares (x, d), aproximar função Supervisionado Associação Autoassociação Heteroassociação Associar x com x Associar x com y Não supervisionado Supervisionado Classificação de padrões Categorias definidas Cluster, deteção de características Supervisionado Não supervisionado
Previsão Série temporal Supervisionado Controle Corpo humano Reforço
Então como aprender?
A Indução
Dad0 um conjunto de exemplos de f , a inferência indutiva
(indução) irá retornar uma função h (hipótese) que se aproxime de f e generalize bem o problema.
Exemplo:
O bocado de pão 1 estava saboroso quando eu o comi. O bocado de pão 2 estava saboroso quando eu o comi.
…
O bocado de pão 100 estava saboroso quando eu o comi. Então, todos os bocados de pão estarão saborosos quando
Problema Exemplo:
Imagine que gostaríamos de prever se a minha vizinha vai
de carro ou não para o trabalho. Caso ela vá de carro poderei pedir carona.
Se a minha vizinha vai de carro ou não para o trabalho
parece depender das seguintes características do dia: Temperatura ambiente,
Precipitação (neve, chuva, sol) Dia da semana,
Se vai ou não as compras pelo caminho e Tipo de roupa.
Problema Exemplo…
Digamos que observamos estas características durante 3 dias. A tabela seguinte mostra-nos os resultados destas mesmas
Memória
Agora pretende-se prever qual irá ser a atitude que a nossa
vizinha ira tomar mediante as seguintes condições (última linha):
Memória
A resposta parece ser óbvia, pois as condições são
semelhantes a uma das anteriores.
Este tipo de aprendizagem é bastante rudimentar pois
basta memorizar o que se viu anteriormente para se poder dar a resposta.
Calculo da média
E quando há ruído nos dados (normalmente as coisas
não são tão simples como no caso anterior.)
Calculo da média
Para uma entrada semelhante temos saídas diferentes.
Se recebermos a mesma entrada qual vai ser a nossa
previsão?
Calculo da média
Generalização
Imagine agora o caso em que temos de tratar com casos nunca
vistos. Neste caso, pode não haver uma resposta óbvia.
Podemos abdicar de fazer uma previsão,
ou então assumir que existe uma certa propriedade de estabilidade: situações similares tendem a ter categorias similares.
Ao final pode-se
argumentar que:
Ela vai a pé, porque a única vez que choveu ela foi a pé.
Ela vai de carro,
porque às segundas foi sempre de carro.
Generalização
A questão de qual deles escolher é uma questão difícil
e um dos problemas mais profundos subjacentes à
Aprendizagem de Máquinas.
Convém realçar que o objetivo é sempre que a máquina
possa fazer as previsões acerca de dados novos sem a
ajuda da intuição humana.
Aprendizagem em Árvores de
Decisão
A indução de árvores de decisão é uma das formas mais
simples, e ainda assim mais bem-sucedidas de algoritmo de aprendizagem.
Uma árvore de decisão toma como entrada uma lista de
atributos e retorna uma “decisão”
Àrvores de Decisão:
Fáceis de serem implementadas e utilizadas aprendizagem não incremental
Árvores de Decisão
Neste exemplo, a árvore
ficaria com a seguinte estrutura.
Árvores de Decisão
Uma árvore de decisão utiliza uma estratégia de
dividir-para-conquistar:
Um problema complexo é decomposto em
sub-problemas mais simples.
Recursivamente a mesma estratégia é aplicada a cada
sub-problema.
A capacidade de discriminação de uma árvore vem da:
Divisão do espaço definido pelos atributos em
sub-espaços.
Árvores de Decisão
Representação por árvores de
decisão:
Cada nó de decisão contem um teste num atributo.
Cada ramo descendente corresponde a um possível valor deste atributo.
Cada Folha está associada a uma classe.
Cada percurso na árvore (da raiz à folha) corresponde a uma regra de classificação.
Construção de uma Árvore de
Decisão
A idéia base:
1. Escolher um atributo.
2. Estender a árvore adicionando um ramo para cada
valor do atributo.
3. Passar os exemplos para as folhas (tendo em conta o
valor do atributo escolhido)
4. Para cada folha
Se todos os exemplos são da mesma classe, associar essa classe
à folha
Exemplo
Queremos decidir se devemos ou não jogar tênis. Essa
decisão depende dos seguintes atributos: como está o
tempo; a temperatura, a umidade do ar e o vento.
Exemplo
Critérios para Escolha do Atributo
Como medir a habilidade de um dado atributo
discriminar as classes?
Existem muitas medidas.
Todas concordam em dois pontos:
Uma divisão que mantêm as proporções de classes em
todas as partições é inútil.
Uma divisão onde em cada partição todos os exemplos
Critérios para Escolha do Atributo
Qual é o melhor atributo?
[29+ , 35-] [21+, 5-] [8+, 30-] [29+ , 35-] A2=? [18+ , 33-] [11+ , 2-] A1=?
Entropia
S é uma amostra dos exemplos de treinamento
p é a proporção de exemplos positivos em S p é a proporção de exemplos negativos em S
Entropia mede a “impureza” de S:
Entropia(S)=- p log2 p - p log2 p
Se p é 1, o destinatário sabe que o exemplo selecionado
será positivo
Nenhuma mensagem precisa ser enviada Entropia é 0 (mínima)
Se p é 0.5, um bit é necessário para indicar se o exemplo
selecionado é ou Entropia é 1 (máxima)
Entropia
•
Entropia é uma medida da aleatoriedade (impureza)
de uma variável.
•
A entropia de uma variável nominal X que pode tomar
i valores:
•
A entropia tem máximo (log2 i) se pi = pj para
qualquer i j
•
A entropia(x) = 0 se existe um i tal que pi = 1
•
É assumido que 0 * log2 0 = 0
i i ip
p
X
entropia
(
)
log
2Entropia - Exemplo II
Suponha que S é uma coleção de 14 exemplos,
incluindo 9 positivos e 5 negativos
Notação: [9+,5-]
A entropia de S em relação a esta classificação
booleana é dada por:
940 . 0 ) 14 / 5 ( log ) 14 / 5 ( ) 14 / 9 ( log ) 14 / 9 ( ]) 5 , 9 ([ 2 2 Entropy
Ganho de Informação
No contexto das árvores de decisão a entropia é usada para estimar a
aleatoriedade da variável a prever (classe).
Dado um conjunto de exemplos, que atributo escolher para teste?
Os valores de um atributo definem partições do conjunto de exemplos. O ganho de informação mede a redução da entropia causada pela partição
dos exemplos de acordo com os valores do atributo.
A construção de uma árvore de decisão é guiada pelo objetivo de
diminuir a entropia ou seja a aleatoriedade - dificuldade de previsão- da variável
que define as classes.
)
(
#
#
)
(
)
,
(
entropia
Exs
Exs
Exs
Exs
entropia
Atri
Exs
ganho
Cálculo do ganho de informação de
um atributo nominal
Informação da Classe:
p(sim) = 9/14 p(não) = 5/14
Ent(joga) = - 9/14 log2 9/14 – 5/14 log2 5/14 = 0.940
Informação nas partições:
p(sim|tempo=sol) = 2/5 p(não|tempo=sol) = 3/5 Ent(joga|tempo=sol) = -2/5 log2 2/5 –3/5 log2 3/5 = 0.971 Ent(joga|tempo=nublado) = 0.0 Ent(joga|tempo=chuva) = 0.971 Info(tempo) = 5/14*0.971 + 4/14*0+5/14*0.971= 0.693
Ganho de Informação obtida neste atributo:
Ganho(tempo) = Ent(joga)-Info(tempo) Ganho(tempo) = 0.940 – 0.693 = 0.247
Tempo [9+ , 5-]
[2+, 3-] [3+, 2-]
Sol Chuva Nublado
Exemplos de treinamento
Que atributo deve ser selecionado para ser a raiz da
árvore?
Ganho(S,Tempo) = 0.247 Ganho(S,Umidade) = 0.151 Ganho(S,Vento) = 0.048
Ganho(S,Temperatura) = 0.029
onde S denota a coleção de exemplos na tabela
Cálculo do ganho para atributos
numéricos
Um teste num atributo numérico produz uma partição
binária do conjunto de exemplos:
Exemplos onde valor_do_atributo < ponto_referência Exemplos onde valor_do_atributo > ponto_referência
Escolha do ponto de referência:
Ordenar os exemplos por ordem crescente dos valores do
atributo numérico.
Qualquer ponto intermediário entre dois valores diferentes e
consecutivos dos valores observados no conjunto de treinamento pode ser utilizado como possível ponto de referência.
É usual considerar o valor médio entre dois valores diferentes
e consecutivos.
Fayyard e Irani (1993) mostram que de todos os possíveis
pontos de referência aqueles que maximizam o ganho de informação separam dois exemplos de classes diferentes.
Cálculo do ganho para atributos
numéricos
Considere o ponto de referência
temperatura = 70.5
Um teste usando este ponto de
referência divide os exemplos em duas classes:
Exemplos onde temperatura <
70.5
Exemplos onde temperatura >
70.5
Como medir o ganho de informação
desta partição? Temperatura Joga 64 Sim 65 Não 68 Sim 69 Sim 70 Sim 71 Não 72 Não 72 Sim 75 Sim 75 Sim 80 Não 81 Sim 83 Sim 85 Não
Cálculo do ganho para atributos
numéricos
Como medir o ganho de informação desta
partição?
Informação nas partições
p(sim | temperatura<70.5)=4/5 p(não | temperatura<70.5)=1/5 p(sim | temperatura>70.5)=5/9 p(não | temperatura>70.5)=4/9
Info(joga | temperatur<70.5) = -4/5 log2 4/5 –
1/5 log2 1/5 = 0.721
Info(joga | temperatura >70.5) = -5/9 log2 5/9
– 4/9 log2 4/9 = 0.991 Info(temperatura) = 5/14*0.721+9/14*0.991 = 0.895 Ganho(temperatura) = 0.940 – 0.895 = 0.045 bits Tempo [5, 9] Sim Sim Sim Sim Não Sim Sim Sim Sim Sim Não Não Não Não < 70.5 > 70.5
Critérios de Parada
Quando parar a divisão dos exemplos?
Todos os exemplos pertencem a mesma classe.
Todos os exemplos têm os mesmos valores dos atributos
(mas diferentes classes).
O número de exemplos é inferior a um certo limite. O mérito de todos os possíveis testes de partição dos
Construção de uma Árvore de
Decisão
Input: Um conjunto de exemplos
Output: Uma árvore de decisão
Função Geraárvore(Exs)
Se criterio_parada(Exs) = TRUE: retorna Folha
Escolhe o atributo que maximiza o critério_divisão(Exs) Para cada partição i dos exemplos baseada no atributo
escolhido: árvorei = Geraárvore(Exsi)
Retorna um nó de decisão baseado no atributo escolhido e com descendentes árvore i.
Exercício: Árvores de Decisão
Suponha a seguinte árvore que apresenta os atributos
que são considerados para uma pessoa decidir se quer
ficar ou não em um restaurante que acabou de chegar.
Exercício: Árvores de Decisão
Exercício 1: Gerar 20 padrões (lista de atributos e a
saída, baseados na árvore de decisão)
Exercício 2: Considerando os 20 padrões criados
aleatoriamente por você. Utilize 18 deles para criar
uma árvore de decisão baseado nesses padrões. Os
outros 2 utilize para testar se a árvore criada por você
está compatível com a árvore original.
Sobre-ajustamento (Overfitting)
O algoritmo de partição recursiva do conjunto de
dados gera estruturas que podem obter um ajuste aos
exemplos de treinamento perfeito.
Em domínios sem ruído o nr. de erros no conjunto de
treinamento pode ser 0.
Em problemas com ruído esta capacidade é
problemática:
A partir de uma certa profundidade as decisões tomadas
são baseadas em pequenos conjuntos de exemplos.
A capacidade de generalização para exemplos não
Variação do erro com o nr. de nós
Valores de atributo desconhecidos
E se valores do atributo A estão faltando para alguns
exemplos?
Substituir o valor desconhecido durante o
pré-processamento pelo valor mais provável (ex. média)
Mesmo assim use os exemplos de treinamento, e
organize a árvore como segue:
Se um nó n testa A, atribua um valor para A que seja o
mais comum entre os outros exemplos classificados nó n
Atribua para A um valor que seja o mais comum entre os
outros exemplos com o mesmo valor objetivo (target value)
Transformação de árvores em
regras de decisão
Regras podem ser auto-interpretadas. Uma transformação:
Cada ramo dá origem a uma regra
A regra prediz a classe associada à folha A parte condicional da regra é obtida
pela conjunção das condições de cada nó.
Exemplo:
IF (Tempo = Sol) (Umidade = Alta)
THEN PlayTennis = Não
IF (Tempo = Sol) (Umidade = Normal)
THEN PlayTennis = Sim ...
Classificador
•
Dado este conjunto
de entradas e saídas.
É possível saber qual
a cor de um novo
ponto x ?
•
Qual será a melhor
forma de separar
estes 2 grupos?
Qual será a resposta mais correta?
Neste caso pareceóbvio, que seja uma linha que separe os dois conjuntos de pontos.
Assim um ponto que
surja no lado direito, prevemos que seja vermelho e preto se surgir no lado
E agora?
• Agora que temos uma configuração diferente de pontos.Nearest Neighbor
Este algoritmo é o mais simples de todos. O novo ponto
será da cor daquele que é o seu vizinho mais próximo.
• Qual será neste caso a cor do ponto que falta?
• Vermelho é a cor do ponto que está mais próximo. Então fica vermelho.
K-Nearest Neighbor
Passos do algoritmo:
Lembrar-se de todos os dados
Quando alguém passar um padrão de entrada:
Encontrar os k pontos mais próximo a este padrão
Devolver a resposta de maior ocorrência associada aos k
Nearest Neighbor
A distância euclidiana entre os pontos P(p
1, p
2, p
3, ..., p
n,
) e Q(q
1, q
2, q
3, ..., q
n, ), num espaço euclidiano
n-dimensional, é definida como:
Além da distância Euclidiana também´pode ser
implementada utilizando:
Distância de Minkowski Distância de Manhattan
Exemplo: Nearest Neighbor
Pesquisadores desejam classificar a flor Íris de acordo
com a sua espécie:
Iris Setosa
Iris Versicolour Iris Virginica
Para isso foram observadas 4 características (atributos)
dessas flores:
comprimento das sépalas em cm largura da sépala, em cm
comprimento da pétala, em cm largura da pétala, em cm
Exemplo: Nearest Neighbor
Dados Observados:
Agora deseja-se saber a qual espécie de íris as seguintes
Exercícios
Escolher uma base de dados (padrões) na Internet
http://archive.ics.uci.edu/ml/
Normalizar a base
Separar a base de dados em conjunto de testes e conjunto de treinamento
Implementar o kNN utilizando as 3 principais distâncias
Variar o k entre 1 e 11 (considerando apenas números ímpares). Apresentar um resumo contendo:
Breve descrição da técnica; Breve descrição do código;
Experimentos com os resultados obtidos descrevendo os principais pontos
observados com a variação do k
Breve conclusão Referências