Anomaly Detection
Phát hiện bất thường đánh dấu các điểm dữ liệu, sự kiện hoặc vùng ảnh lệch khỏi mẫu bình thường. Các loại bất thường, phương pháp chính, kiểm tra trực quan và code.
Phát hiện bất thường là tác vụ xác định các điểm dữ liệu, sự kiện hoặc vùng ảnh khác với mẫu hành vi bình thường đã thiết lập. Phương pháp này còn được gọi là phát hiện ngoại lệ; trong thị giác công nghiệp, thường được gọi là phát hiện lỗi hoặc kiểm tra trực quan tự động. Bất thường hiếm gặp, đa dạng và thường thuộc loại chưa từng xuất hiện, vì vậy phần lớn phương pháp học đặc điểm bình thường từ dữ liệu chủ yếu là bình thường, gán cho mỗi đầu vào mới một điểm số bất thường thể hiện mức độ sai khác so với mẫu đó và đánh dấu các điểm vượt ngưỡng. Các ứng dụng bao gồm phát hiện vết xước và vết lõm trên dây chuyền sản xuất, giao dịch thẻ gian lận, xâm nhập mạng, máy móc sắp hỏng và các dấu hiệu đáng ngờ trong phân tích ảnh y tế.
Các loại bất thường#
- Bất thường điểm: Một giá trị hoặc ảnh đơn lẻ khác biệt rõ rệt so với phần còn lại, chẳng hạn một giao dịch có giá trị lớn gấp 50 lần mức chi tiêu thông thường của khách hàng.
- Bất thường theo ngữ cảnh: Các giá trị bình thường trong ngữ cảnh này nhưng bất thường trong ngữ cảnh khác. Nhiệt độ ngoài trời 30 °C là bình thường vào tháng 7 ở New York nhưng đáng lo ngại vào tháng 1 tại đó.
- Bất thường tập thể: Các chuỗi hoặc nhóm bất thường khi xét cùng nhau dù từng phần tử trông bình thường, chẳng hạn một loạt lần đăng nhập từ nhiều quốc gia trong vòng một phút, trong đó mỗi lần đăng nhập riêng lẻ đều không có gì đáng chú ý.
Cách phát hiện bất thường hoạt động#
Các phương pháp khác nhau ở cách mô hình hóa dữ liệu bình thường:
- Quy tắc thống kê: Đánh dấu các giá trị cách trung bình một số độ lệch chuẩn định trước, hoặc nằm ngoài phạm vi được xác định bằng khoảng tứ phân vị.
- Khoảng cách và mật độ: Đánh dấu các điểm cách xa láng giềng gần nhất hoặc nằm trong vùng thưa, như cách hệ số ngoại lệ cục bộ thực hiện.
- Cô lập: Isolation Forest chia dữ liệu bằng các phép cắt ngẫu nhiên; các điểm bất thường được cô lập sau ít phép cắt hơn so với các điểm bình thường.
- Model một lớp: Máy vector hỗ trợ (SVM) một lớp học một ranh giới quanh dữ liệu huấn luyện và đánh dấu các điểm nằm ngoài ranh giới đó.
- Tái tạo: Autoencoder chỉ được huấn luyện trên dữ liệu bình thường sẽ tái tạo tốt đầu vào bình thường và tái tạo kém dữ liệu bất thường, do đó sai số tái tạo được dùng làm điểm số bất thường.
- Phương pháp thị giác dựa trên đặc trưng: PatchCore lưu đặc trưng của các patch từ ảnh không có lỗi — được trích xuất bằng mạng tiền huấn luyện trên ImageNet — vào ngân hàng bộ nhớ, rồi chấm điểm mỗi patch kiểm tra dựa trên khoảng cách tới patch đã lưu gần nhất; phương pháp đạt AUROC cấp ảnh lên tới 99.6% trên benchmark MVTec AD.
scikit-learn phân biệt phát hiện ngoại lệ, trong đó dữ liệu huấn luyện đã có một số bất thường, với phát hiện tính mới, trong đó dữ liệu huấn luyện sạch và chỉ các đầu vào mới được chấm điểm. Script dưới đây huấn luyện Isolation Forest trên số đo từ một máy khỏe mạnh và chấm điểm bốn số đo mới:
import numpy as np
from sklearn.ensemble import IsolationForest
# 1,000 readings from a healthy machine: temperature (C) and vibration (mm/s)
rng = np.random.default_rng(0)
normal = rng.normal([60, 2.0], [3, 0.3], size=(1000, 2))
# Learn what normal looks like, then score new readings
detector = IsolationForest(random_state=0).fit(normal)
new = np.array([[61, 2.1], [59, 1.8], [75, 2.0], [60, 4.5]])
labels = detector.predict(new) # 1 = normal, -1 = anomaly
scores = detector.decision_function(new) # below 0 = anomaly
for (temp, vibration), label, score in zip(new, labels, scores):
status = "anomaly" if label == -1 else "normal"
print(f"{temp:.0f} C, {vibration:.1f} mm/s -> {status} (score {score:+.3f})")Hai số đo gần giá trị trung bình của dữ liệu huấn luyện có điểm +0.080 và +0.076, nên được chấp nhận. Số đo quá nhiệt ở 75 °C có điểm −0.139 và số đo có độ rung cao hơn gấp đôi mức thông thường có điểm −0.152, nên cả hai đều bị đánh dấu, dù model chưa từng thấy ví dụ nào về hai lỗi này.
Phát hiện bất thường bằng thị giác#
Kiểm tra trực quan có hai hướng tùy thuộc vào khả năng thu thập và gán nhãn khuyết tật. Khi đã biết loại khuyết tật và có ví dụ, model phát hiện đối tượng hoặc phân đoạn instance được huấn luyện với các lớp như vết xước, vết lõm và vết nứt sẽ xác định vị trí và đặt tên cho từng khuyết tật. Model YOLO26 detection hoặc segmentation được fine-tune trên các lớp này trả về hộp hoặc mask, lớp và điểm confidence cho mỗi khuyết tật tìm thấy trong ảnh. Khi khuyết tật hiếm hoặc khó dự đoán, phương pháp một lớp chỉ huấn luyện trên ảnh bộ phận tốt rồi gắn cờ mọi thứ khác biệt, nhờ đó phát hiện cả những loại khuyết tật chưa ai lường trước. Dataset MVTec AD, với hơn 5.000 ảnh thuộc 15 danh mục đối tượng và kết cấu, chỉ có ảnh không lỗi trong các tập huấn luyện, là benchmark tiêu chuẩn cho thiết lập này; Ultralytics Platform cũng lưu trữ dataset dưới dạng dataset detection cho hướng học có giám sát. Các thư viện mã nguồn mở như Anomalib triển khai PatchCore và các phương pháp tương tự.
Bộ phát hiện bất thường được đánh giá bằng các metric không phụ thuộc ngưỡng như diện tích dưới đường cong ROC (AUC), cùng với precision và recall tại ngưỡng đã chọn; các chỉ số này phản ánh những cảnh báo giả và trường hợp bỏ sót mà người vận hành thực sự sẽ gặp. Vì bất thường hiếm gặp, ngưỡng thường được thiết lập từ điểm số trên ảnh xác thực bình thường, chẳng hạn chọn ngưỡng sao cho chỉ 1% linh kiện tốt có điểm vượt ngưỡng.
Phát hiện bất thường và các thuật ngữ liên quan#
- Phát hiện đối tượng: Tìm các thực thể thuộc một tập lớp cố định đã gán nhãn. Bộ phát hiện đối tượng được huấn luyện trên lỗi chỉ tìm được các loại lỗi đã dùng để huấn luyện.
- Trôi dạt dữ liệu: Sự thay đổi phân phối của toàn bộ luồng đầu vào theo thời gian, chẳng hạn ảnh tối hơn trong suốt một tuần. Phát hiện bất thường chấm điểm từng đầu vào riêng lẻ.
- Phát hiện ngoài phân phối (OOD): Đánh dấu các đầu vào khác biệt so với dữ liệu huấn luyện của model để model có thể từ chối dự đoán hoặc chuyển cho người xử lý; đây là phát hiện tính mới áp dụng cho đầu vào của một model đã triển khai.
- Phát hiện thay đổi: So sánh ảnh chụp cùng một cảnh ở các thời điểm khác nhau, chẳng hạn ảnh vệ tinh trước và sau lũ, để xác định những gì đã thay đổi.










