Introdução - Programa de Pós-Graduação em...
Transcript of Introdução - Programa de Pós-Graduação em...
Aprendizagem de Máquina
Introdução
Aula 1Alessandro L. Koerich
Mestrado em Informática AplicadaPontifícia Universidade Católica do Paraná (PUCPR)
Mestrado em Informática Aplicada Aprendizagem de Máquina 2Alessandro L. Koerich ([email protected])
Plano de Aula
Introdução à Aprendizagem de Máquina
Por que a Aprendizagem Computacional é Difícil ?
Problemas de Aprendizagem
Projetando um Sistema de Aprendizagem de Máquina
Exemplos
Tipos de Aprendizagem
Tarefa
Aplicações
Mestrado em Informática Aplicada Aprendizagem de Máquina 3Alessandro L. Koerich ([email protected])
Introdução
Desde que os computadores foram inventados temos nos perguntado se eles seriam capazes de aprender
Se pudéssemos entender como programá-los para aprender – para se aperfeiçoar automaticamente com experiência – o impacto seria surpreendente.
Mestrado em Informática Aplicada Aprendizagem de Máquina 4Alessandro L. Koerich ([email protected])
Mestrado em Informática Aplicada Aprendizagem de Máquina 5Alessandro L. Koerich ([email protected])
Introdução
Infelizmente ainda não sabemos como fazer computadores aprender de uma maneira similar a como as pessoas aprendem.
Entretanto, foram inventados algoritmos que são eficientes em certos tipos de tarefas de aprendizado e um entendimento teórico de aprendizagem está começando a surgir.
Mestrado em Informática Aplicada Aprendizagem de Máquina 6Alessandro L. Koerich ([email protected])
O que é Aprendizagem de Máquina?
Mestrado em Informática Aplicada Aprendizagem de Máquina 7Alessandro L. Koerich ([email protected])
O que é Aprendizagem de Máquina?
Aprendizagem é uma propriedade humana essencial
Aprender significa “mudar para fazer melhor” (de acordo com um dado critério) quando uma situação similar acontecer
Aprendizagem, não é “memorizar”. Qualquer computador pode “memorizar”, a dificuldade é em “generalizar” um comportamento para uma nova situação.
Mestrado em Informática Aplicada Aprendizagem de Máquina 8Alessandro L. Koerich ([email protected])
Por que a Aprendizagem é Difícil?
Dado uma quantidade finita de dados para o treinamento, temos que derivar uma relação para um domínio infinitoNa realidade, existe um número infinito de tais relações
Como devemos traçar a relação?
Mestrado em Informática Aplicada Aprendizagem de Máquina 9Alessandro L. Koerich ([email protected])
Por que a Aprendizagem é Difícil?
Dado uma quantidade finita de dados para o treinamento, temos que derivar uma relação para um domínio infinitoNa realidade, existe um número infinito de tais relações
Qual das relações seria a mais apropriada?
Mestrado em Informática Aplicada Aprendizagem de Máquina 10Alessandro L. Koerich ([email protected])
Por que a Aprendizagem é Difícil?
Dado uma quantidade finita de dados para o treinamento, temos que derivar uma relação para um domínio infinitoNa realidade, existe um número infinito de tais relações
... os pontos de teste ocultos ...
Mestrado em Informática Aplicada Aprendizagem de Máquina 11Alessandro L. Koerich ([email protected])
Introdução
Um programa de computador aprende a partir de uma experiência E com respeito a alguma classe de tarefas T e medida de performance P, SE sua performance nas tarefas em T, medida por P, MELHORA com a experiência E.
Mestrado em Informática Aplicada Aprendizagem de Máquina 12Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Em geral, para termos problemas de aprendizagem bem definidos, devemos identificar três características:
A classe das tarefas;
A medida de performance a ser melhorada;
A fonte de experiência (conhecimento).
Mestrado em Informática Aplicada Aprendizagem de Máquina 13Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprender a jogar damas
Tarefa T:Jogar damas
Medida de performance P:Percentagem de jogos ganhos contra oponentes
Experiência de treinamento Ejogando contra si mesmo.
Mestrado em Informática Aplicada Aprendizagem de Máquina 14Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprender a jogar damas
Mestrado em Informática Aplicada Aprendizagem de Máquina 15Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprender a reconhecer manuscritos
Tarefa T:Reconhecer/classificar palavras manuscritas presentes em imagens
Medida de performance P:Percentagem de palavras classificadas corretamente
Experiência de treinamento E:Base de dados com palavras manuscritas e respectivas etiquetas (classes a que elas pertencem).
Mestrado em Informática Aplicada Aprendizagem de Máquina 16Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprender a reconhecer manuscritos
Roubaix Cedex
HALLUIN CEDEX
Chiré em Montreuil
Roubaix Cedex
Mestrado em Informática Aplicada Aprendizagem de Máquina 17Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprender a reconhecer manuscritos
Mestrado em Informática Aplicada Aprendizagem de Máquina 18Alessandro L. Koerich ([email protected])
Problemas Bem Definidos
Exemplo: Aprendizagem de um robô motorista
Tarefa T:Dirigir em uma via pública de 3 pistas usando sensores de visão
Medida de performance P:Distância média percorrida antes de cometer um erro (julgado por observador humano)
Experiência de treinamento E:Seqüência de imagens e comandos de direção gravados a partir da observação de um motorista humano.
Mestrado em Informática Aplicada Aprendizagem de Máquina 19Alessandro L. Koerich ([email protected])
Projetando um Sistema de Aprendizagem
Projetar um programa para aprender a jogar damas.
Medida de performance: percentagem de jogos ganhos
Mestrado em Informática Aplicada Aprendizagem de Máquina 20Alessandro L. Koerich ([email protected])
Projetando um Sistema de Aprendizagem
Etapas básicas de projeto:
Escolha da experiência de treinamento
Escolha da função objetiva
Escolha de uma representação para a função objetiva
Escolha de um algoritmo para a função de aproximação
Mestrado em Informática Aplicada Aprendizagem de Máquina 21Alessandro L. Koerich ([email protected])
Experiência de Treinamento
Escolher o tipo de experiência de treinamento a partir da qual o sistema aprenderá
Experiência direta ou indireta ?
O grau de controle sobre a seqüência de exemplos de treinamento;
com ou sem instrutor ?
A experiência de treinamento representa a distribuição de exemplos sobre os quais a performance final (P ) do sistema deve ser medida.
Mestrado em Informática Aplicada Aprendizagem de Máquina 22Alessandro L. Koerich ([email protected])
Experiência de Treinamento
Atenção: A teoria de aprendizagem de máquina recai sobre a hipótese de que a distribuição dos exemplos de treinamento é idêntica a distribuição dos exemplos de teste.
Apesar da necessidade de considerarmos esta hipótese para obter resultados teóricos, é importante ter em mente que esta suposição é quase sempre violada na prática.
Mestrado em Informática Aplicada Aprendizagem de Máquina 23Alessandro L. Koerich ([email protected])
Experiência de Treinamento
O problema de aprendizagem de damas:Tarefa T : jogando damas
Medida de performance P : percentagem de jogos ganhos
Experiência de treinamento E : partidas jogadas contra si mesmo
Para completarmos o projeto do sistema de aprendizagem, devemos agora escolher:
1. O tipo exato de conhecimento a ser aprendido
2. Uma representação para este conhecimento alvo
3. Um mecanismo de aprendizagem
Mestrado em Informática Aplicada Aprendizagem de Máquina 24Alessandro L. Koerich ([email protected])
Função Objetiva
Que tipo de conhecimento será aprendido e como ele será utilizado em um programa?
O programa necessita aprender apenas como escolher o melhor movimento dentre os movimentos possíveis.
Este problema é representativo de um grande número de tarefas para as quais a melhor estratégia de busca não é conhecida.Muitos problemas de otimização são desta categoria.
Mestrado em Informática Aplicada Aprendizagem de Máquina 25Alessandro L. Koerich ([email protected])
Função Objetiva
Aprender: Escolher o melhor movimento para qualquer estado do tabuleiro.
Função: ChooseMoveChooseMove : B M
A função aceita como entrada qualquer estado do conjunto de estados possíveis do tabuleiro B e produz como saída algum movimento do conjunto de movimento possíveis M.
Como é possível reduzir o problema de melhorar a performance P da tarefa T, para o problema de aprender uma função objetiva tal como ChooseMove.
Mestrado em Informática Aplicada Aprendizagem de Máquina 26Alessandro L. Koerich ([email protected])
Função Objetiva
Porém, é difícil de aprender a função ChooseMove a partir da experiência de treinamento disponível.
Função alternativa: uma função V que atribui um valor numérico para qualquer estado do tabuleiro.
V : B ℜ indica que V mapeia qualquer estado legal do tabuleiro do conjunto B para algum valor real.
Usamos esta função V para atribuir valores maiores para os melhores estados do tabuleiro.
Mestrado em Informática Aplicada Aprendizagem de Máquina 27Alessandro L. Koerich ([email protected])
Função Objetiva
Uma das possíveis definições para a função V (b), onde b é um estado arbitrário do tabuleiro em B:
Se b é um estado final que é vitorioso, entãoV (b) = 100
Se b é um estado final que é perdedor, entãoV (b) = –100
Se b é um estado final que é empate, entãoV (b) = 0
Se b não é um estado final no jogo, então, V (b) = V (b’ )
onde b’ é o melhor estado final que pode ser atingido começando em b e jogando otimamente até o final do jogo.
Mestrado em Informática Aplicada Aprendizagem de Máquina 28Alessandro L. Koerich ([email protected])
Função Objetiva
Esta definição especifica um valor de V (b ) para cada estado do tabuleiro (b ), entretanto, esta definição não é operacional
Precisamos de uma descrição operacional de V que possa ser usada pelo programa para avaliar estados e selecionar movimentos dentro de um tempo realístico.
Tarefa de Aprendizagem: descobrir uma descrição operacional da função objetiva ideal V
Algoritmos de aprendizagem Aproximação da função objetiva (V’ ) Aproximação da função
Mestrado em Informática Aplicada Aprendizagem de Máquina 29Alessandro L. Koerich ([email protected])
Representação para Função Objetiva
Depois de especificar V, devemos escolher a representação que o programa de aprendizagem usará para descrever a função V’ que ele aprenderá.
Temos muitas opções . . .Coleção de regras?
Redes neurais?
Funções polinomiais?
etc...
Em geral temos um compromisso crucial: representação mais expressiva mais dados para treinamento
Mestrado em Informática Aplicada Aprendizagem de Máquina 30Alessandro L. Koerich ([email protected])
Representação para Função Objetiva
Escolha: a função V’ será calculada como uma combinação linear das seguintes características do tabuleiro:
bp (b): número de peças pretas no tabuleiro b
rp (b): número de peças vermelhas sobre b
bk (b): número de reis pretos sobre b
rk (b): número de reis vermelhos sobre b
bt (b): número de peças vermelhas ameaçadas pelas pretas (i.e., que podem ser tiradas na vez do preto)
rt (b): número de peças pretas ameaçadas pelas vermelhas.
Mestrado em Informática Aplicada Aprendizagem de Máquina 31Alessandro L. Koerich ([email protected])
Representação para Função Objetiva
Então, a aprendizagem irá representar V’ (b ) como uma função linear da forma:
V’(b) = w0 + w1bp (b ) + w2 rp (b ) + w3 bk (b ) + w4 rk (b ) + w5 bt (b ) + w6 rt (b )
onde w0 a w6 são coeficientes numéricos, ou pesos, a
serem escolhidos pelo algoritmo de aprendizagem.
Os valores “aprendidos” para os pesos w1 a w6determinarão a importância relativa das várias características do tabuleiro.
Mestrado em Informática Aplicada Aprendizagem de Máquina 32Alessandro L. Koerich ([email protected])
Projeto Parcial
Tarefa T : jogar damas
Medida de Performance P : percentagem de partidas ganhas
Experiência de Treinamento E : partidas jogadas contra si mesmo
Função Objetivo: V : B ℜ
Representação da Função Objetiva:V’(b) = w0 + w1bp (b ) + w2 rp (b ) + w3 bk (b ) + w4 rk (b ) + w5bt (b ) + w6 rt (b )
Mestrado em Informática Aplicada Aprendizagem de Máquina 33Alessandro L. Koerich ([email protected])
Projeto Parcial
O itens anteriores correspondem a especificação da tarefa de aprendizagem;
Os dois itens finais são escolhas do projeto para a implementação da aprendizagem.
Em resumo, o conjunto de escolhas do projeto:Problema de aprender uma estratégia
Problema de aprender os valores dos coeficientes da representação da função objetiva.
Mestrado em Informática Aplicada Aprendizagem de Máquina 34Alessandro L. Koerich ([email protected])
Algoritmo de Aproximação
Para aprender a função objetiva V’necessitamos de um conjunto de exemplos de treinamento, cada um descrevendo um estado bespecífico do tabuleiro e o valor de treinamento Vtrain(b ) para b.
Cada exemplo de treinamento é um par ordenado na forma <b, Vtrain(b ) >
Mestrado em Informática Aplicada Aprendizagem de Máquina 35Alessandro L. Koerich ([email protected])
Algoritmo de Aproximação
A única informação disponível é se a partida foi eventualmente ganha ou perdida.
Necessitamos de exemplos de treinamento que atribuam valores específicos para estados específicos do tabuleiro.
É fácil atribuir valores para os estados do tabuleiro que correspondem ao final do jogo.
É menos óbvio atribuir valores de treinamento para os numerosos estados intermediários que ocorrem antes do jogo acabar.
Mestrado em Informática Aplicada Aprendizagem de Máquina 36Alessandro L. Koerich ([email protected])
Algoritmo de Aproximação
Uma solução simples: atribuir o valor de treinamento de Vtrain (b ) para qualquer estado intermediário b do tabuleiro ser V’ (Sucessor (b )), onde V’ é a aproximação atual de V e V’ (Sucessor (b )) indica o próximo estado seguindo b para o qual é novamente a vez do programa mover.
Regra para estimar valores de treinamento:
Vtrain (b ) V’ (Sucessor (b ))
Mestrado em Informática Aplicada Aprendizagem de Máquina 37Alessandro L. Koerich ([email protected])
Algoritmo de Aproximação
Ainda falta especificar o algoritmo de aprendizagem que melhor ajusta os pesos wi ao conjunto de exemplos de treinamento {<b, Vtrain (b )>}.
O que significa “melhor ajuste” aos dados de treinamento?
Uma solução: minimizar o erro quadrático E entre os valores de treinamento e os valores preditos pela hipótese V’.
( )∑∈><
−≡to treinamende amostras )(,
2)(')(bVb
traintrain
bVbVE
Mestrado em Informática Aplicada Aprendizagem de Máquina 38Alessandro L. Koerich ([email protected])
Algoritmo de Aproximação
Existem diversos algoritmos para encontrar pesos de uma função linear que minimiza E. Um deles é o LMS (mínimos quadrados).
Regra de atualização dos pesos LMSFaça repetidamente
Selecione aleatoriamente um exemplo de treinamento b1.Calcule o erro(b)
erro(b) = Vtrain(b)-V’(b)2.Para cada característica do tabuleiro fi, atualize o peso wi
como:wi wi + η fi erro(b)
onde η é uma pequena constante (p.e. 0.1) que regula a taxa da atualização do peso (aprendizagem).
Mestrado em Informática Aplicada Aprendizagem de Máquina 39Alessandro L. Koerich ([email protected])
Projeto Final
A seqüência de escolhas de projeto feitas...
Mestrado em Informática Aplicada Aprendizagem de Máquina 40Alessandro L. Koerich ([email protected])
Exemplo
Um problema de classificação: predizer as notas para os estudantes matriculados neste curso (aprendizagem de máquina).
Mestrado em Informática Aplicada Aprendizagem de Máquina 41Alessandro L. Koerich ([email protected])
Exemplo
Um problema de classificação: predizer as notas para os estudantes matriculados neste curso (aprendizagem de máquina).
Passos principais:1. Dados
2. Hipóteses
3. Representação
4. Estimação
5. Avaliação
6. Escolha do Modelo
Mestrado em Informática Aplicada Aprendizagem de Máquina 42Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
Mestrado em Informática Aplicada Aprendizagem de Máquina 43Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
2. Hipóteses: O que podemos assumir a respeito dos estudantes ou sobre o curso?
Mestrado em Informática Aplicada Aprendizagem de Máquina 44Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
2. Hipóteses: O que podemos assumir a respeito dos estudantes ou sobre o curso?
3. Representação: Como podemos “resumir” um estudante?
Mestrado em Informática Aplicada Aprendizagem de Máquina 45Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
2. Hipóteses: O que podemos assumir a respeito dos estudantes ou sobre o curso?
3. Representação: Como podemos “resumir” um estudante?
4. Estimação: Como construímos um mapa estudantes notas?
Mestrado em Informática Aplicada Aprendizagem de Máquina 46Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
2. Hipóteses: O que podemos assumir a respeito dos estudantes ou sobre o curso?
3. Representação: Como podemos “resumir” um estudante?
4. Estimação: Como construímos um mapa estudantes notas?
5. Avaliação: Quão bem estamos predizendo?
Mestrado em Informática Aplicada Aprendizagem de Máquina 47Alessandro L. Koerich ([email protected])
Exemplo
Passos principais:1. Dados: Podemos contar com qual experiência
anterior?
2. Hipóteses: O que podemos assumir a respeito dos estudantes ou sobre o curso?
3. Representação: Como podemos “resumir” um estudante?
4. Estimação: Como construímos um mapa estudantes notas?
5. Avaliação: Quão bem estamos predizendo?
6. Escolha do Modelo: Podemos fazer ainda melhor?
Mestrado em Informática Aplicada Aprendizagem de Máquina 48Alessandro L. Koerich ([email protected])
Exemplo
Os dados que temos disponíveis (a princípio):
Nomes e notas dos estudantes no curso nos anos anteriores
Boletim acadêmico dos estudantes atuais e anteriores
Mestrado em Informática Aplicada Aprendizagem de Máquina 49Alessandro L. Koerich ([email protected])
Dados
Dados para treinamento:
Dados para teste:
Alguma coisa mais que possamos utilizar?
AABMariaABAJoão
Curso 2Curso 1AdeMEstudante
AA?AnaAC?José
Curso 2Curso 1AdeMEstudante
Mestrado em Informática Aplicada Aprendizagem de Máquina 50Alessandro L. Koerich ([email protected])
Hipóteses
Existem várias hipóteses que podemos fazer para facilitar as predições:
1. O curso permaneceu aproximadamente o mesmo nos últimos anos
2. Cada estudante atua independentemente dos outros
Mestrado em Informática Aplicada Aprendizagem de Máquina 51Alessandro L. Koerich ([email protected])
Representação
Boletins acadêmicos são particularmente diversos, então devemos limitar os resumos a alguns poucos cursos selecionados
Por exemplo, podemos resumir o estudante io
(João), por um vetor:
xi = [A C B ]
onde as notas correspondem a (digamos): 9.6, 5.8, 7.3
Mestrado em Informática Aplicada Aprendizagem de Máquina 52Alessandro L. Koerich ([email protected])
Representação
O dados disponíveis nesta representação
?
...
x’2...
B
...
x2
...
?x’1Ax1
Nota em AdeM
EstudanteNota em
AdeMEstudante
TesteTreinamento
Mestrado em Informática Aplicada Aprendizagem de Máquina 53Alessandro L. Koerich ([email protected])
Estimação
Dado os dados de treinamento
Precisamos encontrar um mapeamento dos “vetores de entrada” x para as “etiquetas” (labels) y codificando as notas do curso AdeM
B
...
x2
...
Ax1
Nota em AdeM
Estudante
Mestrado em Informática Aplicada Aprendizagem de Máquina 54Alessandro L. Koerich ([email protected])
Estimação
Solução possível classificador vizinhos mais próximos (nearest neighbour):
1. Para cada estudante x, encontrar o estudante xi
mais próximo no conjunto de treinamento;
2. Predizer yi, como sendo a nota do estudante mais próximo xi .
Mestrado em Informática Aplicada Aprendizagem de Máquina 55Alessandro L. Koerich ([email protected])
Avaliação
Como podemos dizer se nossas predições são boas ?
Podemos esperar até o final do curso
Podemos tentar avaliar a precisão baseando–se nos dados que já temos (conjunto de treinamento)
Solução possível:Dividir o conjunto de treinamento em novos conjuntos de treinamento e teste
Avaliar o classificador construído baseando–se somente no novo conjunto de treinamento sobre o novo conjunto de testes
Mestrado em Informática Aplicada Aprendizagem de Máquina 56Alessandro L. Koerich ([email protected])
Escolha do Modelo
Podemos refinar:O algoritmo de estimação (por exemplo, utilizando um classificador diferente);
A representação (por exemplo, basear o resumo em um conjunto diferente de cursos);
As hipóteses (talvez os estudantes trabalhem em grupos, etc.)
Temos que nos basear no método de avaliação da precisão de nossas predições para escolher entre os possíveis refinamentos.
Mestrado em Informática Aplicada Aprendizagem de Máquina 57Alessandro L. Koerich ([email protected])
Tipos de Problemas de Aprendizagem
Uma classificação aproximada dos problemas de aprendizagem:
Aprendizagem Supervisionada: temos um conjunto de entradas e saídas para fazer o treinamento.Ex: classificação, regressão.
Aprendizagem Não Supervisionada: estamos interessados em capturar uma organização inerente dos dados.Ex: clustering, estimação de densidade.
Mestrado em Informática Aplicada Aprendizagem de Máquina 58Alessandro L. Koerich ([email protected])
Tipos de Problemas de Aprendizagem
Aprendizagem com Reforço: somente obtemos um feedback na forma de quão bem estamos fazendo (e não o que deveríamos estar fazendo).Ex: planejamento
Mestrado em Informática Aplicada Aprendizagem de Máquina 59Alessandro L. Koerich ([email protected])
Aprendizagem Supervisionada
Exemplo: reconhecimento de dígitos (dígitos binários 8X8)
Desejamos aprender o mapeamento de dígitos para classes.
dígito binário classe alvo
Mestrado em Informática Aplicada Aprendizagem de Máquina 60Alessandro L. Koerich ([email protected])
Aprendizagem Supervisionada
Um mudança na representação que preserva as informações relevantes pode tornar impossível a aprendizagem.
Mestrado em Informática Aplicada Aprendizagem de Máquina 61Alessandro L. Koerich ([email protected])
Aprendizagem Supervisionada
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
Mestrado em Informática Aplicada Aprendizagem de Máquina 62Alessandro L. Koerich ([email protected])
Aprendizagem Não Supervisionada
Os dígitos novamente...
Gostaríamos de entender o processo de criação dos exemplos (neste caso, dígitos)
Mestrado em Informática Aplicada Aprendizagem de Máquina 63Alessandro L. Koerich ([email protected])
Aplicações
Processamento VisualVerificação de facesReconhecimento de manuscritos
Processamento da FalaFonemas, palavras, sentenças, reconhecimento de pessoas
OutrosFinanças: predição de ações, gerenciamento de risco e portofolioTelecomunicações: predição de tráfegoDatamining: fazer uso de grandes conjuntos de dados mantidos por grandes corporaçõesJogos: xadrez, gamão, etc. Controle: robôs
... e muitas outras é claro!