Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação Genética e Machine Learning (Breve introdução)

Programação Genética e Machine Learning (Breve introdução)

A Programação Genética (PG) é uma técnica de Machine Learning (ML) utilizada na resolução de problemas de optimização. Nesta palestra serão apresentados alguns algoritmos de PG e ML para a construção de soluções computacionais inteligentes para problemas locais com exemplos em Matlab e Python.

dizando•norton

January 17, 2015
Tweet

More Decks by dizando•norton

Other Decks in Programming

Transcript

  1. Dizando Norton ([email protected]) Programação Genética e Machine Learning (Breve introdução

    com exemplos em Python) Auditorio da SISTEC, 17 de Janeiro de 2015
  2. Escreva um algoritmo para preencher uma mochila com objectos de

    diferentes pesos e valores, de formas a que no final se preencha a mochila com maior valor possível não ultrapassando o peso máximo! Vale um prémio!!!
  3. A ciência da computação desenvolveu tremendamente nos últimos anos, mas

    ainda existem alguns problemas que: • Não podem ser resolvidos por algoritmos “tradicionais” e tempo razoável • problemas NP • Não podem ser resolvidos por algoritmos tradicionais, mesmo!!! • Reconhecimentos de faces • Condução de robots num ambiente dinâmico • … Motivação 1. Machine Learning
  4. “Estudo dos algoritmos capazes melhorar automaticamente por meio de experiências”

    [Mitchell, 1990] • Para resolver problemas complexos em ML, tenta-se dar aos computadores a habilidade de aprender • É resolver o problema sem dizer ao computador como resolvê-lo! Muitos algoritmos ou métodos de ML são inspirados na natureza (e.g. redes neuronais, algoritmos evolucionários, ant colony optimization, swarm intelligence) Definição 1. Machine Learning
  5. • Negócios • Bancos, Supermercados • Recuperação de informação •

    BigData • Informação multimédia* • Sistemas de comunicação • Reconhecimento de voz • Análise de imagens • ,,,, Aplicações 1. Machine Learning
  6. Previsão 1. Machine Learning problema real dados brutos conhecimento especializado

    dados de treino X, (Y) Formulação Extração de características Algoritmos de aprendizagem Previsor (Classificação / Regração)
  7. • Notação • Entrada X: X é geralmente multidimensional. Cada

    dimensão de X é denotada por Xj e é chamada de característica, ou variável independente • Saída Y: resposta, variável dependente • Categorização • Aprendizagem supervisionada vs não-supervisionada • Conhecemos Y nos dados? • Regressão vs Classificação • Y é quantitativo (numérico) ou qualitativo (classes) Terminologia 1. Machine Learning
  8. Técnicas de Regressão 1. Machine Learning • Regressão linear •

    Regressão logística • Árvores de Decisão (ID3, C4.5) • Regras de Associação • Raciocínio baseado em memória • Classificadores Bayesianos (Naive Bayes, MAP, Erro de Bayes) Técnicas de Classificação
  9. • Um dos algoritmos de ML mais simples • Apresentam

    uma forma de classificação completamente transparente • Após o treinamento, resumem-se a expressões if-then em forma de árvore Árvores de Decisão 1. Machine Learning
  10. 1. Machine Learning Tempo Temperatura Humidade Vento? Jogar? Sol quente

    elevada forte não Sol quente elevada fraco não Nuvens quente elevada forte sim Chuva suave elevada forte sim Chuva fria normal forte sim Chuva fria normal fraco não Nuvens fria normal fraco sim Sol suave elevada forte não Sol fria normal forte sim Chuva suave normal forte sim Sol suave normal fraco sim Nuvens suave elevada fraco sim Nuvens quente normal forte sim Chuva suave elevada fraco não Árvores de Decisão
  11. “Resolver um problema de optimização significa encontrar a melhor solução

    (solução óptima) num conjunto de soluções alternativas” Mais formalmente: • Um par (S, f) • Onde S é o conjunto de todas as possíveis soluções (espaço de pesquisa) e f é uma função: f = S -> R • f quantifica a qualidade das soluções em S e é chamada função de custo, ou função de fitness Definição Informal 2. Problemas de optimização
  12. • Um problema de optimização é um problema de minimização

    se consiste em procurar por uma solução s tal que f(s) seja o menor entre todas as soluções • Um problema de optimização é um problema de maximização se consiste em procurar por uma solução s tal que f(s) seja o maior entre todas as soluções Definição 2. Problemas de optimização
  13. • É a forma mais natural e imediata de resolver

    um problema de optimização • Consiste na tentativa de melhorar a fitness passo por passo através do conceito de vizinhança Exemplo: Algoritmo Hill Climbing 2. Problemas de optimização
  14. • Simulated Annealing • Pesquisa Tabú • Algoritmos Evolutivos (Algoritmos

    Genéticos, Programação Genética, etc.) • Programação Linear • Ajuste de curva Outros algoritmos de optimização 2. Problemas de optimização
  15. CUSTO TEMPO a regressão linear apenas se ajusta a uma

    linha recta os seus dados a regressão não-linear requer um modelo prévio seja fornecido a regressão simbólica encontra o melhor modelo automaticamente
  16. Por exemplo, dado um conjunto de dados Procuramos uma função

    f tal que e que se ajuste aos dados (treino) e capaz de generalizar-se a outros dados não conhecidos (teste) Um pouco como a famosa Regressão Linear 2. Problemas de optimização conjunto de treino! aprendizagem!
  17. Definição 3. Programação Genética Técnica de optimização inspirada na teoria

    da evolução natural das espécies de Charles Darwin 1. Reprodução 2. Adaptação 3. Herança 4. Variação 5. Competição
  18. O processo 3. Programação Genética • Em Programação Genética (PG)

    as soluções (indivíduos) são programas de computador representados por árvores de sintaxe • Os indivíduos são construídos a partir de um conjunto de funções e um conjunto de terminais • Por exemplo: os conjuntos F = {+, -, *, %, AND, OR, NOT} e T={x1, x2} podem dar origem ao indivíduo • Que dá origem ao programa: f(x1, x2) = x1*x2 + (x1 - x2)
  19. Fitness 3. Programação Genética • Capacidade que um indivíduo tem

    em resolver um problema • Exemplo: dado o conjunto de dados • A fitness do indivíduo f(x1, x2) = x1*x2 + (x1 - x2) é fit(f) = |f(1,-1) - 0| + |f(0,1) - (-1)| + … + |f(2,-1) - 7| = 95
  20. Seleção 3. Programação Genética • A seleção é uma operação

    baseada na fitness do indivíduo • Os indivíduos são selecionados para participarem do processo cruzamento, mutação e reprodução
  21. Antes de se executar a PG 3. Programação Genética •

    Deve-se definir a forma de representação das soluções • Definir uma medida de avaliação das soluções (fitness) • Definir os seguintes parâmetros 1. Tamanho da população (nº de soluções) 2. Técnica de inicialização da população 3. Algoritmo de selecção 4. Método e taxa de cruzamento e de mutação 5. Profundidade máxima dos indivíduos • Definir o critério de paragem
  22. Show me some more! X1 X2 Resultado 26 35 829

    8 24 141 20 1 467 33 11 1215 37 16 1517 Problema! Encontre uma função que dado X1 e X2 devolva Resultado
  23. Centro Tecnológico Nacional 4. Desafios e Oportunidades • Está a

    desenvolver iniciativas para a utilização de ML/IA em projectos nacionais • Em breve haverá uma demanda de profissionais com estes conhecimentos • Hoje em dia 1. As apps tendem a ser cada vez mais orientadas a experiência do utilizador (inteligentes, adaptáveis, etc) 2. Empresas procuram profissionais com forte domínio em inteligência computacional e matemática Além disso
  24. Exemplos de problemas a modelar 4. Desafios e Oportunidades •

    Previsão do crescimento da população angolana • Utilizando os dados CENSO 2014 • O problema da mobilidade na cidade Luanda • Engarrafamentos, distribuição de serviços, parques de estacionamentos, poluição automóvel, etc. • Descoberta e optimização de compostos em medicamentos • Estimação das propriedades farmacocinéticas dos compostos químicos • Previsão do retorno de investimentos na bolsa de valores!!!
  25. Mais informações Livros • Machine Learning - Mitchell • A

    Field Guide to Genetic Programming - Poli, Langdon, McPhee Ferramentas GPLab http://scikit-learn.org http://gplab.sourceforge.net http://weka.waikato.ac.nz Online • Coursera: Machine Learning - Prof. Andrew Ng • http://youtu.be/4ONBVNm3isI http://pyevolve.sourceforge.net
  26. Dizando Norton, MSc Professor no Curso de Ciência da Computação

    na Faculdade de Ciências da UAN Co-organizador do GDG Luanda … www.dizando.me www.gdgluanda.org www.angopreneur.org www.itevent.us