Hướng dẫn tinh chỉnh siêu tham số của Ultralytics YOLO#
Tinh chỉnh siêu tham số trong Ultralytics YOLO là quá trình tìm kiếm tự động, lặp đi lặp lại nhằm tối ưu các thiết lập — chẳng hạn như learning rate, trọng số loss và cường độ augmentation — để tối đa hóa các chỉ số hiệu suất của machine learning model như độ chính xác, precision và recall. Thay vì kiểm tra các giá trị này thủ công, Ultralytics YOLO khám phá không gian siêu tham số bằng thuật toán di truyền, liên tục đột biến và đánh giá các cấu hình ứng viên qua nhiều lượt huấn luyện ngắn.
Xem: Cách tinh chỉnh hyperparameter để cải thiện hiệu suất model 🚀
Siêu tham số là gì?#
Siêu tham số là các thiết lập cấu trúc ở cấp cao cho thuật toán. Chúng được thiết lập trước giai đoạn huấn luyện và giữ nguyên trong suốt giai đoạn đó. Sau đây là một số siêu tham số thường được tinh chỉnh trong Ultralytics YOLO:
- Learning Rate
lr0: Xác định kích thước bước ở mỗi vòng lặp khi tiến đến cực tiểu của hàm loss. - Batch Size
batch: Số lượng ảnh được xử lý đồng thời trong một lượt lan truyền tiến. - Số lượng Epoch
epochs: Một epoch là một lượt lan truyền tiến và lan truyền ngược hoàn chỉnh qua toàn bộ mẫu huấn luyện. - Thông số kiến trúc: Chẳng hạn như số lượng channel, số lớp, loại hàm kích hoạt, v.v. Các thông số này nằm trong cấu hình YAML của model, thay vì trong các đối số huấn luyện.
Trong số bốn mục này, chỉ learning rate nằm trong không gian tìm kiếm mặc định: batch, epochs và kiến trúc vẫn cố định. Bộ tinh chỉnh cũng đột biến lịch trình, hệ số loss và augmentation được liệt kê bên dưới.
Để xem danh sách đầy đủ các siêu tham số augmentation được dùng trong YOLO26, hãy tham khảo trang cấu hình.
Tiến hóa di truyền và đột biến#
Ultralytics YOLO sử dụng thuật toán di truyền để tối ưu siêu tham số. Thuật toán di truyền được lấy cảm hứng từ cơ chế chọn lọc tự nhiên và di truyền học.
- Chọn lọc: Mỗi vòng lặp chọn một trong tối đa chín cấu hình có độ thích nghi cao nhất, với xác suất được cân theo độ thích nghi. Sau 30 kết quả, 20% kết quả tốt nhất (tối đa 30) cũng được dùng để ước lượng hiệp phương sai của tham số; ảnh hưởng của ước lượng này tăng dần khi tích lũy thêm bằng chứng từ các cấu hình ưu tú.
- Đột biến: Mỗi vòng lặp đột biến khoảng một nửa số tham số bằng các bước Gaussian được chuẩn hóa theo phạm vi tìm kiếm. Khi hiệp phương sai được kích hoạt, một tỷ lệ có trọng số theo độ tin cậy, tối đa 40%, sử dụng các bước tương quan; phép phản xạ đưa các bước này về trong giới hạn mà không tích lũy các giá trị bị cắt ngưỡng. Khi số lượt thử tăng mà không có cải thiện, kích thước bước thu hẹp tuyến tính tối đa 20% trong 25 lượt thử và được đặt lại khi tìm thấy kết quả tốt nhất mới. Vòng lặp 1 không có cấu hình cha và sử dụng các siêu tham số huấn luyện mặc định làm đường cơ sở.
Chuẩn bị tinh chỉnh siêu tham số#
Trước khi bắt đầu quá trình tinh chỉnh, điều quan trọng là:
- Xác định các chỉ số: Bộ tinh chỉnh tích hợp sẵn (
use_ray=False) xếp hạng các lượt thử theo điểmfitnesscủa tác vụ, trong khiuse_ray=Truesử dụng chỉ số của tác vụ. Hãy quyết định những chỉ số phụ nào bạn sẽ kiểm tra, chẳng hạn như AP50 hoặc F1-score. - Thiết lập ngân sách tinh chỉnh: Xác định lượng tài nguyên tính toán bạn sẵn sàng phân bổ. Tinh chỉnh siêu tham số có thể tiêu tốn nhiều tài nguyên tính toán.
Cách vòng lặp tinh chỉnh hoạt động#
Ở mỗi vòng lặp, bộ tinh chỉnh tích hợp sẵn lặp lại quy trình sau:
- Khởi tạo siêu tham số — bắt đầu từ một đường cơ sở hợp lý, có thể là các siêu tham số mặc định do Ultralytics YOLO thiết lập hoặc các giá trị dựa trên kiến thức chuyên môn hay những thử nghiệm trước đó của bạn.
- Đột biến siêu tham số — lớp
Tunertự động tạo một bộ siêu tham số mới từ bộ hiện có bằng phương thức_mutate. - Huấn luyện model — huấn luyện bằng các siêu tham số đã đột biến, sau đó đánh giá hiệu suất huấn luyện bằng các chỉ số bạn đã chọn.
- Đánh giá model — quy trình đánh giá tạo ra điểm thích nghi của vòng lặp, rồi so sánh điểm đó với các vòng lặp trước để xác định liệu các siêu tham số hiện tại có cải thiện hay không.
- Ghi nhật ký kết quả — lưu lại cả các chỉ số hiệu suất và siêu tham số tương ứng để tham khảo sau này. Ultralytics YOLO tự động lưu các kết quả này ở định dạng NDJSON.
- Lặp lại — tiếp tục cho đến khi đạt số vòng lặp đã đặt; mỗi vòng lặp đều tận dụng kiến thức thu được từ các lượt chạy trước. Bộ tinh chỉnh tích hợp sẵn chạy toàn bộ
iterations; Ray Tune báo cáo các chỉ số sau mỗi epoch fit, cho phép ASHA dừng các lượt thử kém sau thời gian chờ tối thiểu.
Số vòng lặp và kích thước quần thể#
Với bộ tinh chỉnh tích hợp sẵn (use_ray=False), iterations kiểm soát tổng số lượt thử tuần tự và mặc định là 300. Mỗi lượt thử huấn luyện một model với một cấu hình siêu tham số — ví dụ, iterations=40 cùng epochs=50 lên lịch 40 lượt huấn luyện độc lập, mỗi lượt 50 epoch; không phải một lượt huấn luyện 50 epoch với một quần thể riêng gồm 40 ứng viên.
Thuật toán di truyền tích hợp sẵn không có tham số kích thước quần thể tường minh. Khi đã có các lượt thử trước đó, thuật toán chọn từ tối đa chín cấu hình có độ thích nghi cao nhất và đột biến một ứng viên ở mỗi vòng lặp.
Để chạy các lượt thử song song hoặc sử dụng chiến lược tìm kiếm nâng cao hơn, hãy đặt use_ray=True để dùng Ray Tune; Ray Tune cũng có mặc định 300 lượt thử và nhận iterations làm num_samples. Xem hướng dẫn tích hợp Ray Tune để biết thêm chi tiết.
Không gian tìm kiếm mặc định#
Bảng sau liệt kê các tham số trong không gian tìm kiếm mặc định để tinh chỉnh siêu tham số trong YOLO26. Mỗi tham số có một khoảng giá trị cụ thể được xác định bằng tuple (min, max).
| Tham số | Kiểu | Khoảng giá trị | Mô tả |
|---|---|---|---|
lr0 | float | (1e-5, 1e-2) | Learning rate ban đầu khi bắt đầu huấn luyện. Giá trị thấp hơn giúp quá trình huấn luyện ổn định hơn nhưng hội tụ chậm hơn |
lrf | float | (0.01, 1.0) | Hệ số learning rate cuối cùng tính theo tỷ lệ của lr0. Kiểm soát mức giảm của learning rate trong quá trình huấn luyện |
momentum | float | (0.7, 0.98) | Hệ số momentum của SGD. Giá trị cao hơn giúp duy trì hướng gradient nhất quán và có thể tăng tốc độ hội tụ |
weight_decay | float | (0.0, 0.001) | Hệ số regularization L2 để ngăn overfitting. Giá trị lớn hơn áp dụng regularization mạnh hơn |
warmup_epochs | float | (0.0, 5.0) | Số epoch warmup learning rate tuyến tính. Giúp ngăn tình trạng huấn luyện không ổn định ở giai đoạn đầu |
warmup_momentum | float | (0.0, 0.95) | Momentum ban đầu trong giai đoạn warmup. Tăng dần đến giá trị momentum cuối cùng |
box | float | (1.0, 20.0) | Trọng số loss bounding box trong hàm loss tổng. Cân bằng giữa hồi quy box và phân loại |
cls | float | (0.1, 4.0) | Trọng số loss phân loại trong hàm loss tổng. Giá trị cao hơn nhấn mạnh việc dự đoán lớp chính xác |
cls_pw | float | (0.0, 1.0) | Số mũ trọng số lớp để xử lý mất cân bằng lớp. Giá trị cao hơn tăng trọng số cho các lớp hiếm |
dfl | float | (0.4, 12.0) | Trọng số của thành phần hồi quy khoảng cách box. YOLO26 không dùng DFL áp dụng hệ số này cho loss L1 trên khoảng cách box đã chuẩn hóa; giá trị cao hơn nhấn mạnh khả năng định vị chính xác |
hsv_h | float | (0.0, 0.1) | Phạm vi augmentation hue ngẫu nhiên trong không gian màu HSV. Giúp model tổng quát hóa với các biến thể màu sắc |
hsv_s | float | (0.0, 0.9) | Phạm vi augmentation saturation ngẫu nhiên trong không gian HSV. Mô phỏng các điều kiện chiếu sáng khác nhau |
hsv_v | float | (0.0, 0.9) | Phạm vi augmentation value (độ sáng) ngẫu nhiên. Giúp model xử lý các mức phơi sáng khác nhau |
degrees | float | (0.0, 45.0) | Mức augmentation xoay tối đa tính bằng độ. Giúp model bất biến với hướng của đối tượng |
translate | float | (0.0, 0.9) | Mức augmentation dịch chuyển tối đa theo tỷ lệ kích thước ảnh. Tăng độ bền vững trước sự thay đổi vị trí đối tượng |
scale | float | (0.0, 0.95) | Phạm vi augmentation scale ngẫu nhiên. Giúp model phát hiện đối tượng ở nhiều kích thước khác nhau |
shear | float | (0.0, 10.0) | Mức augmentation shear tối đa tính bằng độ. Tạo biến dạng giống phối cảnh trên ảnh huấn luyện |
perspective | float | (0.0, 0.001) | Phạm vi augmentation phối cảnh ngẫu nhiên. Mô phỏng các góc nhìn khác nhau |
flipud | float | (0.0, 1.0) | Xác suất lật ảnh theo chiều dọc trong quá trình huấn luyện. Hữu ích với ảnh chụp từ trên cao hoặc ảnh hàng không |
fliplr | float | (0.0, 1.0) | Xác suất lật ảnh theo chiều ngang. Giúp model bất biến với hướng của đối tượng |
bgr | float | (0.0, 1.0) | Xác suất sử dụng augmentation BGR, hoán đổi các kênh màu. Có thể giúp model bất biến với màu sắc |
mosaic | float | (0.0, 1.0) | Xác suất sử dụng augmentation mosaic, kết hợp 4 ảnh. Đặc biệt hữu ích cho phát hiện vật thể nhỏ |
mixup | float | (0.0, 1.0) | Xác suất sử dụng augmentation mixup, trộn hai ảnh. Có thể cải thiện độ bền vững của model |
cutmix | float | (0.0, 1.0) | Xác suất sử dụng augmentation cutmix. Kết hợp các vùng ảnh đồng thời duy trì đặc trưng cục bộ |
copy_paste | float | (0.0, 1.0) | Ở chế độ flip, đây là tỷ lệ đối tượng đủ điều kiện được sao chép; ở chế độ mixup, giá trị này cũng là xác suất áp dụng augmentation |
close_mosaic | int | (0.0, 10.0) | Tắt mosaic trong N epoch cuối để ổn định quá trình huấn luyện trước khi kết thúc. Giá trị được đột biến dưới dạng số thực, sau đó làm tròn thành số epoch nguyên |
Ví dụ về không gian tìm kiếm tùy chỉnh#
Sau đây là cách định nghĩa không gian tìm kiếm và sử dụng phương thức model.tune() để dùng lớp Tuner tinh chỉnh siêu tham số cho YOLO26n trên COCO8 trong 30 epoch, với optimizer AdamW và bỏ qua việc vẽ biểu đồ, lưu checkpoint cũng như validation, ngoại trừ epoch cuối, để tinh chỉnh nhanh hơn.
Ví dụ này chỉ nhằm mục đích minh họa. Các siêu tham số thu được từ những lượt tinh chỉnh ngắn hoặc quy mô nhỏ hiếm khi tối ưu cho huấn luyện thực tế. Trên thực tế, nên tinh chỉnh trong các điều kiện tương tự như huấn luyện đầy đủ — bao gồm dataset, số epoch và augmentation tương đương — để đảm bảo kết quả đáng tin cậy và có thể chuyển giao. Tinh chỉnh nhanh có thể khiến tham số thiên về hội tụ nhanh hơn hoặc cải thiện validation trong ngắn hạn nhưng không tổng quát hóa được.
from ultralytics import YOLO
# Khởi tạo YOLO model
model = YOLO("yolo26n.pt")
# Định nghĩa không gian tìm kiếm
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Tinh chỉnh siêu tham số trên COCO8 trong 30 epoch
model.tune(
data="coco8.yaml",
epochs=30,
iterations=300,
optimizer="AdamW",
space=search_space,
plots=False,
save=False,
val=False,
)Tiếp tục phiên tinh chỉnh siêu tham số bị gián đoạn#
Bạn có thể tiếp tục phiên tinh chỉnh siêu tham số bị gián đoạn bằng cách truyền resume=True. Bạn có thể tùy chọn truyền thư mục name được dùng trong runs/{task} để tiếp tục. Nếu không có name, quá trình sẽ tiếp tục thư mục có tên chính xác là tune — tên mặc định, không phải phiên chạy gần đây nhất — vì vậy hãy truyền name cho mọi lượt chạy mà bạn đã bắt đầu với tên tùy chỉnh. Bạn cũng cần cung cấp tất cả các đối số huấn luyện trước đó, bao gồm data, epochs, iterations và space.
from ultralytics import YOLO
# Định nghĩa YOLO model
model = YOLO("yolo26n.pt")
# Định nghĩa không gian tìm kiếm
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Tiếp tục lượt chạy trước
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, resume=True)
# Tiếp tục lượt tinh chỉnh với tên 'tune_exp'
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, name="tune_exp", resume=True)Kết quả#
Sau khi hoàn tất thành công quá trình tinh chỉnh siêu tham số, bạn sẽ nhận được một số tệp và thư mục chứa kết quả tinh chỉnh. Mô tả về từng mục như sau:
Cấu trúc tệp#
Sau đây là cấu trúc thư mục kết quả. Các thư mục sweep như multitrain/ và multitrain-2/ chứa từng vòng lặp tinh chỉnh riêng lẻ, tức là mỗi model được huấn luyện trên một dataset bằng một bộ siêu tham số, trong thư mục con mang tên dataset tương ứng. Để tiết kiệm dung lượng, bộ tinh chỉnh xóa các thư mục chạy theo từng dataset của những vòng lặp không còn là kết quả tốt nhất hiện tại. Thư mục tune/ chứa kết quả tinh chỉnh từ tất cả các lượt huấn luyện model riêng lẻ:
runs/
└── detect/
├── multitrain/
│ └── coco8/
├── multitrain-2/
├── ...
└── tune/
├── best_hyperparameters.yaml
├── tune_fitness.png
├── tune_results.ndjson
├── tune_scatter_plots.png
└── weights/
├── last.pt
└── best.ptMô tả tệp#
best_hyperparameters.yaml#
Tệp YAML này chứa các siêu tham số có hiệu suất tốt nhất được tìm thấy trong quá trình tinh chỉnh. Bạn có thể dùng tệp này để khởi tạo các lượt huấn luyện sau với những thiết lập đã tối ưu.
-
Định dạng: YAML
-
Cách dùng: Kết quả siêu tham số
-
Ví dụ:
# 558/900 iterations complete ✅ (45536.81s) # Results saved to /usr/src/ultralytics/runs/detect/tune # Best fitness=0.64297 observed at iteration 498 # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/l1_loss': 0.68503, 'fitness': 0.64297} # Best fitness model is /usr/src/ultralytics/runs/detect/tune/weights # Best fitness hyperparameters are printed below. lr0: 0.00269 lrf: 0.00288 momentum: 0.73375 weight_decay: 0.00015 warmup_epochs: 1.22935 warmup_momentum: 0.1525 box: 18.27875 cls: 1.32899 dfl: 0.56016 hsv_h: 0.01148 hsv_s: 0.53554 hsv_v: 0.13636 degrees: 0.0 translate: 0.12431 scale: 0.07643 shear: 0.0 perspective: 0.0 flipud: 0.0 fliplr: 0.08631 mosaic: 0.42551 mixup: 0.0 copy_paste: 0.0
tune_fitness.png#
Đây là biểu đồ thể hiện độ thích nghi theo số vòng lặp. Biểu đồ giúp bạn hình dung hiệu suất của thuật toán di truyền theo thời gian.
- Định dạng: PNG
- Cách dùng: Trực quan hóa hiệu suất
Biểu đồ bao gồm:
- Một dấu điểm cho mỗi vòng lặp trên mỗi dataset, vì vậy lượt chạy với một dataset hiển thị một điểm ở mỗi vòng lặp, còn lượt chạy với nhiều dataset hiển thị một điểm cho mỗi dataset ở mỗi vòng lặp.
- Đường "trung bình làm mượt" dạng chấm được tính bằng phép làm mượt Gaussian (
sigma=3) trên các giá trị độ thích nghi cấp cao nhất của từng vòng lặp.
tune_results.ndjson#
Tệp NDJSON chứa kết quả chi tiết của từng vòng lặp tinh chỉnh. Mỗi dòng là một đối tượng JSON gồm độ thích nghi tổng hợp, các siêu tham số đã tinh chỉnh và các chỉ số theo từng dataset. Quá trình tinh chỉnh trên một hoặc nhiều dataset đều sử dụng cùng định dạng tệp.
- Định dạng: NDJSON
- Cách dùng: Theo dõi kết quả từng vòng lặp.
- Ví dụ:
Sau đây là ví dụ được định dạng đẹp để dễ đọc; trong tệp .ndjson thực tế, mỗi đối tượng được lưu trên một dòng.
{
"iteration": 1,
"fitness": 0.48628,
"hyperparameters": {
"lr0": 0.01,
"lrf": 0.01,
"momentum": 0.937,
"weight_decay": 0.0005
},
"datasets": {
"coco8": {
"metrics/precision(B)": 0.65666,
"metrics/recall(B)": 0.85,
"metrics/mAP50(B)": 0.85086,
"metrics/mAP50-95(B)": 0.64104,
"val/box_loss": 1.57958,
"val/cls_loss": 1.04986,
"val/l1_loss": 1.32641,
"fitness": 0.64104
},
"coco8-grayscale": {
"metrics/precision(B)": 0.6582,
"metrics/recall(B)": 0.51667,
"metrics/mAP50(B)": 0.59106,
"metrics/mAP50-95(B)": 0.33152,
"val/box_loss": 1.95424,
"val/cls_loss": 1.64059,
"val/l1_loss": 1.70226,
"fitness": 0.33152
}
},
"save_dirs": {
"coco8": "runs/detect/multitrain/coco8",
"coco8-grayscale": "runs/detect/multitrain/coco8-grayscale"
}
}fitness cấp cao nhất là trung bình cộng của các giá trị fitness theo từng dataset. Khi tinh chỉnh trên một dataset, dict datasets có một mục, trong đó fitness bằng fitness cấp cao nhất. Mỗi vòng lặp hoàn tất sẽ ghi lại một đối tượng JSON. Các đường dẫn save_dirs thực tế là đường dẫn tuyệt đối; chúng được rút gọn ở trên để dễ đọc.
tune_scatter_plots.png#
Tệp này chứa các biểu đồ phân tán được tạo từ tune_results.ndjson, giúp bạn hình dung mối quan hệ giữa các siêu tham số và chỉ số hiệu suất khác nhau. Quá trình đột biến sử dụng phạm vi được cấu hình cho từng siêu tham số, vì vậy các giá trị có thể tiến hóa từ những giá trị mặc định bằng không như degrees và shear.
- Định dạng: PNG
- Cách dùng: Phân tích dữ liệu khám phá
weights/#
Thư mục này chứa các model PyTorch đã lưu từ vòng lặp có độ thích nghi tốt nhất của lượt tinh chỉnh. Cả hai tệp đều thuộc cùng vòng lặp đó:
last.pt: last.pt là trọng số từ epoch cuối cùng của quá trình huấn luyện.best.pt: Trọng số best.pt của vòng lặp đạt điểm thích nghi cao nhất.
Dựa vào các kết quả này, bạn có thể đưa ra quyết định sáng suốt hơn cho các lần huấn luyện và phân tích model sau này.
Kết luận#
Tinh chỉnh siêu tham số trong Ultralytics YOLO vừa dễ khởi chạy vừa mạnh mẽ bên trong, nhờ lựa chọn có trọng số theo độ thích nghi và đột biến được chuẩn hóa theo phạm vi trong thuật toán di truyền. Làm theo vòng lặp được trình bày trong hướng dẫn này giúp bạn tinh chỉnh model một cách có hệ thống để đạt hiệu suất tốt hơn, sau đó tái sử dụng best_hyperparameters.yaml thu được để khởi tạo các lần huấn luyện tiếp theo. Để mở rộng quy mô tinh chỉnh trên các lượt thử nghiệm song song và dùng những thuật toán tìm kiếm nâng cao hơn, hãy xem tiếp hướng dẫn tích hợp Ray Tune, hoặc chạy các tác vụ được quản lý với siêu tham số có thể cấu hình và theo dõi chỉ số theo thời gian thực trên Ultralytics Platform thông qua huấn luyện trên đám mây.
Với các thiết lập không được cung cấp qua bất kỳ đối số nào, chẳng hạn như learning rate riêng cho từng layer hoặc chỉ số độ thích nghi tùy chỉnh, hãy tạo lớp con từ trainer. Để hiểu sâu hơn, hãy khám phá mã nguồn của lớp Tuner. Nếu có câu hỏi hoặc yêu cầu tính năng, hãy liên hệ qua GitHub hoặc Discord.
Câu hỏi thường gặp#
Đặt giá trị ban đầu bằng tham số
lr0— các giá trị thường dùng nằm trong khoảng từ0.001đến0.01— rồi để quá trình tinh chỉnh tạo đột biến từ giá trị đó nhằm tìm ra mức tối ưu. Bạn có thể tự động hóa việc này bằng phương thứcmodel.tune(). Ví dụ:Ví dụfrom ultralytics import YOLO # Khởi tạo YOLO model model = YOLO("yolo26n.pt") # Tinh chỉnh siêu tham số trên COCO8 trong 30 epoch model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)Để biết thêm chi tiết, hãy xem trang cấu hình Ultralytics YOLO.
Thuật toán di truyền trong Ultralytics YOLO26 cung cấp phương pháp mạnh mẽ để khám phá không gian siêu tham số, từ đó giúp tối ưu hóa hiệu suất model. Các lợi ích chính bao gồm:
- Tìm kiếm hiệu quả: Lựa chọn có trọng số theo độ thích nghi giữ lại các cấu hình tốt, trong khi đột biến được chuẩn hóa theo phạm vi khám phá các ứng viên mới.
- Tránh cực tiểu cục bộ: Bằng cách đưa vào tính ngẫu nhiên, thuật toán giúp tránh các cực tiểu cục bộ, đảm bảo tối ưu hóa toàn cục tốt hơn.
- Chỉ số hiệu suất: Thuật toán thích ứng dựa trên điểm độ thích nghi dành riêng cho tác vụ (mAP50-95 đối với phát hiện).
Để xem cách thuật toán di truyền tối ưu hóa siêu tham số, hãy tham khảo hướng dẫn tiến hóa siêu tham số.
Thời gian cần thiết để tinh chỉnh siêu tham số với Ultralytics YOLO phụ thuộc phần lớn vào một số yếu tố như kích thước dataset, độ phức tạp của kiến trúc model, số vòng lặp và tài nguyên tính toán sẵn có. Ví dụ, việc tinh chỉnh YOLO26n trên dataset như COCO8 trong 30 epoch có thể mất từ vài giờ đến vài ngày, tùy thuộc vào phần cứng.
Để quản lý hiệu quả thời gian tinh chỉnh, hãy xác định trước ngân sách tinh chỉnh rõ ràng như trình bày trong Chuẩn bị tinh chỉnh siêu tham số. Việc này giúp cân bằng phân bổ tài nguyên và mục tiêu tối ưu hóa.
Khi đánh giá hiệu suất model trong quá trình tinh chỉnh siêu tham số cho YOLO, bạn có thể dùng một số chỉ số chính:
- AP50: Độ chính xác trung bình tại ngưỡng IoU 0.50.
- Điểm F1: Trung bình điều hòa giữa precision và recall.
- Precision và Recall: Các chỉ số riêng lẻ thể hiện độ chính xác của model khi xác định true positive so với false positive và false negative.
Các chỉ số này giúp bạn hiểu những khía cạnh khác nhau về hiệu suất của model. Tham khảo hướng dẫn các chỉ số hiệu suất Ultralytics YOLO để có cái nhìn tổng quan toàn diện.
Có, Ultralytics YOLO26 tích hợp với Ray Tune để tối ưu hóa siêu tham số nâng cao. Ray Tune cung cấp các thuật toán tìm kiếm tinh vi như Tối ưu hóa Bayes và Hyperband, cùng khả năng thực thi song song để tăng tốc quá trình tinh chỉnh.
Để dùng Ray Tune với YOLO26, chỉ cần đặt tham số
use_ray=Truetrong lệnh gọi phương thứcmodel.tune(). Để biết thêm chi tiết và ví dụ, hãy xem hướng dẫn tích hợp Ray Tune.