Publicado em: 18 de março de 2024
Colaboradores: Jacob Murel Ph.D. e Eda Kavlakoglu
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 combinado é 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 combinado 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 combinado 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 (CNNs).
Uma observação sobre a terminologia: aprendiz de base modelo de base e, em alguns casos, estimador de base referem-se ao modelo ou a modelos individuais utilizados em algoritmos combinados. 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 combinados, particularmente os sequenciais, efetivamente transformam os aprendizes fracos em aprendizes fortes.4
Explore o IBM watsonx e aprenda a criar modelos de aprendizado de máquina usando conjuntos de dados estatísticos.
Assine a newsletter da IBM
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 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
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 de 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 de conjunto resultante. O aprendizado combinado pode, portanto, resolver problemas de regressão, como ajuste excessivo, sem eliminar o viés do modelo. De fato, pesquisas sugerem que conjuntos compostos por diversos modelos sub-regularizados (ou sejam, modelos que se ajustam demais aos seus dados de treinamento) superam os modelos regularizados únicos.8 Além disso, as técnicas de aprendizado combinado podem ajudar a resolver problemas decorrentes de dados de alta dimensão e, assim, servir efetivamente como uma alternativa à redução da dimensionalidade.
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 de base para minimizar os erros cometidos pelo modelo anterior treinado na etapa anterior. Em outras palavras, os métodos sequenciais constroem modelos de base sequencialmente em estágios.9
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 de base para produzir todos os aprendizes de base componentes. Conjuntos paralelos heterogêneos utilizam algoritmos diferentes para produzir aprendizes de base.10
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 base 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 base para uma determinada instância de dados e usa a previsão da maioria como previsão final. A votação por maioria ponderada é uma extensão dessa técnica que dá maior peso às previsões de certos aprendizes em detrimento de outras.11
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 é 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 combinado do Scikit-learn em Python contém funções para implementar bagging, como BaggingClassifier.
Mais especificamente, o bagging utiliza uma técnica chamada reamostragem 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 do 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 base separado com o mesmo algoritmo de aprendizagem.13
A floresta aleatória é uma extensão do ensacamento que denota especificamente o uso do ensacamento para construir conjuntos de árvores de decisão aleatórias. Isso difere das árvores de decisão padrão, pois a última analisa amostras de todos os recursos para identificar o melhor para divisão. Por outro lado, as florestas aleatórias fazem a amostragem iterativa de subconjuntos aleatórios de recursos para criar um nó de decisão.14
Stacking, ou generalização empilhada,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 produção de vários aprendizes básicos. O stacking treina especificamente vários aprendizes de base a partir do mesmo conjunto de dados com um algoritmo de treinamento diferente para cada aprendiz. Cada aprendiz de base 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
Observe a importância de usar um conjunto de dados diferente daqueles usados para treinar os aprendizes base a fim de treinar o meta-aprendiz. Usar o mesmo conjunto de dados para treinar os aprendizes base e o meta-aprendizes pode resultar em overfitting. Isso pode exigir a exclusão de instâncias de dados dos dados de treinamento do aprendiz base 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.
Os algoritmos de reforço são um método de conjunto sequencial. O aumento 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 bagging e 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 neste novo conjunto de dados d2. Em seguida, um terceiro conjunto de dados (d3) é compilado a partir de d1 e d2, priorizando as amostras classificadas incorretamente pelo segundo modelo 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
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 boosting em gradiente utiliza erros residuais ao treinar novos aprendizes. Em vez de pesar amostras classificadas incorretamente, o aumento de gradiente utiliza erros residuais de um modelo anterior para definir previsões de metas para o próximo modelo. Dessa forma, ele tenta fechar 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.
Dadas as dificuldades em adquirir conjuntos de dados grandes, de uso justo e rotulados para treinar aprendizes, o aprendizado combinado 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 combinados para tarefas de visão computacional, como o treinamento de vários modelos com diferentes representações de um conjunto de dados 20 ou a combinação de vários modelos tendenciosos.21
Apesar da capacidade dos métodos combinados de melhorar a generalização, eles podem sofrer imparcialidade. No aprendizado de máquina, a justiça denota tentativas de aliviar o viés algorítmico (muitas vezes contra grupos sociais) em sistemas automáticos, geralmente resultando de aprendizes treinados com dados sensíveis. Alguns estudos propõem métricas, pré-processamento e técnicas de pós-processamento para melhorar a equidade em modelos de conjunto.22 Os esforços contínuos para melhorar práticas éticas e justas em IA continuam sendo uma área muito necessária para pesquisas futuras.
1 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
2 Gavin Brown, “Ensemble Learning,” Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
3 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023. Lior Rokach, Pattern Classification Using Ensemble Methods, World Scientific Publishing Company, 2010.
4 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
5 Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani e Jonathan Taylor, An Introduction to Statistical Learning with Applications in Python, Springer, 2023.
6 George Kyriakides and Konstantinos G. Margaritis, Hands-On Ensemble Learning with Python, Packt Publishing, 2019.
7 Zhi-Hua Zhou, Machine Learning, traduzido por Shaowu Liu, Springer, 2021. George Kyriakides and Konstantinos G. Margaritis, Hands-On Ensemble Learning with Python, Packt Publishing, 2019.
8 Peter Sollich and Anders Krogh, "Learning with ensembles: How overfitting can be useful," Advances in Neural Information Processing Systems, Vol. 8, 1995, https://papers.nips.cc/paper_files/paper/1995/hash/1019c8091693ef5c5f55970346633f92-Abstract.html (link resides outside of ibm.com).
9 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
10 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
11 Ibomoiye Domor Mienye and Yanxia Sun, “A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects,” IEEE Access, Vol. 10, 2022, pp. 99129-99149, https://ieeexplore.ieee.org/document/9893798 (link fora de ibm.com). Lior Rokach, “Ensemble-based Classifiers,” Artificial Intelligence Review, Vol. 33, 2010, pág. 1-39, https://link.springer.com/article/10.1007/s10462-009-9124-7 (link fora do ibm.com).
12 M. Galar, A. Fernandez, E. Barrenechea, H. Bustince and F. Herrera, "A Review on Ensembles for the Class Imbalance Problem: Bagging-, Boosting-, and Hybrid-Based Approaches," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 42, No. 4, 2012, pp. 463-484, https://ieeexplore.ieee.org/document/5978225 (link fora de ibm.com).
13 Zhi-Hua Zhou, Métodos combinados: fundamentos e algoritmos, CRC Press, 2012.
14 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
15 Robi Palikar, “Ensemble Learning,” Ensemble Machine Learning: Methods and Applications, Springer, 2012.
16 Ibomoiye Domor Mienye and Yanxia Sun, “A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects,” IEEE Access, Vol. 10, 2022, pp. 99129-99149, https://ieeexplore.ieee.org/document/9893798 (link externo ao site ibm.com).
17 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012. Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
18 Robi Palikar, “Ensemble Learning,” Ensemble Machine Learning: Methods and Applications, Springer, 2012. Zhi-Hua Zhou, Métodos combinados: fundamentos e algoritmos, CRC Press, 2012.
19 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
20 Devesh Walawalkar, Zhiqiang Shen, and Marios Savvides, "Online Ensemble Model Compression Using Knowledge Distillation," 2020, pp. 18-35, https://link.springer.com/chapter/10.1007/978-3-030-58529-7_2 (link fora de ibm.com).
21 Xinzhe Han, Shuhui Wang, Chi Su, Qingming Huang, and Qi Tian, "Greedy Gradient Ensemble for Robust Visual Question Answering," Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pp. 1584-1593, https://openaccess.thecvf.com/content/ICCV2021/html/Han_Greedy_Gradient_Ensemble_for_Robust_Visual_Question_Answering_ICCV_2021_paper.html (link resides outside of ibm.com).
22 Usman Gohar, Sumon Biswas, and Hridesh Rajan, "Towards Understanding Fairness and its Composition in Ensemble Machine Learning," 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), 2023, pp. 1533-1545, https://ieeexplore.ieee.org/abstract/document/10172501 (link fora de ibm.com). Khaled Badran, Pierre-Olivier Côté, Amanda Kolopanis, Rached Bouchoucha, Antonio Collante, Diego Elias Costa, Emad Shihab, and Foutse Khomh, "Can Ensembling Preprocessing Algorithms Lead to Better Machine Learning Fairness?" Computer, Vol. 56, No. 4, 2023, pp. 71-79, https://ieeexplore.ieee.org/abstract/document/10098174 (link fora de ibm.com). Swanand Kadhe, Anisa Halimi, Ambrish Rawat, and Nathalie Baracaldo, "FairSISA: Ensemble Post-Processing to Improve Fairness of Unlearning in LLMs," Socially Responsible Language Modelling Research Workshop, 2023, https://neurips.cc/virtual/2023/78908 (link fora do site ibm.com).