--- presentation theme: beige.css slideNumber: true width: 1024 height: 768 --- ## Aprendizado de Máquina #### Combinando modelos #### Prof. Ronaldo Cristiano Prati [ronaldo.prati@ufabc.edu.br](mailto:ronaldo.prati@ufabc.edu.br) Bloco A, sala 513-2 ### Por que combinar modelos? - Quando precisamos decidir sobre uma questão critica, usualmente consultamos vários *experts* da área ao invés de confiarem no julgamento de um único consultor - Em aprendizado de máquina, um modelo pode ser considerado como um “expert”. Então combina-los é uma boa idéia? ### Vantagens - Experimentalmente tem sido mostrado que modelos combinados apresentam melhores desempenhos do que um sistema decisório único - Melhor do que o melhor modelo selecionado usando cross validation. - Neutraliza ou minimiza drasticamente a instabilidade inerente dos algoritmos de aprendizagem. ### Vantagens - Sistemas combinados reduzem a variância (decomposição bias-variance) - Em geral, quanto maior for o número de classificadores combinados, maior a redução da variância ### Desvantagens - Apesar de normalmente os sistemas combinados apresentarem melhores resultados, não há garantias que isto ocorrerá sempre. - Ainda é uma área de pesquisa com muito pontos para serem confirmados teoricamente. - Modelos combinados são mais difíceis de analisar. - Custo computacional ### Como combinar? - Três aspectos a serem analisados na combinação de modelos - A escolha da estrutura do sistema - A escolha dos componentes do sistema - A escolha do método de combinação ### Como combinar? - A estrutura do sistema - A maneira como os componentes estão organizados dentro do sistema -Quantos métodos serão necessários e como organizá-los? - Tipos: - Ensemble - Modular ### Ensembles - Também conhecido por vários outros nomes: - Multiple classifier systems, committee of classifiers, ou mixture of experts. - Tem sido utilizado com sucesso em problemas onde um único modelo não funciona bem. - Bons resultados são encontrados em várias aplicações em uma larga variedade de cenários ### Comitês - Abordagem: redudante ou paralela de combinação - Modelos: treinados com a mesma tarefa - Suas respostas são combinadas para produzir estimativas mais confiáveis ### Ensembles ![](bagging.webp) ### Dividir e Conquistar - Independente da quantidade de dados alguns problemas são muito difíceis de serem resolvidos por um dado classificador ### Dividir e Conquistar A fronteira de decisão que separa os dados de diferentes classes pode ser muito complexa ou estar fora do escopo do classificador. ### Dividir e Conquistar - A idéia de ensembles é que o sistema de classificação siga a abordagem dividir-para-conquistar; - O espaço de dados é dividido em porções menores e mais “fáceis” de aprender por diferentes classificadores; - Assim a linha base da fronteira de decisão pode ser aproximada por meio de uma combinação apropriada dos diferentes classificadores. ### Dividir e Conquistar ### Classificadores "fracos" - Muitos ensembles usam modelos "fracos" (*weak classifier*) - Hipóteses simples, de rápido treinamento, e que tem um desempenho um pouco superior a uma predição Aleatóriedade - Pequeno *bias*, alta variância. - A combinação das saídas produzidas pelos classificadores reduz o risco de escolha por um classificador com um pobre desempenho ### Ensembles - Os modelos são componentes que fornecem redundância - Uma solução para o mesmo problema, mesmo que usando meios diferentes - Um aspecto importante é diversidade - Não há nenhuma vantagem em um ensemble com métodos idênticos ### Diversidade - O sucesso de um ensemble e a habilidade em corrigir erros de alguns de seus membros, depende fortemente da diversidade dos classificadores que o compõem; - Cada classificador DEVE ter diferentes erros em diferentes exemplos dos dados; - A idéia é construir muitos models e então combinar suas saídas de modo que o desempenho final seja melhor do que o desempenho de um único classificador; ### Diversidade - A diversidade de classificadores pode ser obtida de diferentes formas: 1. Nos dados 1. Nos modelos 1. Nas técnicas de modelagem 1. Na aleatoriedade ### Diversidade - Dados: - usar amostras diferentes (por exemplo, gerar diferentes amostras com reposição) - usar conjuntos de atributos diferentes (selecionar alatóriamente subconjuntos de atributos) ### Diversidade - Modelos: - usar parâmetros diferentes (diferentes valores de regularização, camadas em redes neurais, etc.) - atribuir pesos diferentes a a modelos ### Diversidade - Técnicas de modelagem: - Usar algoritmos diferentes - usar *kernels* diferentes para uma mesma dase de Dados ### Diversidade - Aleatóriedade - Usar pesos diferentes em nas inicializações - Decidir empates aleatóreamente ### Ensembles também são úteis: - Grandes volumes de dados - A quantidade de dados é grande para ser manipulada por um único classificador. - Particionar os dados em sub-conjuntos e treinar diferentes classificadores com diferentes partições dos dados e então combinar as saídas com uma inteligente regra de combinação. ### Ensembles também são úteis: - Pequenos volumes de dados - Quando há ausência de dados de treinamento técnicas de amostragem podem ser utilizadas para a criação de subconjuntos de dados aleatórios sobrepostos - Cada subconjunto é utilizado para treinar diferentes classificadores e então criar ensembles com desempenhos melhores a modelos com a base reduzida. ### Técnicas de Criação de Ensembles - As técnicas mais conhecidas que combinam modelos para problemas de regressão e classificação são: - BAGGING - BOOSTING ### Bagging - Possui uma implementação simples e intuitiva; - A diversidade é obtida com o uso de diferentes subconjuntos de dados aleatoriamente criados com reposição; - Cada subconjunto é usado para treinar um classificador do mesmo tipo; - As saídas dos classificadores são combinadas por meio do voto majoritário com base em suas decisões; ### Exemplo: Random Forests - Usado para a construção de ensembles com árvores de decisão; - Variação da quantidade de dados e atributos; - Usando árvores de decisão com diferentes inicializações; ### Árvore de Decisão - Divide recursivamente o espaço de exemplos: 1. Escolhe um atributo 2. Particiona os dados de acordo com esse atributo 3. Para cada subconjunto gerado, repete volta ao passo 1 até que o subconjunto seja homogêneo ### Árvore de Decisão ![](dt1.png) ### Árvore de Decisão ![](dt2.png) ### Árvore de Decisão ![](dt3.png) ### Exemplo: Random Forests - Por que usar uma floresta? - Uma única árvore complexa requer muitos exemplos - Como a escolha do atributo é heurística, um escolha ruim compromote toda a sub-árvore - Uma combinação de várias árvores simples pode gerar uma froteira de decisão complexa ### Random Forests ![](rf1.png) ### BOOSTING - Focar em exemplos mais "difíceis" de classificar - Cria um modelo inicial, e marca os exemplos em que o modelo tem um desempenho ruim - Iterativamente cria um novo novo modelo, atribuindo um custo maior ao exemplos incorretos na interação anterior - Atribui um peso diferente e decrescente (para evitar overfitting) a cada modelo ### BOOSTING ![](boosting.png) ### Exemplo: Gradient Boosting 1. Treinar um modelo simples 1. Calcular o residual (diferença entre valor predito e o real) 1. Cria um novo modelo usando o resíduo como atributo alvo 1. Adiciona o residual predito em 3. ao valor predito em 1 1. Repetir os passos 1 a 5 até convergir ### Exemplo: Gradient Boosting ### Exemplo: Gradient Boosting ### Exemplo: Gradient Boosting ### Bagging versus boosting - A combinação de modelos do bagging pode reduzir overfitting. Ele atua principalmente na componente de variância do erro, e pode ser executado em paralelo. - Já o boosting pode atuar tanto na componente de bias quando na de variância do erro. Entretanto, ele pode levar a um overfitting e é executado sequencialmente. ### Bagging versus boosting ![](bagvsboot.png)