O que é aprendizado combinado?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

O aprendizado combinado une vários aprendizes para aprimorar o desempenho preditivo. Foi adotado como solução para problemas resultantes de conjuntos de dados limitados.

O aprendizado em conjunto é uma técnica de aprendizado de máquina que agrega dois ou mais aprendizes (como modelos de regressão e redes neurais) a fim de produzir previsões melhores. Em outras palavras, um modelo em conjunto combina vários modelos individuais para gerar previsões mais precisas do que um único modelo sozinho.1 Às vezes, as fontes podem se referir a essa técnica como aprendizado baseado em comitê. O aprendizado em conjunto baseia-se no princípio de que um grupo de aprendizes gera maior precisão geral do que um único aprendiz.2 De fato, a pesquisa apoia sua eficácia com modelos de aprendizado de máquina e redes neurais convolucionais (CNNs).

Uma observação sobre terminologia: aprendiz básico modelo básico e, em alguns casos, estimador básico referem-se ao modelo ou a modelos individuais utilizados em algoritmos em conjunto. A literatura divide ainda os aprendizes básicos entre aprendizes fortes e aprendizes fracos. Modelos ou aprendizes fracos são definidos como aqueles que apresentam desempenho um pouco melhor do que a suposição aleatória. Para problemas de classificação binária, os classificadores fracos são mais formalmente aqueles que alcançam aproximadamente cinquenta por cento de precisão. Por outro lado, modelos ou aprendizes fortes alcançam um excelente desempenho preditivo, que na classificação binária é formalizado como igual ou superior a oitenta por cento de precisão.3

Observe que algumas fontes combinam o aprendiz fraco e o aprendiz básico, dado que os métodos em conjunto, particularmente os sequenciais, efetivamente transformam os aprendizes fracos em aprendizes fortes.4

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Por que utilizar aprendizado combinado?

Compensação de viés-variância

A compensação de viés-variância é um problema bem conhecido no aprendizado de máquina e um princípio motivador por trás de muitas técnicas de regularização . Podemos defini-los como:

- Viés mede a diferença média entre valores previstos e valores reais. À medida que o viés aumenta, um modelo prevê com menos precisão em um conjunto de dados de treinamento. Alto viés refere-se a alto erro no treinamento. Otimização significa tentativas de reduzir o viés.

- Variância mede a diferença entre as previsões em várias realizações de um determinado modelo. À medida que a variância aumenta, um modelo prevê com menos precisão em dados não vistos. Alta variância se refere a alto erro durante o teste e a validação. A generalização refere-se a tentativas de reduzir a variação.

Viés e variância, portanto, representam inversamente a precisão do modelo nos dados de treinamento e teste, respectivamente.5 São dois dos três termos que compreendem a taxa de erro total de um modelo, sendo o terceiro o erro irredutível. Esse terceiro termo denota o erro resultante da aleatoriedade inerente em um conjunto de dados. O erro total do modelo pode ser definido pela fórmula:6

Fórmula de erro total para aprendizado combinado

Muitos modelos em vez de um

Qualquer algoritmo de treinamento de modelo consiste em inúmeras variáveis, como dados de treinamento, hiperparâmetros etc. que afetam o erro total do modelo consequente. Assim, até mesmo um único algoritmo de treinamento pode produzir modelos diferentes, cada um com seu próprio viés, variância e taxas de erro irredutíveis. Ao combinar vários modelos diversos, os algoritmos em conjunto podem produzir uma taxa de erro geral mais baixa, mantendo as próprias complexidades e vantagens de cada modelo individual, como um viés notavelmente baixo para um subconjunto de dados específico.7

Pesquisas sugerem que, em geral, quanto maior a diversidade entre os modelos combinados, mais preciso é o modelo em conjunto resultante. O aprendizado em conjunto pode, portanto, lidar com problemas de regressão, como overfitting, sem eliminar o viés do modelo. De fato, pesquisas sugerem que conjuntos compostos por diversos modelos sub-regularizados (ou seja, modelos com overfitting em relação a seus dados de treinamento) superam os modelos regularizados únicos.8 Além disso, as técnicas de aprendizado em conjunto podem ajudar a resolver problemas decorrentes de dados de alta dimensão e, assim, servir efetivamente como uma alternativa à redução da dimensionalidade.

Tipos de modelos em conjunto

A literatura categoriza amplamente os métodos de aprendizado combinado no aprendizado de máquina em dois grupos: paralelos e sequenciais.

- Métodos paralelos treinam cada aprendiz básico separado dos outros. Então, de acordo com seu nome, os conjuntos paralelos treinam os aprendizes básicos em paralelo e independentes uns dos outros.

- Os métodos sequenciais treinam um novo aprendiz básico para minimizar os erros cometidos pelo modelo anterior treinado na etapa anterior. Em outras palavras, os métodos sequenciais constroem modelos básicos sequencialmente em estágios.9

Diagrama representando conjuntos paralelos versus sequenciais.

Os métodos paralelos são divididos em métodos homogêneos e heterogêneos. Os conjuntos paralelos homogêneos utilizam o mesmo algoritmo de aprendizado básico para produzir todos os aprendizes básicos componentes. Conjuntos paralelos heterogêneos utilizam algoritmos diferentes para produzir aprendizes básicos.10

Votação

Como os métodos combinados combinam os aprendizes básicos em um aprendiz final? Algumas técnicas, como empilhamento — use algoritmos separados de aprendizado de máquina para treinar um aprendiz combinado a partir dos aprendizes de base. Mas um método comum para consolidar as previsões básicas do aprendiz é a votação e, mais precisamente, a votação por maioria.

A votação da maioria considera a previsão de cada aprendiz básico para uma determinada instância de dados e gera uma previsão final determinada por qualquer que seja a previsão da maioria dos aprendizes. Por exemplo, em um problema de classificação binária, a votação da maioria recebe previsões de cada classificador básico para uma determinada instância de dados e usa a previsão da maioria como previsão final. A votação da maioria ponderada é uma extensão dessa técnica, que dá maior peso às previsões de certos aprendizes em detrimento de outras.11

Técnicas de aprendizado combinado

Talvez as três técnicas de aprendizado combinado mais populares sejam o bagging, o boosting e o stacking. Na verdade, esses conjuntos exemplificam as distinções entre os tipos sequenciais, paralelos, homogêneos e heterogêneos de métodos combinados.

Observe que essa visão geral não é completa; há vários métodos combinados adicionais, como mistura e conjuntos de média ponderada. Isto é apenas para pesquisar alguns dos métodos mais proeminentes na literatura.

Bagging

Bagging é um método paralelo homogêneo, também conhecido como agregação de bootstrap. Utiliza replicas modificadas de um determinado conjunto de dados de treinamento para treinar vários aprendizes básicos com o mesmo algoritmo de treinamento.12 O módulo em conjunto do Scikit-learn no Python contém funções para implementar o bagging, como BaggingClassifier.

Mais especificamente, o bagging utiliza uma técnica chamada reamostragem de bootstrap para derivar vários novos conjuntos de dados de um conjunto de dados de treinamento inicial, a fim de treinar vários aprendizes básicos. Como funciona? Digamos que um conjunto de dados de treinamento contenha n exemplos de treinamento. A reamostragem de bootstrap copia n instâncias de dados desse conjunto para um novo conjunto de dados de subamostra, com algumas instâncias iniciais aparecendo mais de uma vez e outras excluídas completamente. São exemplos de bootstrap. Repetir esse processo x vezes produz x iterações do conjunto de dados original, cada uma contendo n amostras do conjunto inicial. Cada iteração do conjunto inicial é, então, utilizada para treinar um aprendiz básico separado com o mesmo algoritmo de aprendizado.13

Diagrama que descreve o bagging no contexto do aprendizado combinado.

A floresta aleatória é uma extensão do bagging que denota especificamente o uso do bagging para construir conjuntos de árvores de decisão aleatórias. Isso difere das árvores de decisão padrão, pois esta analisa amostras de todas as funcionalidades para identificar a melhor para divisão. Por outro lado, as florestas aleatórias fazem a amostragem iterativa de subconjuntos aleatórios de funcionalidades para criar um nó de decisão.14

Empilhamento

Stacking, ou generalização em stack,15 é um método paralelo heterogêneo que exemplifica o que é conhecido como meta-aprendizado. O meta-aprendizado consiste em treinar um meta-aprendiz a partir da saída de vários aprendizes básicos. O stacking treina especificamente vários aprendizes básicos a partir do mesmo conjunto de dados com um algoritmo de treinamento diferente para cada aprendiz. Cada aprendiz básico faz previsões em um conjunto de dados não visto. Essas primeiras previsões de modelo são, então, compiladas e utilizadas para treinar um modelo final, o metamodelo.16

Diagrama que descreve o stacking no contexto de aprendizado colaborativo

Observe a importância de usar um conjunto de dados diferente daqueles usados para treinar os aprendizes básicos a fim de treinar o meta-aprendiz. Usar o mesmo conjunto de dados para treinar os aprendizes básicos e os meta-aprendizes pode resultar em overfitting. Isso pode exigir a exclusão de instâncias de dados dos dados de treinamento do aprendiz básico para servir como seus dados do conjunto de teste, que por sua vez se tornam dados de treinamento para o meta-aprendiz. A literatura frequentemente recomenda técnicas como validação cruzada para garantir que esses conjuntos de dados não se sobreponham.17

Assim como o bagging, o módulo sklearn.ensemble do Python oferece várias funções para implementar técnicas de stacking.

Impulsionamento

Os algoritmos de boosting são um método de conjunto sequencial. O boosting tem muitas variações, mas todas seguem o mesmo procedimento geral. O boosting treina o aprendiz em algum conjunto de dados inicial, d. O aprendiz resultante geralmente é fraco, classificando erroneamente muitas amostras no conjunto de dados. Assim como o bagging, o boosting extrai amostras de instâncias do conjunto de dados inicial para criar um novo conjunto de dados (d2). No entanto, diferentemente do bagging, o boosting prioriza instâncias de dados classificadas incorretamente do primeiro modelo ou aprendiz. Um novo aprendiz é treinado nesse novo conjunto de dados d2. Em seguida, um terceiro conjunto de dados (d3) é compilado a partir de d1 e d2, priorizando as amostras e instâncias classificadas incorretamente pelo segundo aprendiz e instâncias em que d1 e d2 discordam. O processo se repete n vezes para produzir n aprendizes. O boosting, então, combina e pondera todos os aprendizes para produzir as previsões finais.18

Diagrama que descreve o boost no contexto de aprendizado colaborativo.

Os algoritmos de reforço diferem muito na forma como priorizam instâncias de dados previstos erroneamente ao criar um novo conjunto de dados. Dois dos métodos de boost mais proeminentes podem ilustrar isso:

- Erros do modelo de pesos do reforço adaptativo (AdaBoost). Ou seja, ao criar uma nova iteração de um conjunto de dados para treinar o próximo aprendiz, o AdaBoost adiciona pesos às amostras com classificação incorreta do aprendiz anterior, fazendo com que o próximo aprendiz priorize essas amostras com classificação incorreta.

- O gradient boosting utiliza erros residuais ao treinar novos aprendizes. Em vez de pesar amostras classificadas incorretamente, o gradient boosting utiliza erros residuais de um modelo anterior para definir previsões de metas para o próximo modelo. Dessa forma, ele tenta preencher a lacuna de erro deixada por um modelo.19

Infelizmente, o sklearn não contém funções predefinidas para implementar o boosting. A biblioteca de código aberto Extreme Gradient Boosting (XGBoost), no entanto, apresenta código para implementar o aumento de gradiente em Python.

Pesquisa recente

Dadas as dificuldades em adquirir conjuntos de dados grandes, de uso justo e rotulados para treinar aprendizes, o aprendizado em conjunto tem sido utilizado em muitas aplicações na tentativa de melhorar o desempenho do aprendiz com menos dados. Por exemplo, vários estudos recentes mostram resultados promissores com o aprimoramento da generalização do modelo usando métodos em conjunto para tarefas de visão computacional, como o treinamento de vários modelos com diferentes representações de um conjunto de dados20 ou a combinação de vários modelos com viés.21

Apesar da capacidade dos métodos em conjunto de melhorar a generalização, eles podem sofrer parcialidade. No aprendizado de máquina, a imparcialidade denota tentativas de aliviar o viés algorítmico (muitas vezes contra grupos minoritários) em sistemas automáticos, geralmente resultando de aprendizes treinados com dados confidenciais. Alguns estudos propõem métricas, pré-processamento e técnicas de pós-processamento para melhorar a imparcialidade em modelos em conjunto.22 Os esforços contínuos para melhorar a imparcialidade e práticas éticas em IA continuam sendo uma área muito necessária para pesquisas futuras.

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real