AI ตรวจจับความผิดปกติได้อย่างไร?

AI ตรวจจับความผิดปกติได้อย่างไร?

การตรวจจับความผิดปกติเปรียบเสมือนฮีโร่ผู้เงียบขรึมในการดำเนินงานด้านข้อมูล เปรียบเสมือนสัญญาณเตือนควันไฟที่กระซิบเบาๆ ก่อนที่ทุกอย่างจะลุกลามใหญ่โต

พูดให้เข้าใจง่ายๆ ก็คือ AI เรียนรู้ว่า “ปกติ” มีลักษณะอย่างไร ให้ คะแนนความผิดปกติ จึงตัดสินใจว่าจะเรียกมนุษย์ (หรือบล็อกสิ่งนั้นโดยอัตโนมัติ) โดยพิจารณาจาก เกณฑ์ ปัญหาอยู่ที่ว่าคุณจะกำหนด “ปกติ” อย่างไรเมื่อข้อมูลของคุณเป็นไปตามฤดูกาล ยุ่งเหยิง เปลี่ยนแปลง และบางครั้งก็ให้ข้อมูลที่ไม่ถูกต้อง [1]

บทความที่คุณอาจสนใจอ่านต่อหลังจากบทความนี้:

🔗 เหตุใด AI จึงอาจเป็นอันตรายต่อสังคม
บทความนี้วิเคราะห์ความเสี่ยงด้านจริยธรรม เศรษฐกิจ และสังคมจากการนำ AI มาใช้ในวงกว้าง

🔗 ระบบ AI ใช้น้ำมากแค่ไหน
อธิบายเกี่ยวกับการระบายความร้อนของศูนย์ข้อมูล ความต้องการในการฝึกอบรม และผลกระทบต่อสิ่งแวดล้อมจากการใช้น้ำ

🔗 ชุดข้อมูล AI คืออะไรและทำไมจึงสำคัญ
อธิบายความหมายของชุดข้อมูล การติดป้ายกำกับ แหล่งที่มา และบทบาทของสิ่งเหล่านี้ต่อประสิทธิภาพของโมเดล

🔗 AI ทำนายแนวโน้มจากข้อมูลที่ซับซ้อนได้อย่างไร
ครอบคลุมการจดจำรูปแบบ โมเดลการเรียนรู้ของเครื่อง และการใช้งานจริงในการพยากรณ์


“ปัญญาประดิษฐ์ตรวจจับความผิดปกติได้อย่างไร?” 

คำตอบที่ดีควรทำมากกว่าแค่แสดงรายการอัลกอริธึม ควรอธิบายกลไก และ ลักษณะการทำงานเมื่อนำไปใช้กับข้อมูลจริงที่ไม่สมบูรณ์แบบ คำอธิบายที่ดีที่สุดคือ:

  • แสดงส่วนประกอบพื้นฐาน: คุณสมบัติ , เส้นฐาน , คะแนน และ เกณฑ์ [1]

  • เปรียบเทียบตระกูลเชิงปฏิบัติ: ระยะทาง ความหนาแน่น คลาสเดียว การแยก ความน่าจะเป็น การสร้างใหม่ [1]

  • จัดการกับความผิดปกติในอนุกรมเวลา: “ปกติ” ขึ้นอยู่กับเวลาของวัน วันในสัปดาห์ การเผยแพร่ และวันหยุด [1]

  • ถือว่าการประเมินเป็นข้อจำกัดที่แท้จริง: สัญญาณเตือนที่ผิดพลาดไม่เพียงแต่สร้างความรำคาญเท่านั้น แต่ยังทำลายความไว้วางใจอีกด้วย [4]

  • รวมความสามารถในการตีความ + การมีส่วนร่วมของมนุษย์ เพราะ "มันแปลก" ไม่ใช่สาเหตุหลัก [5]


กลไกหลัก: ค่าพื้นฐาน คะแนน เกณฑ์ 🧠

ระบบตรวจจับความผิดปกติส่วนใหญ่ ไม่ว่าจะซับซ้อนหรือไม่ก็ตาม ล้วนประกอบด้วยส่วนประกอบหลักสามส่วน:

1) การแสดงผล (หรือสิ่งที่แบบจำลอง มองเห็น )

สัญญาณดิบมักไม่เพียงพอ คุณต้อง ออกแบบคุณสมบัติ (สถิติแบบหมุน อัตราส่วน ความล่าช้า เดลต้าตามฤดูกาล) หรือ เรียนรู้การแสดงแทน (การฝัง พื้นที่ย่อย การสร้างใหม่) [1]

2) การให้คะแนน (หรืออีกนัยหนึ่ง: มัน "แปลก" แค่ไหน?)

แนวคิดการให้คะแนนทั่วไป ได้แก่:

  • พิจารณาตามระยะทาง : ไกลจากเพื่อนบ้าน = น่าสงสัย [1]

  • ความหนาแน่นตามพื้นที่ : ความหนาแน่นในพื้นที่ต่ำ = น่าสงสัย (LOF เป็นตัวอย่างที่ดี) [1]

  • ขอบเขตของคลาสเดียว : เรียนรู้ "ปกติ" และระบุสิ่งที่อยู่นอกเหนือขอบเขต [1]

  • ความน่าจะเป็น : ความน่าจะเป็นต่ำภายใต้แบบจำลองที่เหมาะสม = น่าสงสัย [1]

  • ข้อผิดพลาดในการสร้างใหม่ : หากโมเดลที่ฝึกฝนบนค่าปกติไม่สามารถสร้างใหม่ได้ แสดงว่าอาจผิดพลาด [1]

3) การกำหนดเกณฑ์ (หรือ: เมื่อใดควรส่งสัญญาณเตือน)

เกณฑ์สามารถกำหนดได้แบบคงที่ แบบอิงตามควอนไทล์ แบบต่อกลุ่ม หรือแบบคำนึงถึงต้นทุน แต่ควร ปรับเทียบ กับงบประมาณการแจ้งเตือนและต้นทุนปลายทาง ไม่ใช่ตามความรู้สึก [4]

รายละเอียดที่ใช้งานได้จริงอย่างหนึ่งคือ ตัวตรวจจับค่าผิดปกติ/ความแปลกใหม่ของ scikit-learn จะแสดง คะแนนดิบ จาก นั้นจึงใช้ เกณฑ์ (ซึ่งมักถูกควบคุมผ่านสมมติฐานแบบการปนเปื้อน) เพื่อแปลงคะแนนให้เป็นการตัดสินใจว่าค่าปกติหรือค่าผิดปกติ [2]


คำจำกัดความสั้นๆ ที่ช่วยป้องกันความเจ็บปวดในภายหลัง 🧯

สองข้อแตกต่างที่จะช่วยให้คุณหลีกเลี่ยงความผิดพลาดเล็กน้อย:

  • การตรวจจับค่าผิดปกติ : ข้อมูลฝึกฝนของคุณอาจมีค่าผิดปกติอยู่แล้ว แต่อัลกอริทึมก็ยังพยายามสร้างแบบจำลอง "บริเวณปกติที่มีความหนาแน่นสูง" อยู่ดี

  • การตรวจจับความแปลกใหม่ : ถือว่าข้อมูลการฝึกอบรมสะอาด คุณกำลังตัดสินว่า ใหม่นั้น เข้ากับรูปแบบปกติที่เรียนรู้หรือไม่ [2]

นอกจากนี้ การตรวจจับความแปลกใหม่มักถูกกำหนดให้เป็นการ จำแนกประเภทแบบคลาสเดียว - การสร้างแบบจำลองปกติเนื่องจากตัวอย่างที่ผิดปกติมีน้อยหรือไม่ชัดเจน [1]

 

ความผิดปกติของ AI เกิดข้อผิดพลาด

เครื่องมือทำงานอัตโนมัติที่คุณจะได้ใช้จริง 🧰

เมื่อป้ายกำกับมีน้อย (ซึ่งโดยพื้นฐานแล้วเป็นเช่นนั้นเสมอ) เครื่องมือเหล่านี้คือเครื่องมือที่จะปรากฏในขั้นตอนการทำงานจริง:

  • Isolation Forest : ค่าเริ่มต้นที่แข็งแกร่งในกรณีตารางหลายกรณี ใช้กันอย่างแพร่หลายในทางปฏิบัติและนำไปใช้ใน scikit-learn [2]

  • SVM แบบคลาสเดียว : อาจมีประสิทธิภาพแต่ไวต่อการปรับแต่งและสมมติฐาน scikit-learn ระบุอย่างชัดเจนถึงความจำเป็นในการปรับแต่งไฮเปอร์พารามิเตอร์อย่างระมัดระวัง [2]

  • ปัจจัยค่าผิดปกติเฉพาะที่ (LOF) : การให้คะแนนตามความหนาแน่นแบบคลาสสิก เหมาะอย่างยิ่งเมื่อ "ค่าปกติ" ไม่ใช่กลุ่มก้อนที่เรียบร้อย [1]

ข้อผิดพลาดที่ทีมต่างๆ พบเจอซ้ำแล้วซ้ำเล่าในแต่ละสัปดาห์: LOF ทำงานแตกต่างกันขึ้นอยู่กับว่าคุณกำลังตรวจจับสิ่งผิดปกติในชุดฝึกอบรมหรือตรวจจับความแปลกใหม่ในข้อมูลใหม่ - scikit-learn ยังต้องการ novelty=True เพื่อให้สามารถให้คะแนนจุดที่ไม่เคยเห็นมาก่อนได้อย่างปลอดภัย [2]


ฐานข้อมูลที่แข็งแกร่งซึ่งยังคงใช้งานได้แม้ข้อมูลจะมีปัญหา 🪓

หากคุณอยู่ในโหมด "เราแค่ต้องการอะไรสักอย่างที่ไม่ทำให้เราจมหายไปในความว่างเปล่า" สถิติที่น่าเชื่อถือถือเป็นสิ่งที่ถูกมองข้ามไปอย่างน่าเสียดาย

ค่า z-score ที่ปรับปรุงแล้ว จะใช้ค่า มัธยฐาน และ MAD (ค่าเบี่ยงเบนสัมบูรณ์ของมัธยฐาน) เพื่อลดความไวต่อค่าสุดขั้ว คู่มือ EDA ของ NIST ได้บันทึกรูปแบบ z-score ที่ปรับปรุงแล้วและระบุถึงกฎทั่วไปที่ใช้กันทั่วไปสำหรับ "ค่าผิดปกติที่อาจเกิดขึ้น" ที่ค่าสัมบูรณ์สูงกว่า 3.5 [3]

วิธีนี้จะไม่สามารถแก้ปัญหาความผิดปกติทุกอย่างได้ แต่โดยทั่วไปแล้วถือเป็นแนวป้องกันด่านแรกที่แข็งแกร่ง โดยเฉพาะอย่างยิ่งสำหรับเมตริกที่มีสัญญาณรบกวนและการตรวจสอบในระยะเริ่มต้น [3]


ความเป็นจริงของอนุกรมเวลา: “ปกติ” ขึ้นอยู่กับช่วงเวลา ⏱️📈

ความผิดปกติของอนุกรมเวลาเป็นเรื่องยุ่งยากเพราะบริบทเป็นประเด็นสำคัญ: การพุ่งขึ้นตอนเที่ยงอาจเป็นสิ่งที่คาดหวังได้ การพุ่งขึ้นแบบเดียวกันในเวลาตี 3 อาจหมายความว่ามีบางอย่างกำลังลุกไหม้ ดังนั้นระบบปฏิบัติจริงจำนวนมากจึงจำลองความปกติโดยใช้ คุณลักษณะที่คำนึงถึงเวลา (ความล่าช้า การเปลี่ยนแปลงตามฤดูกาล หน้าต่างแบบเลื่อน) และการเบี่ยงเบนคะแนนที่สัมพันธ์กับรูปแบบที่คาดหวัง [1]

หากคุณจำกฎได้เพียงข้อเดียว: แบ่งกลุ่มฐานของคุณ (ชั่วโมง/วัน/ภูมิภาค/ระดับบริการ) ก่อนที่คุณจะประกาศว่าปริมาณการรับส่งข้อมูลครึ่งหนึ่งของคุณ "ผิดปกติ" [1]


การประเมิน: กับดักเหตุการณ์หายาก 🧪

การตรวจจับความผิดปกติมักเปรียบเสมือน "การหาเข็มในกองฟาง" ซึ่งทำให้การประเมินผลเป็นเรื่องยาก:

  • กราฟ ROC อาจดูดีอย่างน่าหลอกลวงเมื่อผลลัพธ์ที่เป็นบวกเกิดขึ้นน้อย

  • มุมมองความแม่นยำ-การเรียกคืนมักให้ข้อมูลมากกว่าสำหรับการตั้งค่าที่ไม่สมดุล เนื่องจากเน้นที่ประสิทธิภาพในคลาสบวก [4]

  • ในทางปฏิบัติ คุณยังต้องมี งบประมาณการแจ้งเตือน ด้วย: มนุษย์สามารถคัดกรองการแจ้งเตือนได้กี่ครั้งต่อชั่วโมงโดยไม่หัวเสียจนเลิกเล่น? [4]

การทดสอบย้อนหลังโดยใช้หน้าต่างแบบเลื่อนช่วยให้คุณจับโหมดความล้มเหลวแบบคลาสสิกได้: “มันทำงานได้อย่างยอดเยี่ยม… ในการแจกจ่ายของเดือนที่แล้ว” [1]


ความสามารถในการตีความและสาเหตุที่แท้จริง: แสดงขั้นตอนการทำงานของคุณ 🪄

การแจ้งเตือนโดยไม่มีคำอธิบายก็เหมือนกับการได้รับโปสการ์ดปริศนา มีประโยชน์บ้าง แต่ก็น่าหงุดหงิด

เครื่องมือการตีความสามารถช่วยได้โดยการชี้ให้เห็นว่า คุณลักษณะใดมีส่วนทำให้ เกิดคะแนนความผิดปกติมากที่สุด หรือโดยการให้คำอธิบายในลักษณะ “ต้องเปลี่ยนแปลงอะไรบ้างเพื่อให้สิ่งนี้ดูเป็นปกติ?” Interpretable Machine Learning เป็นคู่มือที่แข็งแกร่งและวิเคราะห์วิธีการทั่วไป (รวมถึงการระบุคุณลักษณะแบบ SHAP) และข้อจำกัดของวิธีการเหล่านั้น [5]

เป้าหมายไม่ใช่แค่การสร้างความสบายใจให้แก่ผู้มีส่วนได้ส่วนเสียเท่านั้น แต่ยังรวมถึงการคัดกรองปัญหาได้รวดเร็วยิ่งขึ้นและลดเหตุการณ์ซ้ำซ้อนด้วย


การปรับใช้ การเปลี่ยนแปลง และวงจรป้อนกลับ 🚀

แบบจำลองไม่ได้มีอยู่แค่ในสไลด์ แต่มีอยู่ในกระบวนการทำงาน

เรื่องราวทั่วไปในช่วง "เดือนแรกของการใช้งานจริง" คือ ตัวตรวจจับส่วนใหญ่จะแจ้งเตือนเกี่ยวกับการปรับใช้ งานแบบแบตช์ และข้อมูลที่หายไป... ซึ่งก็ ยังคงมีประโยชน์อยู่ เพราะมันบังคับให้คุณแยก "เหตุการณ์ด้านคุณภาพข้อมูล" ออกจาก "ความผิดปกติทางธุรกิจ"

ในทางปฏิบัติ:

  • ตรวจสอบการเบี่ยงเบน และฝึก/ปรับเทียบใหม่เมื่อพฤติกรรมเปลี่ยนแปลง [1]

  • บันทึกคะแนนอินพุต + เวอร์ชันโมเดล เพื่อให้คุณสามารถจำลองสาเหตุที่เกิดการแบ่งหน้าได้ [5]

  • รวบรวมข้อเสนอแนะจากมนุษย์ (การแจ้งเตือนที่เป็นประโยชน์เทียบกับการแจ้งเตือนที่ไม่จำเป็น) เพื่อปรับเกณฑ์และส่วนต่างๆ เมื่อเวลาผ่านไป [4]


มุมมองด้านความปลอดภัย: ระบบตรวจจับการบุกรุก (IDS) และการวิเคราะห์พฤติกรรม 🛡️

ทีมรักษาความปลอดภัยมักจะผสมผสานแนวคิดเรื่องความผิดปกติเข้ากับการตรวจจับตามกฎเกณฑ์: เกณฑ์พื้นฐานสำหรับ “พฤติกรรมปกติของโฮสต์” รวมถึงลายเซ็นและนโยบายสำหรับรูปแบบที่ไม่ดีที่รู้จัก NIST's SP 800-94 (ฉบับสุดท้าย) ยังคงเป็นกรอบอ้างอิงที่แพร่หลายสำหรับการพิจารณาระบบตรวจจับและป้องกันการบุกรุก นอกจากนี้ยังระบุว่าร่าง “Rev. 1” ปี 2012 ไม่เคยกลายเป็นฉบับสุดท้ายและถูกยกเลิกในภายหลัง [3]

คำแปล: ใช้แมชชีนเลิร์นนิงเมื่อเป็นประโยชน์ แต่อย่าทิ้งกฎเกณฑ์ที่น่าเบื่อไปเสียหมด เพราะมันได้ผลจริง ถึงแม้ว่ามันจะน่าเบื่อก็ตาม


ตารางเปรียบเทียบ: วิธีการยอดนิยมโดยสังเขป 📊

เครื่องมือ/วิธีการ เหมาะสำหรับ เหตุผลที่มันได้ผล (ในทางปฏิบัติ)
คะแนน z ที่แข็งแกร่ง / ปรับปรุงแล้ว ตัวชี้วัดที่เข้าใจง่าย สร้างฐานข้อมูลได้อย่างรวดเร็ว ผ่านด่านแรกที่แข็งแกร่งเมื่อคุณต้องการ "ดีพอ" และมีสัญญาณเตือนผิดพลาดน้อยลง [3]
ป่าโดดเดี่ยว ตาราง, คุณสมบัติผสม การใช้งานเริ่มต้นที่แข็งแกร่งและใช้งานกันอย่างแพร่หลายในทางปฏิบัติ [2]
SVM หนึ่งคลาส ภูมิภาค "ปกติ" ที่มีขนาดกะทัดรัด การตรวจจับความแปลกใหม่ตามขอบเขต การปรับแต่งมีความสำคัญมาก [2]
ปัจจัยค่าผิดปกติในท้องถิ่น ปกติแบบแมนิโฟลด์ ความแตกต่างของความหนาแน่นเมื่อเทียบกับเพื่อนบ้านจะตรวจจับความผิดปกติในพื้นที่ [1]
ข้อผิดพลาดในการสร้างใหม่ (เช่น รูปแบบออโตเอนโคเดอร์) รูปแบบมิติสูง ฝึกฝนตามปกติ ข้อผิดพลาดในการสร้างใหม่ขนาดใหญ่สามารถบ่งชี้ถึงความเบี่ยงเบนได้ [1]

เคล็ดลับ: เริ่มต้นด้วยฐานข้อมูลที่แข็งแกร่ง + วิธีการเรียนรู้แบบไม่ใช้การกำกับดูแลที่เรียบง่าย จากนั้นค่อยเพิ่มความซับซ้อนเฉพาะในส่วนที่คุ้มค่าเท่านั้น


คู่มือฉบับย่อ: จากศูนย์สู่การตั้งค่าการแจ้งเตือน 🧭

  1. กำหนดความหมายของคำว่า “แปลก” ในเชิงปฏิบัติ (ความล่าช้า ความเสี่ยงจากการฉ้อโกง การใช้งาน CPU มากเกินไป ความเสี่ยงด้านสินค้าคงคลัง)

  2. เริ่มต้นด้วยค่าพื้นฐาน (สถิติที่แข็งแกร่งหรือเกณฑ์การแบ่งส่วน) [3]

  3. เลือกโมเดลที่ไม่ต้องมีการกำกับดูแลหนึ่งโมเดล เป็นขั้นตอนแรก (Isolation Forest / LOF / One-Class SVM) [2]

  4. กำหนดเกณฑ์ด้วยงบประมาณการแจ้งเตือน และประเมินด้วยแนวคิดแบบ PR หากผลลัพธ์เชิงบวกเกิดขึ้นไม่บ่อย [4]

  5. เพิ่มคำอธิบาย + บันทึก เพื่อให้การแจ้งเตือนทุกครั้งสามารถทำซ้ำและแก้ไขข้อผิดพลาดได้ [5]

  6. ทดสอบย้อนกลับ จัดส่ง เรียนรู้ ปรับเทียบใหม่ - การเบี่ยงเบนเป็นเรื่องปกติ [1]

คุณทำเสร็จได้ภายในหนึ่งสัปดาห์แน่นอน...ถ้าหากว่าเวลาที่บันทึกไว้ไม่ได้ถูกยึดไว้ด้วยเทปกาวและความหวังลมๆ แล้งๆ 😅


ข้อสรุปสุดท้าย - ยาวเกินไป ฉันอ่านไม่จบ🧾

AI ตรวจจับความผิดปกติโดยการเรียนรู้ภาพ "ปกติ" ในทางปฏิบัติ ให้คะแนนความเบี่ยงเบน และระบุสิ่งที่เกินเกณฑ์ ระบบที่ดีที่สุดจะชนะไม่ใช่ด้วยความหวือหวา แต่ด้วยการ ปรับเทียบ : เส้นฐานที่แบ่งส่วน งบประมาณการแจ้งเตือน ผลลัพธ์ที่ตีความได้ และวงจรป้อนกลับที่เปลี่ยนสัญญาณเตือนที่ดังรบกวนให้เป็นสัญญาณที่เชื่อถือได้ [1]


เอกสารอ้างอิง

  1. Pimentel et al. (2014) - บทวิจารณ์เกี่ยวกับการตรวจจับความแปลกใหม่ (PDF, มหาวิทยาลัยออกซ์ฟอร์ด) อ่านเพิ่มเติม

  2. เอกสารประกอบการใช้งาน scikit-learn - การตรวจจับสิ่งแปลกใหม่และสิ่งผิดปกติ อ่านเพิ่มเติม

  3. คู่มืออิเล็กทรอนิกส์ NIST/SEMATECH - การตรวจจับค่าผิดปกติ อ่านเพิ่มเติม และ NIST CSRC - SP 800-94 (ฉบับสุดท้าย): คู่มือระบบตรวจจับและป้องกันการบุกรุก (IDPS) อ่านเพิ่มเติม

  4. Saito & Rehmsmeier (2015) - แผนภูมิความแม่นยำ-การเรียกคืน (Precision-Recall Plot) ให้ข้อมูลมากกว่าแผนภูมิ ROC (ROC Plot) เมื่อประเมินตัวจำแนกแบบไบนารีบนชุดข้อมูลที่ไม่สมดุล (PLOS ONE) อ่านเพิ่มเติม

  5. Molnar - การเรียนรู้ของเครื่องจักรที่ตีความได้ (หนังสือออนไลน์) อ่านเพิ่มเติม

ค้นหา AI รุ่นล่าสุดได้ที่ร้านค้าผู้ช่วย AI อย่างเป็นทางการ

เกี่ยวกับเรา

กลับไปที่บล็อก