Inteligência Artificial Aprendizagem de Máquina Prof. Valmir Macário Filho Outline Aprendizagem de Máquina Árvore de Decisão Lógica Fuzzy Algoritmos Genéticos Outline Aprendizagem de Máquina Árvore de Decisão Lógica Fuzzy Algoritmos Genéticos Aprendizagem A palavra "aprendizagem" tem muitos significados diferentes: Memorizar algo; Aprender fatos através da observação e exploração; Melhorar motovimento e/ou habilidades cognitivas através da prática; Organização de novos conhecimentos em representações eficazes. Aprendizagem “Aprendizagem é o processo pelo qual uma entidade adquire conhecimento”. Rich, 1983. “Aprendizagem é uma forma de inferência que objetiva começar com informações sobre o domínio e então, estendê-las de alguma forma”. Ginsberg, 1993. Para Russel e Norvig: "Aprender significa se comportar melhor ao adquirir experiência. Todo aprendizado aprende a representação de uma função." Aprendizagem Tarefas Humanas: Reconhecer pessoas pelo rosto ou fala; Reconhecer escrita; Reconhecer alimentos pelo cheiro; Reconhecimento de Padrões Aprendizagem Tarefas complexas: Análise de dados de compra de uma loja Identificar produtos que são vendidos em conjunto; Recomendar produtos de acordo com perfil do cliente. Previsão de séries temporais Bolsa de valores; Vazão de água. Encontrar novos conhecimentos em grandes base de dados Etc. Reconhecimento de Padrões Inteligência Artificial Alguns anos atrás IA era vista como uma área teórica; Aplicações em problemas curiosos, desafiadores, mas de pouco valor prático; Inteligência Artificial A partir da década de 1970: Disseminação de técnicas de IA. Aquisição de conhecimento por meio de especialistas de um dado domínio: Entrevista de um especialista (Ex: Medicina); Conhecimento codificado por meio de regras lógicas; Sistemas especialistas ou baseados em conhecimento. Inteligência Artificial Últimas décadas: Aumento da complexidade dos problemas tratados Grande Volume de dados gerados; Ferramentas mais autônomas: Redução da intervenção humana e dependência de especialistas; Inteligência Artificial Criação de técnicas que criam uma função ou hipótese para resolver problemas a partir da experiência passada. Aprendizagem de Máquina Aprendizagem de Máquina Técnica de inteligência artificial; Problemas reais. Computadores são programados para aprender com a experiência passada; Aprendizagem de Máquina Áreas correlatas: Probabilidade e estatística; Teoria da computação; Neurociência; Teoria da informação Aprendizagem de Máquina Aplicações: Reconhecimento de fala; Predição de taxas de cura de pacientes com diferentes doenças; Detecção de uso fraudulento de cartões de crédito; Condução de automóveis de forma autônoma em rodovias; Ferramentas que jogam gamão ou xadrez de forma semelhante a campeões; Diagnóstico de câncer por meio de análise de dados de expressão gênica. Tarefas de Aprendizado Paradigma de aprendizado: Preditivo Indutivo Preditivo Capacidade de aprender através de condicionamento ou reflexo sem explicação ou descrição do problema para realizar algum objetivo. Gera uma previsão para antecipar o resultado de alguma ação. Nos seres vivos, possui o objetivo de manter um bom funcionamento biológico, garantindo sobrevivência e reprodução. Indução de Hipóteses Aprendizagem em humanos consiste em (pelo menos): Memorização, compreensão, aprendizado a partir de exemplos; Aprendendo com exemplos: Números quadrados: 1, 4, 9, 16 1 = 1 * 1, 4 = 2 * 2; 9 = 3 * 3; 16 = 4 * 4; Qual é o próximo da série? Podemos aprender isso por exemplo com bastante facilidade Aprendizagem de máquina é amplamente dominado por: Aprendendo com exemplos O raciocínio indutivo Induzir um padrão (hipótese) de um conjunto de exemplos Por que a aprendizagem funciona? “É quase certo que qualquer hipótese que esteja seriamente errada será "desmascarada" com alta probabilidade após um pequeno número de exemplos, por que fará uma previsão incorreta. Desse modo, qualquer hipótese que seja consistente com um conjunto bastante grande de exemplos de treinamento terá pouca probabilidade de estar seriamente errada: isto é, ela deve estar provavelmente aproximadamente correta (aprendizagem PAC). 18 Aprendizagem de Máquina Aprendizagem Supervisionada: Ocorre nas situações em que é possível perceber tanto as entradas como as saídas; Frequentemente as saídas são fornecidas por um supervisor(especialista) humano; Envolve aprendizagem de uma função a partir de exemplos de suas entradas e saídas. Aprendizagem Não-Supervisionada: Envolve a aprendizagem de padrões na entrada, quando não são fornecidos valores de saída específicos. Aprendizagem por Reforço: O agente deve aprender a partir do reforço (recompensa) ou punição. 19 A Máquina Aprendendo Especifique seu problema como uma tarefa de aprendizagem; Conjunto de exemplos de seu problema. Escolha o método de aprendizagem; Aplicar o método de aprendizagem; Avaliar os resultados e o método. Representação de Exemplos Conjunto de exemplos; Atributos de domínio; Erros nos exemplos. Conjunto de Exemplos Aprendendo com exemplos: Expresse como um problema de aprendizagem de conceitos Através do qual o conceito resolve o problema categorização Normalmente precisa fornecer pares (E, C) Em que E é um exemplo, C é uma categoria Positivos: (E, C) onde C é a categoria correta para E Negativos: (E, C) onde C é uma categoria incorreta para E Técnicas que não necessitam de negativos Podem aprender apenas a partir de exemplos positivos Perguntas sobre exemplos: Quantos exemplos a técnica precisa para realizar a tarefa? Será que precisamos de ambos os exemplos positivos e negativos? Conjunto de Exemplos Problema: aprenda razões para taxonomia de animais: Em mamíferos, peixes répteis e aves. Positivos: (gato = mamífero); (cão = mamífero); (truta=peixe); (águia = pássaro); (crocodilo = réptil); Negativos: (condor = peixe); (rato = aves); (truta=mamífero);(ornitorrinco = pássaro); (humano = réptil). Atributos de Domínio Conceitos que descrevem os exemplos (Alguns) serão encontrados na solução para o problema. Alguns conceitos são necessários para especificar exemplos: Exemplo: dados do pixel para reconhecimento de escrita. Alguns conceitos são atributos dos exemplos (funções) número_de_pernas(humano) = 2; revestimento(truta) = escama Alguns conceitos especificam categorizações binárias: e_homeotérmico(humano); poe_ovos(truta); Questões sobre os conceitos de domínio: O que será mais útil na solução? O que pode ser descartado sem preocupação? Quais são binários, quais são funções? Erros Nos Exemplos Nos exemplos do mundo real os erros são muitos e variados, incluindo: Categorizações incorretas: Por exemplo, (ornitorrinco = pássaro) dado como um exemplo positivo. Dados faltantes: Sem informação do revistimento para o atributo para falcão. Informação de fundo incorreto Exemplo:, e_homeotérmico (lagarto) Dados repetidos: Por exemplo, dois valores diferentes para a mesma função e entrada: revestimento(ornitorrinco) = penas e revestimento(ornitorrinco) = pele Reconhecimento de Caracteres Positivo: – Está é a letra S: Conceito de domínio: Informação do pixel Categorias: Pares (Matriz, Letra) Exemplos positivos e negativos Negativo: – Está é a letra Z: Tarefa Classificar (Categorizar) corretamente um exemplo não visto entre uma das 26 categorias (A-Z) Algoritmos de Aprendizagem Árvore de Decisão Redes Neurais Algoritmos probabilísticos Algoritmos Evolutivos Algoritmos de Clustering Aplicando Algoritmos de Aprendizagem Divisão do conjunto de exemplos (dados): Conjunto de Treinamento Conjunto de Validação Conjunto de Teste Tarefas: Classificação; Agrupamento; Regressão; Aplicando Algoritmos de Aprendizagem Dados: exemplos rotulados, por exemplo e-mails rotulados spam / email: Conjunto de treinamento; Conjunto validação; Conjunto de teste. Características: pares atributo-valor que caracterizam cada exemplo. Ciclo de experimentação: Aprender parâmetros (por exemplo, as probabilidades do modelo) no conjunto de treinamento Ajustar os parâmetros com o conjunto de validação (Fase pode não estar presente em alguns algoritmos) Calcular precisão no conjunto de teste Muito importante: nunca “olhar" o conjunto de teste! Avaliação: Precisão: fração de exemplos previstos corretamente Dados de Treinamento Dados de Validação Dados de Teste Conjunto de Validação Encontrar os parâmetros desconhecidos do algoritmo de aprendizagem Exemplos: Pesos das redes neurais, Como aprender? Aprender parâmetros do conjunto de treinamento Ajustar os parâmetros em dados diferentes Porquê? Para cada valor dos parâmetros, treine e teste no conjunto de validação Escolha o melhor valor e realize um teste no conjunto de testes. Classificação Exemplo x x Débitos Cluster x Rede x x x x Regressão neural x t Em dia Débito com pagamento salários 31 Análise de Agrupamento (Clustering) Exemplo: Empréstimo Dada uma massa de dados sobre o consumo no Brasil, determinar quantas classes ou padrões de comportamento consumista existem x x Cluster 1x xx Ativo x x x x Cluster 2 - xx x x x x x x x Cluster 3 Passivo Saldo conta corrente Moderado 32 Outro Exemplo: Filtro de Spam Entrada: x = e-mail Saída: y = “spam”ou “email” Setup: Obter uma grande coleção de e-mails, cada um identificado como "spam" ou “email“ OBS: Alguém tem que rotular esses dados na mão! Quer aprender a prever rótulos de novos e-mails futuros. Características: Os atributos utilizados para tomar a decisão: email / spam Palavras: FREE! Padrões de Texto: $dd, CAPS Non-text: SenderInContacts … Dear Sir. First, I must solicit your confidence in this transaction, this is by virture of its nature as being utterly confidencial and top secret. … TO BE REMOVED FROM FUTURE MAILINGS, SIMPLY REPLY TO THIS MESSAGE AND PUT "REMOVE" IN THE SUBJECT. 99 MILLION EMAIL ADDRESSES FOR ONLY $99 Ok, Iknow this is blatantly OT but I'm beginning to go insane. Had an old Dell Dimension XPS sitting in the corner and decided to put it to use, I know it was working pre being stuck in the corner, but when I plugged it in, hit the power nothing happened. Filtro de Spam Classificador Dados: Coleção de e-mails rotulados, spam or email Crie conjuntos de treinamento, validação e teste. Classificador Aprende com o conjunto de treinamento (Ajusta com o conjunto de validação) Testa em novos e-mails Dear Sir. First, I must solicit your confidence in this transaction, this is by virture of its nature as being utterly confidencial and top secret. … TO BE REMOVED FROM FUTURE MAILINGS, SIMPLY REPLY TO THIS MESSAGE AND PUT "REMOVE" IN THE SUBJECT. 99 MILLION EMAIL ADDRESSES FOR ONLY $99 Ok, Iknow this is blatantly OT but I'm beginning to go insane. Had an old Dell Dimension XPS sitting in the corner and decided to put it to use, I know it was working pre being stuck in the corner, but when I plugged it in, hit the power nothing happened. Avaliação de Sistemas de Aprendizado Experimental Conduzir experimentos controlados com validação cruzada para comparar métodos em uma variedade de bases de dados. Coletar dados sobre o seu desempenho, ex.: acurácia de teste, tempo de treinamento, tempo de teste. Analisar diferenças quanto a significância estatística. Teórica Analisar algoritmos matematicamente e provar teoremas sobre sua: Complexidade computacional Abilidade de se adaptar aos dados de treinamento Número de exemplos de treinamento necessários para se aprender uma função correta Generalização e Overfitting Generalização: Classificador com boa precisão nos dados de testes Overfitting: Precisão muito alta nos dados de treinamento, mas não generaliza bem aos dados de teste. O que fazer em caso de muitos erros? Precisa de mais características? Características existentes descrevem bem o problema? Parâmetros dos algoritmos de aprendizagem foram inicializados corretamente? Que tal avaliar outro algoritmo? Reconhecedor de números Entrada: x = matriz de pixels Saída: y = um número 0-9 Example: Digit Recognition Configuração: Obter uma grande coleção de imagens, cada uma rotulada com um dígito Nota: alguém tem que rotular a mão todos os dados! Quer aprender a prever rótulos de novas imagens Características: Atributos que ajudem a tomar uma decisão de qual dígito a imagem representa Pixels: (6,8)=ON Padrões de Forma: NumComponentes, NumLoops,entropia … 0 1 2 1 ?? Recursos Bases de Dados UCI Repository: http://www.ics.uci.edu/~mlearn/MLRepository.html UCI KDD Archive: http://kdd.ics.uci.edu/summary.data.application.html Statlib: http://lib.stat.cmu.edu/ Delve: http://www.cs.utoronto.ca/~delve/ LETOR: http://research.microsoft.com/enus/um/beijing/projects/letor/index.html Ferramenta WEKA: http://www.cs.waikato.ac.nz/ml/weka/ Matlab: http://www.mathworks.com/products/matlab/ RapidMiner: http://rapid-i.com/content/view/181/190/ 40