Ensemble
Descobre como o ensemble learning melhora a precisão e reduz o overfitting. Aprende a combinar vários modelos, como o Ultralytics YOLO26, para obter resultados superiores em visão computacional.
A aprendizagem por ensembles é uma estratégia robusta em aprendizagem automática (ML), na qual vários modelos independentes, frequentemente designados por "aprendentes fracos", são combinados para produzir uma única saída preditiva. A premissa fundamental é que um grupo de modelos pode frequentemente alcançar maior precisão e melhor generalização do que qualquer modelo individual a atuar sozinho. Ao agregar as previsões de algoritmos diversos, os métodos de ensemble reduzem eficazmente o risco de [sobreajuste](https://ultralytics-translation-2.invalid aos dados de treino, suavizam erros aleatórios e melhoram a estabilidade geral do sistema. Esta abordagem é análoga a consultar um painel de especialistas em vez de depender da opinião de uma única pessoa para tomar uma decisão crítica.
Mecanismos da aprendizagem por ensembles#
A eficácia dos métodos de ensemble reside na sua capacidade de manipular o compromisso entre viés e variância. Os modelos individuais podem sofrer de elevada variância (sensibilidade ao ruído) ou elevado viés (simplificação excessiva). O uso de ensembles atenua estes problemas através de técnicas específicas:
- Bagging (agregação bootstrap): Esta técnica consiste em treinar várias instâncias do mesmo algoritmo em diferentes subconjuntos do conjunto de dados. O exemplo mais conhecido é o algoritmo Random Forest, que agrega as decisões de muitas árvores de decisão para reduzir a variância.
- Boosting: Ao contrário do bagging, o boosting treina os modelos sequencialmente. Cada novo modelo concentra-se em corrigir os erros cometidos pelos anteriores. Frameworks populares como LightGBM e CatBoost utilizam esta abordagem para criar sistemas preditivos altamente precisos.
- Stacking (generalização empilhada): Esta técnica consiste em treinar um novo "meta-modelo" para combinar as previsões de vários modelos base heterogéneos (por exemplo, uma rede neuronal e uma máquina de vetores de suporte).
Uso de ensembles em visão computacional#
No campo da visão computacional (CV), os ensembles são frequentemente utilizados para maximizar o desempenho em competições e aplicações críticas para a segurança. Na deteção de objetos, isto envolve frequentemente executar vários modelos — como diferentes versões do YOLO26 — na mesma imagem. As caixas delimitadoras resultantes são então combinadas utilizando técnicas como a supressão não máxima (NMS) ou a fusão ponderada de caixas (WBF) para obter as localizações de objetos mais prováveis.
Aplicações no mundo real#
Os métodos de ensemble são omnipresentes em setores nos quais a fiabilidade preditiva é fundamental.
-
Diagnóstico e imagiologia médica: Na área da saúde, é fundamental evitar falsos negativos. Um ensemble pode combinar uma rede neuronal convolucional (CNN) treinada com radiografias com um Transformer de visão (ViT) para detetar anomalias. O consenso entre os modelos fornece uma pontuação de confiança mais elevada, ajudando os radiologistas a detetar tumores ou a diagnosticar doenças raras.
-
Deteção de fraude financeira: As instituições financeiras utilizam ensembles para analisar padrões de transações. Ao combinar modelos de regressão logística com modelos de gradient boosting, o sistema consegue detetar indicadores subtis de fraude que um único modelo poderia não identificar, mantendo simultaneamente baixas as taxas de falsos alarmes.
Implementação de ensembles de modelos com Python#
Podes simular um ensemble básico de inferência carregando vários modelos treinados e gerando previsões para a mesma entrada. A Ultralytics Platform permite-te treinar facilmente estas variantes. O exemplo seguinte demonstra como carregar dois modelos Ultralytics YOLO diferentes (YOLO26n e YOLO26s) para verificar as deteções numa imagem.
from ultralytics import YOLO
# Load two distinct YOLO26 model variants
# 'n' (nano) is faster, 's' (small) is more accurate
model_nano = YOLO("yolo26n.pt")
model_small = YOLO("yolo26s.pt")
# Define the image source
source = "https://ultralytics.com/images/bus.jpg"
# Run inference with both models
results_n = model_nano(source)
results_s = model_small(source)
# Compare the number of objects detected by each model
print(f"Nano Model Found: {len(results_n[0].boxes)} objects")
print(f"Small Model Found: {len(results_s[0].boxes)} objects")Ensemble vs. aumento de dados#
É importante distinguir a aprendizagem por Ensemble do aumento de dados.
- O Ensemble centra-se na fase da arquitetura e da predição, combinando vários modelos distintos treinados para melhorar os resultados.
- O aumento de dados centra-se na fase dos dados de treino, aumentando artificialmente a diversidade do conjunto de dados (por exemplo, através de rotação ou inversão) para treinar um único modelo mais robusto.
Embora o aumento de dados ajude um único modelo a aprender melhor, a aprendizagem por ensembles ajuda vários modelos a verificar as saídas uns dos outros. Ambas as estratégias são frequentemente utilizadas em conjunto para alcançar resultados de última geração em tarefas como a segmentação de instâncias e a estimativa de pose.









