Aumente a precisão e a robustez do modelo com Ensembles de Modelos. Explore técnicas como bagging, boosting, stacking e aplicações do mundo real.
Um conjunto de modelos é uma técnica sofisticada de aprendizagem automática (ML) em que as previsões de vários modelos independentes são combinadas para gerar um resultado final único e superior. Em vez de se basear na capacidade de decisão de um algoritmo, um conjunto aproveita o princípio da "sabedoria da multidão" para melhorar a precisão e a estabilidade globais. Ao agregar os resultados resultados de diversos modelos, os engenheiros podem reduzir significativamente o risco de de sobreajuste ao conjunto de treino e criar sistemas que são muito mais robustos contra o ruído nos dados de treino. Esta abordagem é frequentemente utilizada para para obter resultados topo de gama em ambientes competitivos como competições Kaggle.
A eficácia de um conjunto de modelos depende da diversidade das suas partes constituintes. Se todos os modelos tiverem fraquezas idênticas, a sua combinação não oferece qualquer melhoria. Por conseguinte, os profissionais introduzem frequentemente a diversidade variando a arquitetura da rede neural, utilizando diferentes diferentes subconjuntos de dados, ou aplicando estratégias de aumento de dados.
Existem três métodos principais para a construção de conjuntos:
Os conjuntos de modelos são fundamentais nos sectores em que a precisão é crítica e o custo do erro é elevado.
É importante diferenciar um conjunto de modelos padrão de uma mistura de especialistas (MoE). Embora ambos utilizem utilizam vários submodelos, funcionam de forma diferente durante a inferência:
Enquanto bibliotecas como PyTorch permitem arquitecturas de conjunto complexas
pode obter um conjunto básico para inferência simplesmente carregando vários modelos e processando a
mesma entrada. O exemplo a seguir demonstra como carregar dois modelos YOLO distintos usando a função
ultralytics pacote.
from ultralytics import YOLO
# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo11n.pt") # Nano model
model_b = YOLO("yolo11s.pt") # Small model
# Perform inference on an image with both models
# In a production ensemble, you would merge these results (e.g., via NMS)
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")
print(f"Model A detections: {len(results_a[0].boxes)}")
print(f"Model B detections: {len(results_b[0].boxes)}")
A implementação de conjuntos exige uma análise cuidadosa dos recursos do MLOps, pois a implantação de modelos múltiplos aumenta a utilização da memória. No entanto, para tarefas que exigem o melhor desempenho possível em visão por computador (CV), o compromisso é muitas vezes justificada.