Aprendizado de Máquina



Documentos relacionados
INF 1771 Inteligência Artificial

Aprendizagem de Máquina

Aprendizagem de Máquina

Aprendizagem de Máquina

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS

Projeto de Redes Neurais e MATLAB

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Redes Neurais. Profa. Flavia Cristina Bernardini

FUNDAÇÃO DE APOIO AO ENSINO TÉCNICO DO ESTADO DO RIO DE JANEIRO FAETERJ Petrópolis Área de Extensão PLANO DE CURSO

MLP (Multi Layer Perceptron)

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

Complemento II Noções Introdutória em Redes Neurais

Do neurônio biológico ao neurônio das redes neurais artificiais

Laboratório de Mídias Sociais

Algoritmos Indutores de Árvores de

Web Data mining com R: aprendizagem de máquina

Projeto Pedagógico do Bacharelado em Ciência da Computação. Comissão de Curso e NDE do BCC

Matemática Financeira II

UNIVERSIDADE FEDERAL DE PERNAMBUCO - PRÓ-REITORIA PARA ASSUNTOS ACADÊMICOS CURRÍCULO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO PERFIL

Inteligência Artificial

Redes Neurais. A IA clássica segue o paradigma da computação simbólica

IA: Introdução. Prof. Msc Ricardo Britto DIE-UFPI

Programação para Computação

Inteligência Artificial

Aplicações Práticas com Redes Neurais Artificiais em Java

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Aula 2 RNA Arquiteturas e Treinamento

TÓPICOS AVANÇADOS EM ENGENHARIA DE SOFTWARE

Paradigmas da IA. Eixos centrais (das diferenças)

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Universidade Federal de São Paulo Campus São José dos Campos LISTA DE DISCIPLINAS DA GRADUAÇÃO

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Data, Text and Web Mining

Inteligência Artificial. Redes Neurais Artificiais

EMENTAS DAS DISCIPLINAS

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Jogos - aula 2. Xadrez chinês. Exemplo de função de avaliação:

TCC04040 Inteligência Artificial. Inteligência Artificial

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

ADM041 / EPR806 Sistemas de Informação

Aprendizagem de Máquina. Ivan Medeiros Monteiro

O que é a ciência de dados (data science). Discussão do conceito. Luís Borges Gouveia Universidade Fernando Pessoa Versão 1.

Prof. Msc. Paulo Muniz de Ávila

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014

Linguagem algorítmica: Portugol

Revisão Inteligência Artificial ENADE. Prof a Fabiana Lorenzi Outubro/2011

Introdução à Inteligência Artificial (Capítulo 1 - Russell) Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

IA: Busca Competitiva. Ricardo Britto DIE-UFPI

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

QUALIDADE DE SOFTWARE

Processos de Desenvolvimento de Software

UNIVERSIDADE FEDERAL DE SANTA CATARINA

Matlab - Neural Networw Toolbox. Ana Lívia Soares Silva de Almeida

O Processo de KDD. Data Mining SUMÁRIO - AULA1. O processo de KDD. Interpretação e Avaliação. Seleção e Pré-processamento. Consolidação de dados

IC Inteligência Computacional Redes Neurais. Redes Neurais

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Computadores de Programação (MAB353)

GERENCIAMENTO DO CONHECIMENTO NA EMPRESA DIGITAL

Lista de Exercícios Tratamento de Incerteza baseado em Probabilidade

MC-102 Aula 01. Instituto de Computação Unicamp

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Reconhecimento de marcas de carros utilizando Inteligência Artificial. André Bonna Claudio Marcelo Basckeira Felipe Villela Lourenço Richard Keller

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Curso: Bacharelado em Informática. Instituto de Ciências Matemáticas e de Computação

Universidade Federal de Alfenas

Fundamentos de Teste de Software

Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse

Aprendizagem de Máquina

Dadas a base e a altura de um triangulo, determinar sua área.

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Nathalie Portugal Vargas

Profissionais de Alta Performance

CI165 Introdução. André Vignatti. 31 de julho de 2014

INF 1771 Inteligência Artificial

Redes Neurais Construtivas. Germano Crispim Vasconcelos Centro de Informática - UFPE

Estratégias de Pesquisa

Análise e visualização de dados utilizando redes neurais artificiais auto-organizáveis

Lógica de Programação

3 Metodologia de Previsão de Padrões de Falha

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

6 Construção de Cenários

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Data Mining. Origem do Data Mining 24/05/2012. Data Mining. Prof Luiz Antonio do Nascimento

Aprendizagem de Máquina

Roteiro para preparação de proposta de Trabalhos Técnico-Científicos

Mas como você gera sua lista de ? Listei abaixo algumas das formas de construir uma lista de marketing eficaz;

Sistema Tutor Inteligente baseado em Agentes. Pedagógicas da Universidade Aberta do Piauí. Prof. Dr. Vinicius Ponte Machado

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Transcrição:

Referências Aula 1 http://www.ic.uff.br/~bianca/aa/ Slides das aulas: na página http://www.ic.uff.br/~bianca/aa/ Livro-texto: Machine Learning Tom M. Mitchell McGraw-Hill, 1997 http://www.cs.cmu.edu/~tom/mlbook.html (Pasta 524, xerox do Bloco E Artigos que serão citados ao longo do curso. Aula 1-16/03/10 1 Aula 1-16/03/10 2 Tópicos 1. Introdução Cap. 1 (16/03 2. Classificação Indutiva Cap. 2 (23/03 3. Árvores de Decisão Cap. 3 (30/03 4. Ensembles - Artigo (06/04 5. Avaliação Experimental Cap. 5 (13/04 6. Teoria do Aprendizado Cap. 7 (20/04 7. Aprendizado de Regras Cap. 10 (27/04 8. Redes Neurais Cap. 4 (04/05 9. Máquinas de Vetor de Suporte Artigo (11/05 10. Aprendizado Bayesiano Cap. 6 e novo cap. online (18/05 11. Aprendizado Baseado em Instâncias Cap. 8 (25/05 12. Classificação de Textos Artigo (01/06 13. Aprendizado Não-Supervisionado Artigo (08/06 Avaliação Trabalhos Teórico (TT Trabalho Prático (TP Listas de Exercício (LE = média das notas das listas que serão dadas ao longo do curso M = (TT + TP + LE/3 Aula 1-16/03/10 3 Aula 1-16/03/10 4 Trabalhos Trabalho Prático Cada aluno deverá propôr e executar um projeto de aprendizado automático especificando o tipo de problema, base de dados, metodologia de avaliação e algoritmo(s a serem utilizados. Desenvolvido ao longo do semestre. Apresentação de 20 minutos no final do curso. Trabalho Teórico Apresentação de um artigo da área de aprendizado automático, escolhido pela professora de acordo com o interesse do aluno. Cada apresentação terá duração de 45 minutos. Aula 1-16/03/10 5 O que é aprendizado automático? Sub-área da inteligência artificial, também conhecida como machine learning ou aprendizado de máquina. Surgiu da idéia de criar programas que aprendam um determinado comportamento ou padrão automaticamente a partir de exemplos ou observações. Guarda alguma relação com o aprendizado humano. Seres humanos (e outros animais são capazes de generalizar a partir de exemplos. Aula 1-16/03/10 6 1

Qual é a relação com a mineração de dados? A mineração de dados é o processo de extração automática de conhecimento a partir de grandes bases de dados. Algoritmos de aprendizado automático podem ser vistos como algoritmos que extraem um padrão de comportamento a partir de dados (exemplos. Logo, podem ser utilizados como algoritmos de mineração de dados. Porém, algoritmos de aprendizado nem sempre utilizam bases de dados. Podem aprender diretamente a partir da interação com o ambiente ou com um simulador. Ambas as áreas emprestam muitos métodos da área de estatística. O que é aprendizado automático? Herbert Simon: Aprendizado é qualquer processo no qual um sistema melhora seu desempenho através da experiência. Qual é a tarefa? Classificação Resolução de problemas / planejamento / controle Aula 1-16/03/10 7 Aula 1-16/03/10 8 Classificação Atribuir um objeto/evento a uma categoria, pertencente a um conjunto finito de categorias Diagnóstico médico Detecção de fraude em cartões de crédito Detecção de vírus em redes de computadores Filtragem de spam em e-mails Recomendação de produtos em e-commerce Investimentos financeiros Bioinformática (sequências de DNA Reconhecimento de voz Reconhecimento de caracteres Reconhecimento de imagens Aula 1-16/03/10 9 Resolução de problemas / planejamento / controle Executar ações em um ambiente para atingir um determinado objetivo. Resolver problemas de matemática Jogar xadrez, damas ou gamão Dirigir um carro Pilotar um avião, helicóptero ou foguete Controlar um elevador Controlar um personagem em um jogo Controlar um robô móvel Aula 1-16/03/10 10 Medindo o desempenho Acurácia da classificação Corretude da solução encontrada Qualidade da solução (comprimento, eficiência Tempo de execução Por que estudar aprendizado de máquina? Desenvolver sistemas que são muito difíceis/caros de construir manualmente porque requerem conhecimentos detalhados de uma determinada tarefa. Desenvolver sistemas que possam se adaptar a usuários individualmente. Filtro de notícias ou e-mail personalizado. Sistemas de educação personalizados. Extrair conhecimento de grandes bases de dados (mineração de dados. Análise de cestas de compras (ex:. fraldas e cerveja Aula 1-16/03/10 11 Aula 1-16/03/10 12 2

Qual é a relação com a mineração de dados? A mineração de dados é o processo de extração automática de conhecimento a partir de grandes bases de dados. Algoritmos de aprendizado automático podem ser vistos como algoritmos que extraem um padrão de comportamento a partir de dados (exemplos. Logo, podem ser utilizados como algoritmos de mineração de dados. Porém, algoritmos de aprendizado nem sempre utilizam bases de dados. Podem aprender diretamente a partir da interação com o ambiente ou com um simulador. Ambas as áreas emprestam muitos métodos da área de estatística. Aula 1-16/03/10 13 Por que estudar aprendizado de máquina? Estudos computacionais do aprendizado podem ajudar a entender o aprendizado em humanos e outros organismos. Aprendizado neural Hebbiano Neurônios que disparam juntos se conectam. A dificuldade relativa de humanos em aprender conceitos disjuntivos em relação a conceitos conjuntivos. Lei da prática log(tempo log(# treinamento Aula 1-16/03/10 14 Por que estudar aprendizado de máquina? Grande quantidade de algoritmos efetivos e eficientes. Grande quantidade de dados disponíveis (principalmente online. Grande quantidade de recursos computacionais disponíveis. Definindo a tarefa de aprendizado Melhorar na tarefa, T, com respeito à métrica de desempenho, D, baseado na experiência, E. T: Jogar Damas D: Percentagem de jogos ganhos contra um adversário arbitrário E: Jogar jogos contra ele próprio T: Reconhecer palavras escritas a mão D: Percentagem de palavras corretamente reconhecidas E: Base de dados de imagens com as palavras correspondentes T: Dirigir em estradas usando sensores de visão D: Distância média dirigida antes de um erro E: Sequência de imagens e comandos de direção gravados de uma pessoa dirigindo T: Categoriza mensagens de e-mail como spam ou legítimas. D: Percentagem de mensagens de e-mail corretamente classificadas E: Base de dados de mensagens, algumas classificados por humanos Aula 1-16/03/10 15 Aula 1-16/03/10 16 Projetando um Sistema de Aprendizado Definir a experiência de treinamento. Definir exatamente o que será aprendido, i.e., a função alvo. Escolher como representar a função alvo. Escolher um algoritmo de aprendizado para inferir a função alvo a partir da experiência. Ambiente/ Experiência Algoritmo de aprendizado Conhecimento Exemplo de Problema de Aprendizado Aprender a jogar damas jogando contra si mesmo. Veremos uma abordagem similar a usada no primeiro sistema de aprendizado automático desenvolvido por Arthur Samuels na IBM em 1959. Medidor de Desempenho Aula 1-16/03/10 17 Aula 1-16/03/10 18 3

Experiência para Treinamento Experiência direta: Dar alguns exemplos de pares de entrada e saída da função alvo. Tabuleiros de damas identificados com a jogada correta, por exemplo extraídos do jogo de um especialista. Experiência indireta: Dar feedback que não é um par de E/S para a função alvo. Sequencias potencialmente arbitrárias de jogadas e o resultado final do jogo. Problema da atribuição de crédito: Como atribuir crédito a jogadas individuais quando a experiência é indireta? Fonte dos dados de treinamento Exemplos aleatórios. Exemplos negativos também ou só positivos? Exemplos de treinamento escolhidos por um professor benevolente. Exemplos didáticos. Algoritmo pode pedir o rótulo de um exemplo qualquer no ambiente. Algoritmo pode construir um exemplo e pedir o rótulo desse exemplo. Algoritmo pode conduzir experimentos no ambiente sem ajuda humana. Aula 1-16/03/10 19 Aula 1-16/03/10 20 Distribuição de Treinamento vs. Distribuição de Teste Generalmente supomos que os exemplos de treinamento e de teste são derivados independentemente da mesma distribuição IID: Independentemente e identicamente distribuídos. Se os exemplos não são independentes, precisamos de classificação coletiva. Se a distribuição de teste é diferente, precisamos de aprendizado de transferência. Aula 1-16/03/10 21 Escolhendo uma função alvo Que função deve ser aprendida e como ela será usada pelo sistema? Para damas, supomos que é dada uma função para gerar jogadas possíveis a partir de uma dada posição do tabuleiro e queremos decidir qual é a melhor jogada. Podemos aprender a função: Escolher jogada(tabuleiro, jogadas melhor jogada Ou podemos aprender uma função de avaliação, V(tabuleiro R, que dá para cada posição do tabuleiro um score do quão favorável ela é. V pode ser usada para escolher uma jogada. Aula 1-16/03/10 22 Definição ideal de V( Se b é um tabuleiro final ganhador, então V( = 100 Se b é um tabuleiro final perdedor, então V( = 100 Se b é um tabuleiro final de empate, então V( = 0 Senão, V( = V(b, onde b é a posição final do tabuleiro com maior score possível que é atingida começando de b e jogando de forma ótima até o fim do jogo (supondo que o oponente joga de forma ótima também. Pode ser computado usando a árvore de busca minimax. Aproximando V( Calcular V( não é tratável porque envolve buscar em uma árvore completa exponencial. Logo essa definição é não-operacional. Uma definição operacional pode ser calculada em tempo razoável (polinomial. Precisamos aprender uma aproximação operacional da função de avaliação ideal. Aula 1-16/03/10 23 Aula 1-16/03/10 24 4

Representando a função alvo A função alvo pode ser representada de muitas formas: tabela, regras simbólicas, função numérica, rede neural. Existe um trade-off entre a expressividade da representação e a facilidade de aprendizado. Quanto mais expressiva for a representação, melhor ela será em representar uma função arbitrária; porém, mais exemplos serão necessários pra aprender a função corretamente. Aula 1-16/03/10 25 Função linear para representar V( Em damas, usamos uma aproximação linear da função de avaliação. V = w + w bp( + w rp( + w bk( + w rk( + w bt( + w rt( ( 0 1 2 3 4 5 6 b bp(: número de peças pretas no tabuleiro b rp(: número de peças vermelhas no tabuleiro b bk(: número de reis pretos no tabuleiro b rk(: número de reis vermelhos no tabuleiro b bt(: número de peças ameaçadas (i.e. que serão pegas pelo vermelhor na próxima joga rt(: número de peças vermelhas ameaçadas Aula 1-16/03/10 26 Obtendo valores de treinamento Supervisão direta pode existeir para a função alvo. < <bp=3,rp=0,bk=1,rk=0,bt=0,rt=0>, 100> (preto ganhou Com feedback indireto, valores de treinamento podem ser estimados usando aprendizado de diferença temporal (usado em aprendizado por reforço. Aula 1-16/03/10 27 Aprendizado de Diferenças Temporais Estimar valores de treinamento para posições de tabuleiro não-terminais usando o valor estimado do seu sucessor em um jogo real. V train ( = V (successor( onde successor( é a próxima posição do jogo. Valores mais para o final do jogo são inicialmente mais corretos e o treinamento continuado faz com que eles sejam trazidos lentamente para as posições mais do início. Aula 1-16/03/10 28 Algoritmo de Aprendizado Usa valores de treinamento da função alvo para induzir uma definição que esteja de acordo com esses exemplos e que esperamos que generalize para exemplos não vistos. Em estatística, aprender a aproximar uma função contínua é chamado de regressão. Tenta minimizar uma medida de erro tal como: 2 [ Vtrain ( V ( ] b B E = B Aula 1-16/03/10 29 Algoritmo Least Mean Squares (LMS Um algoritmo de descida de gradiente que muda os pesos de uma função linear tentando minimizar o erro médio quadrático. Até que os pesos convirjam: Para cada exemplo de treinamento b faça : 1 Calcule o erro absoluto : error ( = Vtrain ( V ( 2 Para cada característica do tabuleiro, f i, mude seu peso, w i : wi = wi + c fi error( para alguma constante pequena c Aula 1-16/03/10 30 5

Discussão do LMS Intuitivamente, LMS executa as seguintes regras: Se a saída de um exemplo for correta, não faça modificações. Se a saída for muito alta, diminua os pesos proporcionalmente aos valores das suas características correspondentes, de tal forma que a saída diminua. Se a saída for muito baixa, aumente os pesos proporcionalmente aos valores das suas características correspondentes, de tal forma que a saída aumente. Sob suposições fracas, podemos provar que o LMS irá convergir a um conjunto de pesos que minimiza o erro médio quadrático. Aula 1-16/03/10 31 Conclusões sobre o aprendizado O aprendizado pode ser visto como o uso de experiência direta ou indireta pra aproximar uma função. Aproximação de funções pode ser vista como uma busca num espaço de hipóteses (representações de funções por uma que melhor se adapta ao conjunto de treinamento. Métodos de aprendizado diferentes usam espaços de hipóteses diferentes (linguagens de representação e/ou usam técnicas de busca diferentes. Aula 1-16/03/10 32 Funções de Representação Funções numéricas Regressão linear Redes neurais Máquinas de vetor de suporte (SVMs Funções simbólicas Árvores de decisão Regras em lógica proposicional Regras em lógica de primeira ordem Funções baseadas em instância Vizinho mais próximo Baseadas em casos Modelos gráficos probabilísticos Naïve Bayes Redes Bayesianas Modelos de Markov Ocultos (HMMs Gramáticas Probabilísticas Livres de Contexto (PCFGs Redes de Markov Aula 1-16/03/10 33 Algoritmos de Busca Descida de gradiente Perceptron Backpropagation Programção dinâmica Aprendizado de HMM Aprendizado de PCFG Divisão e conquista Indução de árvores de decisão Aprendizado de regras Computação evolucionária Algoritmos genéticos (GAs Programação genética (GP Aula 1-16/03/10 34 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 Histórico do 1950s Jogador de damas de Samuel Pandemonium de Selfridge 1960s: Redes neurais: Perceptron Reconhecimento de padrões Teoria do aprendizado no limite Minsky e Papert provam limitações do Perceptron 1970s: Indução de conceitos simbólicos Algoritmo de Winston Sistemas especialistas e gargalo da aquisição de conhecimento Algoritmo de árvore de decisão ID3 Michalski s AQ e diagnóstico de soja Descoberta científica com BACON Descoberta matemática com AM Aula 1-16/03/10 35 Aula 1-16/03/10 36 6

Histórico do 1980s: Aprendizado de regras e árvores de decisão avançado Aprendizado em planejando e resolução de problemas Analogia Arquiteturas cognitivas Ressurgimento de redes neurais Teoria do Aprendizado PAC Foco na metodologia experimental 1990s Mineração de dados Agentes de software adaptativos e mineração web Aprendizado de textos Aprendizado por reforço (RL Programação lógica indutiva (ILP Ensembles: Bagging, Boosting e Stacking Aprendizado de redes neurais Aula 1-16/03/10 37 Histórico do 2000s Máquinas de Vetor de Suporte Métodos de Kernel Modelos Gráficos Aprendizado Relacional Aprendizado de Transferência Rotulação de Sequências Classificação Coletiva Aplicações a Sistemas de Computação Compiladores Debugging Computação Gráfica Segurança Gerenciamento de e-mail Assistentes personalizados que aprendem Aprendizado em visão e robótica Aula 1-16/03/10 38 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/ Aula 1-16/03/10 39 7