Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DE APRENDIZAGEM Prof. Willian P. Amorim Questões Importantes O que é a aprendizagem ? Porquê aprender ? A aprendizagem é mesmo possível ? Pode um algoritmo prever o futuro? A aprendizagem é uma questão de estatísticas? O Que é a Aprendizagem ? A psicologia costuma definir a aprendizagem como uma mudança relativamente permanente no conhecimento ou no comportamento produzido pela experiência. A aprendizagem considera então a aquisição de informação e conhecimentos, de habilidades, de hábitos, de atitudes e de crenças (as mudanças físicas do amadurecimento não é considerado aprendizagem) Gonzalez-Perez, J.; Criado M.J. Psicologia de la Educacion para una Enseñansa Prática (2003) O Que é a Aprendizagem ? • Memorizar qualquer coisa; • Aprender factos através da observação e exploração; • Melhorar capacidades cognitivas e/ou motoras através da prática; • Organizar novo conhecimento em representações gerais. Uma definição mais computacional Herb Simon, uma figura histórica importante na Inteligência Artificial e Economia, deu-nos a seguinte definição de Aprendizagem: “Aprendizagem denota mudanças no sistema que são adaptativas no sentido em que permitem ao sistema fazer a tarefa ou as tarefas tiradas da mesma população mais eficientemente e mais eficazmente da próxima vez.” X Então como aprender? A Indução 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 eu os comer. (David Hume resumiu assim o raciocínio por Indução) Indução Qualquer matemático abomina o raciocínio anterior. Então porque é que a indução é aceitável ? Um Exemplo Quando perguntado se o Sol vai nascer amanhã, a nossa resposta natural é: Sim, porque o Sol sempre nasceu todos os dias. Para um cientista, a resposta não é satisfatória, mas para o comum dos mortais, é suficiente saber que o Sol sempre nasceu todos os dias para “aprender” que ele vai nascer amanhã. Tipos de Aprendizagem Existem diversos tipos de problemas relacionados com a aprendizagem de Máquinas. Aprendizagem Supervisionada Clustering (agrupamento) ou não supervisionado Reforço (Reinforcement) Semi-supervisionado Aprendizagem Supervisionado Dado um conjunto de pares de entrada/saída, encontrar uma regra que nos permita prever a saída associada a cada nova entrada. Por exemplo: Imaginemos que nos é dado os pesos e comprimentos de um grupo de trutas, e os pesos e comprimentos de um grupo de carpas. O trabalho do sistema de aprendizagem supervisionada seria encontrar uma regra que permitisse prever, dado o comprimento e o peso de um peixe, se este era uma truta ou uma carpa. 9 Clustering Outro tipo de problema comum de aprendizagem é o agrupamento. Dado um conjunto de exemplos, mas sem uma classificação predefinida destes, o objetivo é agrupar os exemplos dados em “conjuntos naturais”. Um exemplo de Clustering Neste caso, é-nos dada as descrições de um grupo de animais diferentes em termos das suas características (comprimento, peso, se tem cabelos ou não, etc.). A tarefa agora é dividi-los em grupos, possivelmente numa hierarquia de grupos que “faça sentido”. O que torna o clustering diferente da aprendizagem supervisionada é que não lhe é dito á partida, que grupos de animais devemos ter. Apenas que o sistema deve encontrar um agrupamento natural. Aprendizagem por Reforço Um agente interagindo com o mundo faz observações, age, e é recompensado ou castigado. Deverá ser capaz de escolher acções de maneira a maximizar o número de recompensas. Este problema de aprendizagem é mais familiar à maioria de nós porque envolve a aprendizagem de capacidades motoras, como aprender a andar ou a andar de bicicleta. Aprendizagem por Reforço É diferente da aprendizagem supervisionada porque ninguém nos diz explicitamente qual é a coisa certa a fazer. Temos apenas de ir tentando e verificar aquilo que nos faz cair ou aquilo que nos faz ficar direitos. Aprendizagem Semi-supervisionado Um parte dos dados são utilizados no treinamento para classificação, enquanto que outra consiste de dados não rotulados; Tal paradigma de aprendizagem é particularmente útil em casos onde a amostragem limitada do conjunto de treinamento não fornce informações suficiente para a indução de uma regra geral; Assim, utiliza-se o conjunto de teste como fonte extra de informação para a resolução do problema. Aprendizagem Como já vimos, uma maneira de encarar a aprendizagem, é encontrar uma função que a partir de um conjunto de dados de entrada e saída, expresse da melhor maneira possível a relação. Aprender a pronunciar palavras pode ser visto como uma função de letras para sons. Aprender a reconhecer a escrita pode ser vista como uma função de conjuntos de pixeis para letras Aprender a diagnosticar doenças pode ser visto como uma função de resultados de exames laboratoriais para categorias de doenças. Alguns problemas… O problema de inferir uma função a partir de exemplos é complicado. Podemos pensar em pelo menos três problemas diferentes que podem surgir: Memória Calcular médias Generalização Problema Exemplo: Imaginemos que estou tetando prever se a minha vizinha vai de carro ou não para o trabalho O objetivo é saber se vale a pena 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, o dia da semana, se vai ou não ás compras pelo caminho e o tipo de vestuário. Exemplo… Digamos que observamos estas características durante 3 dias. A tabela seguinte mostra-nos os resultados destas mesmas observações e se a vizinha vai de carro ou vai a pé para o trabalho: Memória Agora pretende-se prever qual irá ser a atitude que a nossa vizinha ira tomar mediante as seguintes condições (ultima linha): Ela vai de carro ou a pé? 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 (As coisas não sempre tão simples como no caso anterior.) ► A nossa vizinha não é totalmente coerente. Para entradas semelhantes temos saídas diferentes. Se nos surgir novamente a mesma entrada qual vai ser a nossa previsão? Calculo da média Calculo da média X Podemos afirmar que ela irá a pé com uma probabilidade de 5/7 Generalização • Imaginemos 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. Podiamos 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. Exemplo: • Agora imagine que se pretende dividir estes dois conjuntos de pontos por forma a que, dado esta entrada, consigamos prever qual a cor que irá ter um novo ponto. •Qual será a melhor escolha? Qual será a resposta mais correta? • Neste caso parece óbvio, que seja uma linha a separar os dois conjuntos de pontos. • Assim um ponto que surja no lado direito, prevemos que seja vermelho e preto se surgir no lado esquerdo E agora? • Agora que temos uma configuração diferente de pontos. • Qual será a melhor escolha? Também não parece ser difícil… E agora?! • Já não parece ser tão trivial encontrar a solução neste caso • Há pelo menos dois tipos de resposta possível Primeira opção • Neste caso, é possível separar completamente os dois conjuntos de pontos • Mas será esta a melhor escolha? Segunda opção • Neste caso, os pontos não estão totalmente divididos por cor • Esta opção despreza alguns elementos dispersos por forma a simplificar a separação Algoritmos de aprendizagem Existem vários tipos de algoritmos de aprendizagem: Nearest Neighbor (Vizinho mais próximo) Arvores de decisão K-means (algoritmo de agrupamento) Á priori … Vetor de atributos Quais são os atributos que descrevem uma tangerina? Formato (esférico/oval)? Fruta cítrica? Cor? Casca lisa ou rugosa? Cheiro ativo? Todos esses atributos são igualmente importantes? Quão difícil é a tarefa de definir os atributos de um objeto? Vetor de atributos Respondendo às perguntas anteriores: X1. esférico. X2. sim. X3. alaranjado. X4. rugosa. X5. sim. Vetor de atributos O computador só entende números! Como transformar os atributos em números? Basta representar cada objeto como um vetor de atributos! X = [X1 X2 ... Xn] Assim esse objeto tangerina é Representado por esse vetor: X = [0 1 2 1 1] Representação na forma de vetor de atributos Exercício 1 : Como objetos laranja, maçã e tangerina, seriam representados como vetor de atributos? X1 = {esférico, oval, alongado} = {0,1,2} X2 = {não, sim} = {0,1} X3 = {amarelo, vermelho, alaranjado,verde} = {0,1,2,3} X4 = {lisa, rugosa} = {0,1} X5 = {não, sim} = {0,1} Representação na forma de vetor de atributos Resposta Laranja: X = [0 1 2 1 0] Maçã: Y = [0 0 1 0 0] Tangerina: Z = [0 1 2 1 1] Representação na forma de vetor de atributos Exercício 2: Qual o vetor (X,Y) é mais parecido com o vetor Z? X = [0 1 2 1 0] Y = [0 0 1 0 0] Z = [0 1 2 1 1] Distância entre vetores Calcular quão “parecidos” são dois vetores equivale a calcular a distância entre eles. Exemplo: Distância euclediana Distância entre vetores Exercício 3: Calcular as distâncias De(X,Z) e De(Y,Z)? X = [0 1 2 1 0] Y = [0 0 1 0 0] Z = [0 1 2 1 1] Distância entre vetores Resolução Exercício 3: Calcular as distâncias De(X,Z) e De(Y,Z)? X = [0 1 2 1 0] Y = [0 0 1 0 0] Z = [0 1 2 1 1] K-NN O Algoritmo K-NN (K-Vizinhos Mais Próximos) é um dos mais simples e bem difundidos algoritmos do paradigma baseado em instâncias (Aprendizado supervisionado). Classificadores Supervisionados Base de conhecimento Instância nova K-NN Idéia básica: K-NN Aprendizado: Base de dados de treinamento Uma medida de dissimilaridade O valor de K: nº dos vizinhos mais próxima recuperar Classificação: Calcule a dissimilaridade para todos os objetos de treinamento Obtenha os K objetos da base mais próximas. Classifique o objeto não visto na classe da maioria dos K-vizinhos. K-NN - Diferentes valores para K K = 1 K = 2 K = 3 Algoritmo K-NN Armazenar os exemplos em uma tabela. Seja Xnew um vetor cuja classe é desconhecida, ou seja: Classe(Xnew) = ? Encontrar na tabela os K vetores mais próximo de Xnew Seja CK a classe a que pertence a maioria dos K vetores. Atribuir a Xnew a classe da maioria dos K vetores, ou seja: Classe(Xnew) = CK Se a classificação for correta incluir Xnew na tabela. K-NN Escolha do valor de K: Muito pequeno: Discriminação entre classes muito flexível Porém, sensível a ruído Classificação pode ser instável K-NN Escolha do valor de K: Muito grande: Mais robusto a ruído Porém, menor flexibilidade de discriminação entre classes. Privilegia classe majoritária. Classificação pode ser instável K-NN Escolha do valor de K: Valor ideal? Depende da aplicação. K-NN - Melhorias Normalização Min-max – novo intervalo [nminA, nmaxA] Exemplo: Se os salários variam entre 12.000 a 98.000 e queremos normalizá-los entre [0, 1], então 73.000 será mapeado para: K-NN Como calcular as dissimilaridades? Depende do domínio da aplicação. Exemplos: Distância Euclediana Distância Euclediana Ponderada Distância de Mahalanobis Distância de Manhattan Distância da Escavadeira (EarthMover) K-NN Vantagens Simplicidade de implementação Ideal para bases de aprendizagem pequenas ou médias Não requer treinamento Desvantagens Custo computacional alto para grandes tabelas A constante K é obtida por tentativa-e-erro. Exercício em sala Converta os dados abaixo para valores numéricos (sem aumentar o no. de atributos) e classifique a última instância com KNN equipado com Distância Euclidiana e K = 1, 3 e 5. Discuta. Febre = {baixa, média, alta} = {0,1,2} Enjôo = {não, sim} = {0,1} Mancha = {pequena, média, grande, enorme} = {0,1,2,3}
Compartilhar