Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Model Ensemble

Ensemble model kết hợp dự đoán từ nhiều model thành một đầu ra chính xác và ổn định hơn. Nội dung bao gồm bỏ phiếu, lấy trung bình, hợp nhất box và các điểm đánh đổi.

Ensemble model kết hợp dự đoán của nhiều model đã huấn luyện thành một đầu ra duy nhất bằng cách bỏ phiếu, lấy trung bình hoặc dùng phương pháp kết hợp đã học, nhờ đó các lỗi riêng lẻ của từng model triệt tiêu lẫn nhau. Khi các model thành viên mắc những lỗi khác nhau, ensemble chính xác và bền vững hơn model thành viên tốt nhất; đó là lý do ensemble thống trị các cuộc thi machine learning: giải Netflix Prize năm 2009 thuộc về một nhóm kết hợp dự đoán của nhiều model, còn mô hình deep learning chiến thắng thử thách ImageNet năm 2012 lấy trung bình dự đoán của bảy mạng tích chập để đạt tỷ lệ lỗi top-5 là 15.3%. Đổi lại là chi phí tính toán: mỗi model thành viên chạy trên mọi đầu vào, vì vậy mức sử dụng bộ nhớ và độ trễ suy luận tăng theo quy mô ensemble.

Cách ensemble model hoạt động#

Ensemble chỉ hữu ích khi các model thành viên mắc những lỗi khác nhau. Lấy trung bình đầu ra của các model có lỗi độc lập sẽ làm giảm phương sai của dự đoán kết hợp, trong khi các model thất bại trên cùng đầu vào hầu như không được lợi khi kết hợp. Bagging tạo ra sự đa dạng này bằng cách huấn luyện mỗi model thành viên trên một mẫu lấy lại ngẫu nhiên từ dữ liệu huấn luyện, như trong random forest gồm các cây quyết định; boosting huấn luyện mỗi model mới để sửa lỗi của các model trước đó, như trong XGBoost và LightGBM. Deep ensemble huấn luyện các bản sao của cùng một mạng nơ-ron bằng các seed ngẫu nhiên khác nhau; độ phân tán giữa các dự đoán cũng đo độ bất định của model. Kết hợp các kiến trúc khác nhau, chẳng hạn mạng nơ-ron tích chập với vision transformer, tạo ra các model thành viên có thiên hướng quy nạp khác nhau và lỗi ít tương quan hơn.

Quy tắc kết hợp phụ thuộc vào đầu ra của các model thành viên:

Các model có phương sai cao như cây quyết định chưa cắt tỉa được hưởng lợi nhiều nhất. Ví dụ scikit-learn này huấn luyện năm cây chỉ khác nhau ở seed ngẫu nhiên rồi lấy trung bình xác suất dự đoán của chúng:

import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=0)

# Five decision trees that differ only in their random seed, which changes the features each split considers
trees = [DecisionTreeClassifier(max_features="sqrt", random_state=seed) for seed in range(5)]
for tree in trees:
    tree.fit(X_train, y_train)
print("Single trees:", ", ".join(f"{tree.score(X_test, y_test):.3f}" for tree in trees))

# Ensemble: average the predicted class probabilities and pick the most likely class
probabilities = np.mean([tree.predict_proba(X_test) for tree in trees], axis=0)
accuracy = (probabilities.argmax(axis=1) == y_test).mean()
print(f"Ensemble of 5: {accuracy:.3f}")

Trên 899 ảnh chữ số dùng để đánh giá, các cây riêng lẻ đạt điểm từ 0.736 đến 0.805, còn ensemble gồm cả năm cây đạt 0.901, cao hơn mọi model thành viên vì lỗi của mỗi cây xuất hiện trên những ảnh khác nhau.

Kết hợp ensemble cho model phát hiện đối tượng#

Các ensemble phát hiện đối tượng còn phải hợp nhất các box: nhiều model thường tìm thấy cùng một đối tượng ở những vị trí hơi khác nhau. Phương pháp đơn giản nhất là gom box của mọi model rồi áp dụng non-maximum suppression (NMS), giữ lại box có confidence cao nhất trong mỗi nhóm chồng lấp. Hợp nhất box có trọng số thay vào đó lấy trung bình tọa độ của các box chồng lấp, với trọng số là confidence, để mọi model cùng đóng góp vào vị trí cuối cùng. Ultralytics YOLO26 tích hợp một ensemble tương tự vào bước dự đoán: với augment=True, model phát hiện chạy trên ảnh ở kích thước gốc, 83% và 67%; bản ở kích thước 83% được lật trái sang phải, rồi ba tập box được hợp nhất bằng NMS. Ví dụ này kết hợp hai model YOLO26 có kích thước khác nhau theo cùng cách:

import torch
from torchvision.ops import batched_nms
from ultralytics import YOLO

# Two YOLO26 models of different sizes make different mistakes
models = [YOLO("yolo26n.pt"), YOLO("yolo26s.pt")]
results = [model("https://ultralytics.com/images/bus.jpg")[0] for model in models]

# Pool the boxes from both models
boxes = torch.cat([result.boxes.xyxy for result in results])
scores = torch.cat([result.boxes.conf for result in results])
classes = torch.cat([result.boxes.cls for result in results])

# Keep the highest-scoring box in each overlapping group of the same class
keep = batched_nms(boxes, scores, classes, iou_threshold=0.5)
print(f"{len(boxes)} boxes from both models, {len(keep)} after fusion")

Các box mà cả hai model cùng phát hiện được gộp thành một, còn đối tượng chỉ được một model tìm thấy vẫn được giữ lại sau khi hợp nhất; nhờ vậy ensemble phát hiện tăng recall.

Ứng dụng#

  • Phân tích ảnh y tế: Các model chẩn đoán kết hợp nhiều mạng để tăng độ nhạy, còn những trường hợp mà các model không đồng thuận sẽ được đánh dấu để bác sĩ chẩn đoán hình ảnh xem xét.
  • Cuộc thi và benchmark: Các giải pháp chiến thắng trên Kaggle và những bảng xếp hạng tương tự thường lấy trung bình kết quả của các model được huấn luyện bằng kiến trúc, seed và fold dữ liệu khác nhau, vì mức tăng độ chính xác đáng để đánh đổi với chi phí tính toán bổ sung.
  • Xe tự hành: Các hệ thống nhận thức kết hợp những model có thế mạnh khác nhau, chẳng hạn model phát hiện dựa trên camera và model phát hiện dựa trên lidar, để một model vẫn phát hiện được đối tượng mà model kia bỏ sót.
  • Học ensemble: Từ đồng nghĩa với kỹ thuật tổng thể. “Ensemble model” thường chỉ tập hợp model kết hợp thu được.
  • Hợp nhất model: Lấy trung bình trọng số của các model tương thích thành một mạng duy nhất, sau đó mạng này chạy với chi phí của một model.
  • Mixture of experts (MoE): Bộ định tuyến đã học chỉ gửi mỗi đầu vào đến một vài mạng con chuyên gia, nhờ đó tăng năng lực mà không cần chạy mọi chuyên gia trên mọi đầu vào.
  • Chưng cất tri thức: Huấn luyện một model student duy nhất bắt chước model teacher, có thể là cả một ensemble. Bài báo chưng cất năm 2015 của Geoffrey Hinton, Oriol Vinyals và Jeff Dean đã nén một ensemble model nhận dạng giọng nói thành một model duy nhất mà vẫn giữ được phần lớn mức cải thiện của ensemble.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning