Phát hiện bất thường là người hùng thầm lặng trong các hoạt động dữ liệu - giống như chuông báo khói vang lên trước khi mọi thứ bốc cháy.
Nói một cách đơn giản: AI học cách xác định "gần như bình thường", gán cho các sự kiện mới một điểm bất thường , và sau đó quyết định xem có nên gọi cho con người (hoặc tự động chặn sự kiện đó) dựa trên ngưỡng hay không. Vấn đề nằm ở cách bạn định nghĩa "gần như bình thường" khi dữ liệu của bạn mang tính mùa vụ, lộn xộn, thay đổi và đôi khi không chính xác. [1]
Những bài viết bạn có thể muốn đọc sau bài này:
🔗 Tại sao AI có thể gây hại cho xã hội?
Bài viết này phân tích các rủi ro về đạo đức, kinh tế và xã hội của việc áp dụng rộng rãi AI.
🔗 Lượng nước mà các hệ thống AI thực sự sử dụng:
Giải thích về làm mát trung tâm dữ liệu, nhu cầu đào tạo và tác động của nước đến môi trường.
🔗 Tập dữ liệu AI là gì và tại sao nó quan trọng.
Định nghĩa về tập dữ liệu, việc gắn nhãn, nguồn dữ liệu và vai trò của chúng trong hiệu suất mô hình.
🔗 Trí tuệ nhân tạo dự đoán xu hướng từ dữ liệu phức tạp như thế nào?
Bao gồm nhận dạng mẫu, mô hình học máy và các ứng dụng dự báo thực tế.
“Trí tuệ nhân tạo phát hiện các bất thường như thế nào?”
Một câu trả lời tốt không chỉ đơn thuần là liệt kê các thuật toán. Nó cần giải thích cơ chế hoạt động và kết quả khi áp dụng chúng vào dữ liệu thực tế, không hoàn hảo. Những lời giải thích tốt nhất:
-
Hiển thị các thành phần cơ bản: đặc điểm , đường cơ sở , điểm số và ngưỡng . [1]
-
So sánh các họ thực tế: khoảng cách, mật độ, một lớp, cô lập, xác suất, tái cấu trúc. [1]
-
Xử lý các đặc điểm bất thường của chuỗi thời gian: “bình thường” phụ thuộc vào thời gian trong ngày, ngày trong tuần, ngày phát hành và ngày lễ. [1]
-
Hãy coi việc đánh giá như một ràng buộc thực sự: cảnh báo sai không chỉ gây khó chịu mà còn làm mất lòng tin. [4]
-
Bao gồm khả năng giải thích + sự tham gia của con người, bởi vì “nó kỳ lạ” không phải là nguyên nhân gốc rễ. [5]
Các nguyên tắc cốt lõi: Đường cơ sở, điểm số, ngưỡng 🧠
Hầu hết các hệ thống dị thường - dù phức tạp hay không - đều quy về ba thành phần chuyển động chính:
1) Sự biểu diễn (hay còn gọi là: những gì mô hình nhìn thấy )
Tín hiệu thô hiếm khi đủ. Bạn phải tạo ra các đặc trưng (thống kê luân chuyển, tỷ lệ, độ trễ, chênh lệch theo mùa) hoặc học các biểu diễn (nhúng, không gian con, tái tạo). [1]
2) Chấm điểm (hay nói cách khác: điều này "kỳ lạ" đến mức nào?)
Các ý tưởng chấm điểm phổ biến bao gồm:
-
Dựa trên khoảng cách : xa hàng xóm = đáng ngờ. [1]
-
Dựa trên mật độ : mật độ địa phương thấp = đáng ngờ (LOF là ví dụ điển hình). [1]
-
Ranh giới một lớp : học “bình thường”, đánh dấu những gì nằm ngoài phạm vi đó. [1]
-
Xác suất : xác suất thấp theo mô hình phù hợp = đáng ngờ. [1]
-
Lỗi tái tạo : nếu một mô hình được huấn luyện trên dữ liệu bình thường không thể tái tạo lại nó, thì có lẽ nó bị sai. [1]
3) Ngưỡng (hay còn gọi là: khi nào cần rung chuông)
Ngưỡng có thể cố định, dựa trên phân vị, theo từng phân đoạn hoặc nhạy cảm với chi phí - nhưng chúng nên được hiệu chỉnh dựa trên ngân sách cảnh báo và chi phí tiếp theo, chứ không phải cảm nhận. [4]
Một chi tiết rất thực tế: bộ phát hiện ngoại lệ/độc đáo của scikit-learn hiển thị điểm số thô và sau đó áp dụng ngưỡng (thường được kiểm soát thông qua giả định kiểu ô nhiễm) để chuyển đổi điểm số thành quyết định nội tại/ngoại lệ. [2]
Những định nghĩa ngắn gọn giúp tránh đau đầu về sau 🧯
Hai điểm khác biệt giúp bạn tránh những lỗi nhỏ không đáng kể:
-
Phát hiện ngoại lệ : dữ liệu huấn luyện của bạn có thể đã bao gồm các ngoại lệ; thuật toán vẫn cố gắng mô hình hóa "vùng bình thường dày đặc".
-
Phát hiện mới : dữ liệu huấn luyện được giả định là sạch; bạn đang đánh giá xem mới có phù hợp với mẫu bình thường đã học hay không. [2]
Ngoài ra: việc phát hiện sự mới lạ thường được coi là phân loại một lớp - mô hình hóa bình thường vì các ví dụ bất thường rất hiếm hoặc không xác định. [1]

Những "cỗ máy làm việc" tự động mà bạn thực sự sẽ sử dụng 🧰
Khi nguồn dữ liệu khan hiếm (điều này hầu như luôn xảy ra), đây là những công cụ thường xuất hiện trong các quy trình thực tế:
-
Rừng cô lập : một mặc định mạnh mẽ trong nhiều trường hợp bảng, được sử dụng rộng rãi trong thực tế và được triển khai trong scikit-learn. [2]
-
SVM một lớp : có thể hiệu quả nhưng nhạy cảm với việc điều chỉnh và các giả định; scikit-learn chỉ rõ sự cần thiết phải điều chỉnh siêu tham số cẩn thận. [2]
-
Hệ số ngoại lệ cục bộ (LOF) : cách tính điểm dựa trên mật độ cổ điển; rất hữu ích khi “bình thường” không phải là một khối gọn gàng. [1]
Một vấn đề thực tế mà các nhóm phát hiện ra hàng tuần: LOF hoạt động khác nhau tùy thuộc vào việc bạn đang thực hiện phát hiện ngoại lệ trên tập huấn luyện hay phát hiện sự mới lạ trên dữ liệu mới - scikit-learn thậm chí còn yêu cầu novelty=True để ghi điểm an toàn cho những điểm chưa được nhìn thấy. [2]
Một nền tảng vững chắc vẫn hoạt động tốt ngay cả khi dữ liệu gặp trục trặc 🪓
Nếu bạn chỉ cần một thứ gì đó không làm chúng ta phát điên vì quá nhiều thông báo, thì số liệu thống kê mạnh mẽ thường bị đánh giá thấp.
Điểm z được sửa đổi sử dụng trung vị và MAD (độ lệch tuyệt đối trung vị) để giảm độ nhạy cảm với các giá trị cực đoan. Sổ tay EDA của NIST ghi lại dạng điểm z được sửa đổi và lưu ý quy tắc “ngoại lệ tiềm năng” thường được sử dụng ở giá trị tuyệt đối trên 3,5 . [3]
Điều này sẽ không giải quyết được mọi vấn đề bất thường - nhưng nó thường là tuyến phòng thủ đầu tiên mạnh mẽ, đặc biệt là đối với các số liệu nhiễu và giám sát giai đoạn đầu. [3]
Thực tế theo chuỗi thời gian: "Bình thường" phụ thuộc vào thời điểm ⏱️📈
Các bất thường trong chuỗi thời gian rất phức tạp vì bối cảnh là điểm mấu chốt: một đỉnh nhọn vào buổi trưa có thể được mong đợi; đỉnh nhọn tương tự vào lúc 3 giờ sáng có thể có nghĩa là có đám cháy. Do đó, nhiều hệ thống thực tế mô hình hóa tính bình thường bằng cách sử dụng các đặc điểm nhận biết thời gian (độ trễ, chênh lệch theo mùa, cửa sổ trượt) và tính điểm độ lệch so với mô hình dự kiến. [1]
Nếu bạn chỉ nhớ một quy tắc: hãy phân đoạn đường cơ sở của bạn (giờ/ngày/khu vực/cấp dịch vụ) trước khi bạn tuyên bố một nửa lưu lượng truy cập của mình là “bất thường”. [1]
Đánh giá: Cái bẫy sự kiện hiếm gặp 🧪
Việc phát hiện các bất thường thường giống như "tìm kim trong đống rơm", điều này khiến việc đánh giá trở nên khó khăn:
-
Đường cong ROC có thể trông rất tốt khi các giá trị dương tính hiếm gặp.
-
Các quan điểm về độ chính xác-độ thu hồi thường cung cấp nhiều thông tin hơn cho các thiết lập không cân bằng vì chúng tập trung vào hiệu suất trên lớp tích cực. [4]
-
Về mặt vận hành, bạn cũng cần một ngân sách cảnh báo : con người thực sự có thể phân loại bao nhiêu cảnh báo mỗi giờ mà không bỏ việc vì tức giận? [4]
Việc kiểm tra lại trên các cửa sổ trượt giúp bạn phát hiện ra chế độ lỗi kinh điển: “nó hoạt động rất tốt… trên bản phân phối của tháng trước.” [1]
Khả năng giải thích & Nguyên nhân gốc rễ: Hãy trình bày rõ ràng các bước giải 🪄
Thông báo mà không có lời giải thích giống như nhận được một tấm bưu thiếp bí ẩn. Có ích phần nào, nhưng lại gây khó chịu.
Các công cụ giải thích có thể giúp bằng cách chỉ ra những đặc điểm nào đóng góp nhiều nhất vào điểm số bất thường, hoặc bằng cách đưa ra lời giải thích theo kiểu “điều gì cần thay đổi để điều này trông bình thường?”. Học máy có thể giải thích là một hướng dẫn quan trọng và vững chắc về các phương pháp phổ biến (bao gồm cả các quy kết kiểu SHAP) và những hạn chế của chúng. [5]
Mục tiêu không chỉ là tạo sự thoải mái cho các bên liên quan mà còn là xử lý sự cố nhanh hơn và giảm thiểu các sự cố lặp lại.
Triển khai, trôi dạt và vòng phản hồi 🚀
Mô hình không chỉ tồn tại trên slide. Chúng tồn tại trong các quy trình.
Một câu chuyện thường gặp trong "tháng đầu tiên đưa vào sản xuất": công cụ phát hiện chủ yếu gắn cờ các lần triển khai, các tác vụ xử lý hàng loạt và dữ liệu bị thiếu… điều này vẫn hữu ích vì nó buộc bạn phải phân biệt "sự cố chất lượng dữ liệu" với "các bất thường trong hoạt động kinh doanh".
Trên thực tế:
-
Theo dõi sự thay đổi và huấn luyện lại/hiệu chỉnh lại khi hành vi thay đổi. [1]
-
Ghi lại các đầu vào điểm số + phiên bản mô hình để bạn có thể tái tạo lý do tại sao một thứ gì đó được phân trang. [5]
-
Thu thập phản hồi của con người (cảnh báo hữu ích so với cảnh báo nhiễu) để điều chỉnh ngưỡng và phân đoạn theo thời gian. [4]
Góc độ an ninh: Hệ thống phát hiện xâm nhập (IDS) và phân tích hành vi 🛡️
Các nhóm bảo mật thường kết hợp các ý tưởng về sự bất thường với việc phát hiện dựa trên quy tắc: các tiêu chuẩn cơ bản cho “hành vi máy chủ bình thường”, cộng với các chữ ký và chính sách cho các mẫu xấu đã biết. SP 800-94 (Phiên bản cuối cùng) của NIST vẫn là một khuôn khổ được trích dẫn rộng rãi cho các cân nhắc về hệ thống phát hiện và ngăn chặn xâm nhập; nó cũng lưu ý rằng bản dự thảo “Phiên bản 1” năm 2012 chưa bao giờ trở thành phiên bản cuối cùng và sau đó đã bị loại bỏ. [3]
Dịch nghĩa: Hãy sử dụng học máy khi nó hữu ích, nhưng đừng vứt bỏ những quy tắc nhàm chán - chúng nhàm chán vì chúng hiệu quả.
Bảng so sánh: Tổng quan về các phương pháp phổ biến 📊
| Công cụ / Phương pháp | Tốt nhất cho | Lý do tại sao nó hiệu quả (trong thực tế) |
|---|---|---|
| Điểm z mạnh mẽ / được điều chỉnh | Các chỉ số đơn giản, dữ liệu cơ bản nhanh chóng | Lần chạy đầu tiên mạnh mẽ khi bạn cần “đủ tốt” và ít báo động sai hơn. [3] |
| Rừng cô lập | Dạng bảng, đặc điểm hỗn hợp | Việc triển khai mặc định vững chắc và được sử dụng rộng rãi trong thực tế. [2] |
| SVM một lớp | Các vùng “bình thường” nhỏ gọn | Phát hiện sự mới lạ dựa trên ranh giới; việc điều chỉnh rất quan trọng. [2] |
| Yếu tố ngoại lệ cục bộ | Các pháp tuyến gần giống đa tạp | Sự tương phản về mật độ so với các khu vực lân cận cho thấy sự kỳ lạ cục bộ. [1] |
| Lỗi tái tạo (ví dụ: kiểu autoencoder) | Các mô hình đa chiều | Huấn luyện trên điều kiện bình thường; lỗi tái tạo lớn có thể báo hiệu sự sai lệch. [1] |
Mẹo hay: bắt đầu với các mô hình cơ bản mạnh mẽ + một phương pháp không giám sát đơn giản, sau đó chỉ tăng độ phức tạp ở những nơi thực sự cần thiết.
Cẩm nang nhỏ: Từ con số 0 đến cảnh báo 🧭
-
Hãy định nghĩa "bất thường" về mặt vận hành (độ trễ, rủi ro gian lận, quá tải CPU, rủi ro tồn kho).
-
Bắt đầu với mức cơ sở (thống kê mạnh mẽ hoặc ngưỡng phân đoạn). [3]
-
Chọn một mô hình không giám sát làm bước đầu tiên (Rừng cô lập / LOF / SVM một lớp). [2]
-
Đặt ngưỡng với ngân sách cảnh báo và đánh giá bằng tư duy kiểu PR nếu kết quả tích cực hiếm gặp. [4]
-
Thêm phần giải thích + ghi nhật ký để mọi cảnh báo đều có thể tái hiện và gỡ lỗi được. [5]
-
Kiểm tra lại, triển khai, học hỏi, hiệu chỉnh lại - sự thay đổi là bình thường. [1]
Bạn hoàn toàn có thể làm xong việc này trong một tuần… với điều kiện là các mốc thời gian của bạn không được dán lại bằng băng dính và hy vọng. 😅
Lời kết - Dài quá, tôi không đọc hết🧾
AI phát hiện các bất thường bằng cách học một bức tranh thực tế về “bình thường”, chấm điểm các sai lệch và gắn cờ những gì vượt qua ngưỡng. Các hệ thống tốt nhất chiến thắng không phải bằng sự hào nhoáng mà bằng sự được hiệu chỉnh : đường cơ sở phân đoạn, ngân sách cảnh báo, đầu ra có thể giải thích và vòng phản hồi biến các cảnh báo nhiễu thành tín hiệu đáng tin cậy. [1]
Tài liệu tham khảo
-
Pimentel et al. (2014) - Tổng quan về phát hiện tính mới (PDF, Đại học Oxford) đọc thêm
-
Tài liệu hướng dẫn scikit-learn - Phát hiện điểm mới và điểm bất thường (Novelty and Outlier Detection) - Đọc thêm
-
Sổ tay điện tử NIST/SEMATECH - Phát hiện các giá trị ngoại lệ (đọc thêm) và NIST CSRC - SP 800-94 (Phiên bản cuối): Hướng dẫn về Hệ thống Phát hiện và Ngăn chặn Xâm nhập (IDPS) (đọc thêm)
-
Saito & Rehmsmeier (2015) - Biểu đồ Độ chính xác-Độ thu hồi cung cấp nhiều thông tin hơn biểu đồ ROC khi đánh giá các bộ phân loại nhị phân trên các tập dữ liệu không cân bằng (PLOS ONE) đọc thêm
-
Molnar - Học máy có thể giải thích (sách điện tử) đọc thêm