Aprendizagem de máquina: visão geral Francisco Carvalho, Paulo Adeodato, Geber Ramalho, Jacques Robin, Marcilio Campos, Teresa Ludermir CIn-UFPE Técnicas de aprendizagem Paradigma simbólico: Aprendizagem de conceitos por busca no espaço de soluções (version-space) Indução de árvores de decisão e regras proposicionais Programação em lógica indutiva Raciocínio baseado em casos Agrupamento de conceitos proposicionais Paradigma Fuzzy: Fuzzy clustering Paradigma probabilista: K Vizinhos mais próximo Regressão estatística Aprendiz bayesiano ingênuo Paradigma conexionista: Perceptron multicamada Redes de Kohonen Memórias associativas Paradima evolucionista: Algoritmos genéticos Abordagens híbridos: Rede bayesianas Sistemas neuro-fuzzy Classificação Bayesiana Aprendizado probabilista: Cálcula probabilidades explícitas para hipóteses, entre as abordagens mais práticas para certos tipos de porblemas de aprendizagem Incremental: Cada exemplo pode, incrementalmente, aumentar/diminuir a probabilidade de que uma hipótese seja correta. Pode-se combinar conhecimento prévio com dados observados Previsão probabilistica: Previsão de multiplas hipóteses, ponderadas pelas suas probabilidades Teorema de Bayes Dado um conjunto de dados de treinamento D, a probabilidade a posteriori de uma hipótese , P(h|D) segue o teorema de Bayes P(h | D) P(D | h)P(h) P(D) MAP hipótese de maior probabilidade a posteriori h arg max P(h | D) arg max P(D | h)P(h). MAP hH hH Dificuldade prática: requer conhecimento inicial de muitas probabilidades, custo computacional significativo Classificação Bayesiana O problema de classificação pode ser formulado usando-se probabilidades a posteriori: P(C|X) = prob. de que a observação X=<x1,…,xk> seja da classe C. Ideia: atribuir a observação X a classe de rótulo C tal que P(C|X) é máximo Estimação de probabilidades a posteriori Teorema de Bayes: P(C|X) = P(X|C)·P(C) / P(X) P(X) é constante para todas as classes P(C) = frequencia relativa dos exemplos da classe C C tal que P(C|X) é maximo = C tal que P(X|C)·P(C) é máximo Problema: Calculo de P(X|C) é irrealizável Classificador Bayesiano Igenuo Suposição ingenua: independencia entre os atributos P(x1,…,xk|C) = P(x1|C)·…·P(xk|C) Se o I-ésimo atributo é categorico: P(xi|C) é estimado como a frequência relativa das observações tendo valor xi para o I-ésimo attribute na classe C Se o i-ésimo atributo é continuo: P(xi|C) é estimatedo via uma função de densidade Gaussiana Computacionalmente facil em ambos os casos Classificador bayesiano ingênuo: exemplo Dia Tempo Temp. Humid. D1 Sol Quente Alta D2 Sol Quente Alta D3 Coberto Quente Alta D4 Chuva Normal Alta D5 Chuva Frio Normal D6 Chuva Frio Normal D7 Coberto Frio Normal D8 Sol Normal Alta D9 Sol Frio Normal D10 Chuva Normal Normal Vento Fraco Forte Fraco Fraco Fraco Forte Forte Fraco Fraco Fraco D11 Sol Forte Frio Alta Jogar Não Não Sim Sim Não Não Sim Não Sim Sim ? P(Sim) = 5/10 = 0.5 P(Não) = 5/10 = 0.5 P(Sol/Sim) = 1/5 = 0.2 P(Sol/Não) = 3/5 = 0.6 P(Frio/Sim) = 2/5 = 0.4 P(Frio/Não) = 2/5 = 0.4 P(Alta/Sim) = 2/5 = 0.4 P(Alta/Não) = 3/5 = 0.6 P(Forte/Sim) = 1/5 = 0.2 P(Forte/Não) = 2/5 = 0.4 P(Sim)P(Sol/Sim) P(Frio/Sim) P(Alta/Sim) P(Forte/Sim) = 0.0032 P(Não)P(Sol/Não)P(Frio/Não) P(Alta/Não) P(Forte/Não) = 0.0288 Jogar_Tenis(D11) = Não A hipótese de independencia… … torna os cálculos possíveis … torna o classificador ótimo quando satisfeita … mas é raramente satisfeita na pratica, pois os atributos (variaveis) frequentemente são correlacionadas Tentativa para superar essa limitação: • Redes Bayesianas, combina o raciocinio Bayesiano com relações causais entre atributos Redes Bayesianas Hostoria Familiar Fumante (HF, F) (HF, ~F)(~HF, F) (~HF, ~F) CancerPulmão RaioXPositive Emfisema Dispneia Rede Bayesiana CP 0.8 0.5 0.7 0.1 ~CP 0.2 0.5 0.3 0.9 A tabela de probabilidades condicional para a variável CancerPulmão Resdes Bayesianas Redes Bayesianas adimitem um subconjunto de variáveis condicionalmente independentes Modelagem gráfica d relações causais Vários casos de aprendizado de Redes Bayesianas • Estrutura conhecida, completamente observável as tabelas de probabilidade condicionada podem ser estimadas usando o conjunto de exemplos • Estrutura desconhecida, completamente observável o problema é construir a topologia da rede. • Estrutura conhecida, variáveis escondidas caso parecido com aprendizado em redes neurais • Estrutura desconhecida, variáveis escondidas não se conhece algoritmos para este tipo de problema Paradigma Conexionista: Redes Neurais Definição • Técnica inspirada no funcionamento do cérebro, onde neurônios artificiais, conectados em rede, são capazes de aprender e de generalizar. • Técnica de aproximação de funções por regressão não linear. Modelo de neurônio e(i) w ji sj s1 w1i sj wji s(i) f (e(i)) sn e(i) semi-linear t e s(i) wni s degrau s s sigmoide e e Multilayer Perceptron (MLP) e Backpropagation camada de entrada conexões camadas intermediárias camada de saída MLP: complexidade funcional em função do número de camadas Cascade-Correlation: complexidade funcional em função do número de neurônio 1 neurônio 3 neurônios 5 neurônios Problema das 2 espirais 7 neurônios 9 neurônios 12 neurônios Redes Neurais: Perceptron Multi-Camada com Retropropagação Multi-Layer Perceptron (MLP) Exemplos: codificados na camada (nós) de entrada Classe, previsão ou ação: codificada na camada (nós) de saída Algoritmo: parte de pesos aleatórios e iterativamente • repetitivamente apresenta todos os exemplos • a cada iteração (época) ajuste pesos tal que: w ji (t 1) w ji (t) s j i - taxa de aprendizagem (si - di), erro sj - saída do neurônio anterior j • até algum critério de convergência chega a ser satisfeito Redes Neurais Vantagens • ~qualidade de previsão geralmente é alta • Robustes, funciona mesmo uando os exemplos de treinamento contem erros • A saída pode ser discreta, continua, ou um vetor de vários atributos discretos ou contínuos Criticas • Tempo de trinamento longo • Dificuldade para se entender a função aproximada (pesos) • Incorporação de conhecimento do domínio não trivial Memórias associativas (Redes de Kohonen) Agrupamento de padrões com características comuns • a rede identifica características comuns ao longo do domínio dos padrões de entrada Mapa topográfico de características • Quantização vetorial (compressão de dados) • Relações de vizinhança preservadas • Representação de espaços N-Dimensionais em 2-D Memórias associativas Estado /Saída Processamento em 3 passos: 1. excitação vertical global 2. seleção do neurônio mais excitado 3. excitação horizontal local ao redor desse neurônio com função de chapéu mexicano Entrada Camada de saída = camada de estados = grade 2-D Camadas de entrada e saída totalmente conectadas Memórias associativas: algoritmo de aprendizagem Inicializa a rede: • define pesos iniciais (podem ser aleatórios), raio da vizinhança, taxa de aprendizagem e taxa de redução da vizinhança Apresenta todos os exemplos N vezes A cada iteração: • para cada exemplo apresenta o exemplo na camada de entrada calcula a distância euclidiana do vetor dj de entrada a cada neurônio j de saída seleciona o neurônio nj* de menor distância dj* atualiza os pesos do neurônio nj* e da sua vizinhança Nj*, segundo a regra: wij (t+1) = wij (t) + (t)[xi (t)-wij (t)] • reduz a vizinhança e a taxa de aprendizagem (convergência) Memória associativas: exemplo T=0 T=25 T=10.000 T=500 T = iteração Algoritmos Genéticos São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin. Desenvolvido por John Holland (1975) e seus alunos. Popularizado por David Goldberg (1989). Teoria da Evolução 1859 - Charles Darwin publica o livro “A Origem das Espécies”: . Charles Darwin “As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto.” Teoria da Evolução • Pai da genética. . Gregor Mendel 1865- Gregor Mendel apresenta experimentos do cruzamento genético de ervilhas. A Teoria da Evolução começou a partir da conceituação integrada da seleção natural com a Genética. Otimização É a busca da melhor solução para um dado problema. As técnicas de otimização, geralmente, apresentam: • Consiste em tentar vários soluções e usar a informação obtida para conseguir soluções cada vez melhores. Espaço de busca: onde estão todas as possíveis soluções do problema; • Função objetivo: utilizada para avaliar as soluções produzidas, associando a cada uma delas uma nota. Características dos Algoritmos Genéticos É um algoritmo estocástico (não é determinístico). Trabalha com uma população de soluções simultaneamente. Utiliza apenas informações de custo e recompensa. Não requer nenhuma outra informação auxiliar São fáceis de serem implementados em computadores. Adaptam-se bem a computadores paralelos. São facilmente hibridizados com outras técnicas. Funcionam com parâmetros contínuos ou discretos. Algoritmos Genéticos (Conceitos Básicos) AG manipula uma população de indivíduos. Individuos são possíveis soluções do problema. Os indivíduos são combinados (crossover) uns com os outros, produzindo filhos que podem sofrer ou não mutação. As populações evoluem através de sucessivas gerações até encontrar a solução ótima. Aplicações Em problemas díficeis de otimização, quando não existe nenhuma outra técnica especifica para resolver o problema. Otimização de funções numéricas em geral Otimização combinatória • • • Problema do caixeiro viajante Problema de empacotamento Alocação de recursos (job shop schedulling) Aprendizado de Máquina Algoritmo Genético Tradicional 1. Gerar a população inicial. 2. Avaliar cada indivíduo da população. 3. Enquanto critério de parada não for satisfeito faça 3.1 Selecionar os indivíduos mais aptos. 3.2 Criar novos indivíduos aplicando os operadores crossover e mutação. 3.3 Armazenar os novos indivíduos em uma nova população. 3.4 Avaliar cada cromossomo da nova população. Support Vector Machines Support vector machines usa modelos lineares para implementar fronteiras de classes não lineares Como? Transformando o espaço de instancias em um novo espaço via uma aplicação não linear Um modelo linear construido no novo espaço pode representar uma fronteira de decisão não linear no espaço original Support Vector Machines Support vector machines são algoritmos para a aprendizagem de classificadores lineares Eles são resistentes ao hiper-ajustamento (overfitting) porque eles aprendem uma superficie de decisão linear específica: o hiper-plano marginal máximo • O hiperplano marginal maximo é aquele que fornece a maior separação entre as classes Eles são rápidos no caso não linear • Eles empregam uma astucia matemática para evitar a criação de “pseudo-atributos” • O espaço não linear é criado implicitamente Hiper-plano marginal maximo Vetor Suporte Vetor Suporte As instâncias mais próximas do hiper-plano marginal máximo (aquelas de menor distancia em relação a ele) são chamadas support vector Os vetores suport definem o hiper-plano marginal máximo • Todas as outras instâncias podem ser eliminadas sem mudar a posição e a orientação do hiper-plano Isso significa que o hiper-plano pode ser escrito como z b z w0 w1 x1 w2 x2 y a(i) a i i i é vetor suporte SVMs não lineares “pseudo atributos” representam combinações de atributos Overfitting não constitui um problema porque o hiperplano marginal máximo é estável Usualmente existem poucos vetores suporte em relação ao tamanho do conjunto de treinamento Complexidade no tempo pode ser um problema Cada vez que o dot product é calculado é necessário passar pelos “pseudo atributos” SVMs não lineares Pode-se evitar o cálculo dos “pseudo atributos” Pode-se calcular o dot product antes de aplicar a transformação não linear, no conjunto de atributos originais z b i yi a(i ) a i é vetor suporte Exemplo. Em vez de calcular z b y a(i) a n i i i é vetor suporte pode-se calcular n é o numero de fatores na transformação Isso corresponde a mapear em um espaço de instâncias gerado pelo produto de n atributos Comece com n=1 (modelo linear) e incremente ate que o erro estimado cesse de diminuir Aplicações Visão computacional: identificação facial Superior as outras abordagens Reconhecimento de caracteres Comparável as melhores alternativas Bioinformática: previsão de estrutura secundária de proteínas Classificação textual Pode ser modificado para lidar com problemas de previsão de descritores numéricos Tipos de Aprendizagem I (pelo grau de feedback) Supervisionada: um ”professor“ diz quanto a resposta dada pelo sistema se aproxima da resposta desejada. (e. g. nota de um aluno numa prova) Por Reforço: um ”professor“ diz apenas se a resposta dada pelo sistema está certa ou errada. (e. g. punição/recompensa no treinamento de animais) Não-Supervisionada: o sistema tenta se auto-organizar baseado nas similaridades entre os exemplos a ele apresentados. (e. g. agrupamento de clientes) Tipos de Aprendizagem II (pelo grau de feedback) Supervisionada: • Conjunto de treinamento s = {(x1, f(x1)), (x2, f(x2)),..., (xn, f(xn))} • Convergência rápida Por Reforço: • Conjunto de treinamento s = {(x1, sgn[f(x1)] ), (x2, sgn[f(x2)] ),..., (xn, sgn[f(xn)] )} • Convergência média Não-Supervisionada: • Conjunto de treinamento s = {(x1, ), (x2, ),..., (xn, )} • Convergência lenta Controle da aprendizagem Aprende depois age ou aprende agindo (treinos x jogos) Agir sempre otimamente x aprender novas habilidades Busca de hipótese: • incremental (exemplos apresentado ao poucos) ou não (todos de uma vez) • iterativa (exemplos re-apresentados em várias épocas) ou não (uma apresentação de cada exemplo basta) • top-down (refina hipótese geral para cobrir exemplos) ou bottom-up (generaliza exemplos para abstrair hipótese) ou bi-direcional • gulosa (generaliza exemplos assim que encontrados) ou preguiçosa (não generaliza exemplos com antecedência, apenas os indexa para os adaptar ao receber novas consultas parecidas) • global (aproxima função completa) ou local (aproxima-la por partes) Representação do conhecimento Função matemática: • domínio e escopo: {0,1}, Z, R • monotonia, continuidade • polinomial, exponencial, logarítmica Lógica: • proposicional (ordem 0), de atributos (ordem 0+) • de Horn ou dos predicados (ordem 1) • exóticas (ordem superior, temporal, modal, etc) Distribuição de probabilidades Outros, ex.: • Pesos em redes conexionistas, • Representações orientada a objetos, • Árvores de decisão, etc... Conhecimento prévio Aprendizagem sem conhecimento prévio: • dados (exemplos) conhecimento Aprendizagem com conhecimento prévio: • dados x conhecimento prévio conhecimento Métodos de aprendizagem que permitem usar conhecimento prévio em entrada: • re-aproveitam de conhecimento: adquirido com especialistas humanos aprendido durante passos anteriores de KDD • para aprendem a partir de muito menos dados • Exemplos, conhecimento prévio e conhecimento aprendido pode ser representados no mesmo formalismo? Viés Conhecimento prévio: • conhecimento do domínio da aplicação inteligente • ex, futebol de robôs, bolsa de valor, meteorologia, etc. • no mesmo formalismo do que o conhecimento a aprender Viés: • meta-conhecimento prévio • sobre a forma do conhecimento a aprender a partir dos dados, ex., classe de função a aproximar (linear, polinomial, ...) classe de função medindo o erro da aproximação (médio quadrado, …) dimensionalidade do espaço de hipótese distribuição probabilista dos pontos nesse espaço (normal, poisson, ..) restrições lexicais e sintática da linguagem de representação do conhecimento a aprender (ex, número de premissa ou conclusões de regras, numero de grupos classificando exemplos, …) Aprendizagem sem viés não tem poder de generalização !