6 คะแนน โดย GN⁺ 2025-01-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อข้อมูลสตรีมมิงและ IoT เพิ่มขึ้น การตรวจจับความผิดปกติของอนุกรมเวลา จึงกลายเป็นโจทย์วิเคราะห์หลักในการแยกแยะความปกติและความผิดปกติในด้านต่าง ๆ เช่น ความมั่นคงปลอดภัยไซเบอร์ ตลาดการเงิน การบังคับใช้กฎหมาย และการแพทย์
  • เมื่อแนวทางตรวจจับความผิดปกติแบบดั้งเดิมที่เน้นสถิติผสมเข้ากับแนวทางแมชชีนเลิร์นนิงสมัยใหม่ จึงเกิดความจำเป็นต่อ ระบบการจัดหมวดหมู่ ที่สะท้อนลำดับเวลาและโครงสร้างของอนุกรมเวลา
  • ความผิดปกติอาจเกิดได้ไม่เพียงกับค่าจุดเดียว แต่ยังเกิดในบางส่วนของลำดับด้วย และการแยก ความผิดปกติแบบจุด·ความผิดปกติตามบริบท·ความผิดปกติแบบกลุ่ม จำเป็นต้องพิจารณาทั้งแพตเทิร์นรอบข้างและบริบทตามเวลา
  • วิธีการส่วนใหญ่เป็นไปตามไปป์ไลน์ การเตรียมข้อมูลล่วงหน้า → โมเดลตรวจจับ → การให้คะแนน → การประมวลผลภายหลัง โดยแปลงอนุกรมเวลาให้เป็นเมทริกซ์ด้วย sliding window ก่อนคำนวณคะแนนความผิดปกติ
  • รีวิวนี้จัดระเบียบวิธีการเป็น แบบอิงระยะทาง·แบบอิงความหนาแน่น·แบบอิงการพยากรณ์ เพื่อลดช่องว่างในการเปรียบเทียบระหว่างชุมชนนักวิจัยที่ใช้ชุดข้อมูล เบสไลน์ และตัวชี้วัดการประเมินต่างกัน

เหตุใดการตรวจจับความผิดปกติของอนุกรมเวลาจึงยาก

  • อนุกรมเวลาคือลำดับของค่าจริงที่บันทึกตามเวลา และเมื่อการเรียงลำดับไม่ได้ขึ้นกับเวลาแต่ขึ้นกับมิติอย่างมุม มวล หรือตำแหน่ง ก็อาจใช้คำว่า data series หรือ data sequence ด้วย
  • การวิเคราะห์อนุกรมเวลามีความจำเป็นในหลายสาขา เช่น ดาราศาสตร์ ชีววิทยา เศรษฐศาสตร์ วิทยาศาสตร์พลังงาน วิศวกรรมศาสตร์ วิทยาศาสตร์สิ่งแวดล้อม การแพทย์ ประสาทวิทยา และสังคมศาสตร์
  • ความซับซ้อนของกระบวนการสร้างข้อมูล ความไม่สมบูรณ์ของระบบวัด และปฏิสัมพันธ์กับผู้ไม่หวังดี สามารถก่อให้เกิด ปรากฏการณ์ผิดปกติ ในข้อมูลที่เก็บรวบรวมได้
  • เมื่อแอปพลิเคชัน IoT แพร่หลายมากขึ้นและสร้างอนุกรมเวลามากขึ้น ก็มีแนวโน้มว่าความผิดปกติที่ต้องค้นหาในคอลเลกชันอนุกรมเวลาก็จะเพิ่มขึ้นด้วย
  • ความผิดปกติหมายถึงจุดข้อมูลหรือกลุ่มของจุดข้อมูลที่ไม่สอดคล้องกับความเป็นปกติหรือพฤติกรรมที่คาดหวังจากข้อมูลที่สังเกตมาก่อนหน้า
    • ยังมีการใช้คำอย่าง outlier, novelty, exception, peculiarity, aberration, deviant, discord ร่วมด้วย
    • ขึ้นอยู่กับแอปพลิเคชัน ความผิดปกติอาจเป็น สัญญาณรบกวน ที่ควรลบหรือแก้ไข หรืออาจเป็น เหตุการณ์ที่น่าสนใจ สำหรับการวิเคราะห์ต่อ เช่น ความขัดข้องหรือการเปลี่ยนแปลงของพฤติกรรม

นิยามและประเภทของความผิดปกติ

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

    • ความผิดปกติแบบจุด (point anomaly): จุดข้อมูลเดี่ยวที่เบี่ยงเบนจากข้อมูลที่เหลืออย่างชัดเจน
    • ความผิดปกติตามบริบท (contextual anomaly): จุดข้อมูลที่อยู่ในช่วงคาดหวังของการแจกแจงโดยรวม แต่เมื่อดูในบริบทเฉพาะ เช่น หน้าต่างเวลาหนึ่ง กลับเบี่ยงเบนจากการแจกแจงที่คาดหวัง
    • ความผิดปกติแบบกลุ่ม (collective anomaly): ลำดับของจุดข้อมูลที่ไม่ทำซ้ำแพตเทิร์นที่พบเห็นโดยทั่วไป
    • ความผิดปกติแบบจุดและแบบตามบริบทจัดเป็น point-based anomaly ส่วนความผิดปกติแบบกลุ่มจัดเป็น sequence-based anomaly
    • การตรวจจับทั้งลำดับเป็นกรณีหนึ่งของการตรวจจับความผิดปกติของลำดับย่อยที่ใช้อนุกรมเวลาทั้งชุดเป็นเป้าหมายของการประเมิน และใช้ในสภาพแวดล้อมการคัดกรองเซนเซอร์เพื่อหาเซนเซอร์ที่ผิดปกติท่ามกลางเซนเซอร์ปกติ

มิติของข้อมูลและการตั้งค่าการเรียนรู้

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

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

ไปป์ไลน์การตรวจจับที่ใช้ร่วมกัน

  • อัลกอริทึมตรวจจับความผิดปกติของอนุกรมเวลาส่วนใหญ่มักมีลำดับ การเตรียมข้อมูลล่วงหน้า → วิธีตรวจจับ → การให้คะแนน → การประมวลผลภายหลัง
  • ในขั้นตอนการเตรียมข้อมูลล่วงหน้า แนวทางแบบอิงหน้าต่างที่แปลงอนุกรมเวลาเป็นเมทริกซ์ซึ่งประกอบด้วยแถวของชิ้นส่วน sliding window เป็นสิ่งที่พบได้ร่วมกัน
    • การเตรียมข้อมูลเพิ่มเติมจะแตกต่างกันไป เช่น การดึงคุณลักษณะเชิงสถิติ การฟิตโมเดลแมชชีนเลิร์นนิง หรือการสร้างโครงข่ายประสาท
  • ในขั้นตอนการตรวจจับ จะใช้วิธีอย่างการคำนวณระยะทาง การฟิตไฮเปอร์เพลนสำหรับการจำแนก หรือการเปรียบเทียบลำดับย่อยที่สร้างขึ้นกับลำดับย่อยต้นฉบับบนชุดข้อมูลที่ผ่านการประมวลผลแล้ว
  • ในขั้นตอนการให้คะแนน ผลการตรวจจับจะถูกแปลงเป็น คะแนนความผิดปกติ แบบจำนวนจริงที่แสดงระดับความผิดปกติของแต่ละลำดับย่อย
    • คะแนนนี้ใช้ในการอนุมานคะแนนของแต่ละจุดข้อมูลด้วย
    • อนุกรมเวลาของคะแนนผลลัพธ์จะมีความยาวเท่ากับอนุกรมเวลาต้นฉบับ
  • ในขั้นตอนการประมวลผลภายหลัง จะดึงจุดหรือช่วงที่ผิดปกติออกมาจากอนุกรมเวลาของคะแนนความผิดปกติ
    • โดยทั่วไปจะกำหนดค่า threshold และทำเครื่องหมายจุดที่มีคะแนนเกิน threshold ว่าเป็นความผิดปกติ

ระบบการจัดหมวดหมู่แบบเน้นกระบวนการ

  • วิธีตรวจจับความผิดปกติของอนุกรมเวลาแบ่งได้กว้าง ๆ เป็น แบบอิงระยะทาง, แบบอิงความหนาแน่น, และ แบบอิงการพยากรณ์
  • การจัดหมวดหมู่ในระดับที่สองไม่จำเป็นต้องแยกขาดจากกัน
    • โมเดลหนึ่งอาจบีบอัดข้อมูลอนุกรมเวลาไปพร้อมกับใช้กลยุทธ์การระบุแบบ discord ได้ด้วย
  • วิธีแบบอิงระยะทาง

    • วิธีแบบอิงระยะทางตรวจจับความผิดปกติโดยเปรียบเทียบค่าตัวเลขของอนุกรมเวลาดิบด้วยมาตรวัดระยะทาง
    • โดยทั่วไปจะนิยามระยะทาง d(A, B) ระหว่างลำดับสองชุดที่มีความยาวเท่ากัน และถ้าลำดับทั้งสองเหมือนกัน ระยะทางจะเป็น 0
    • ระยะทางที่ใช้กันอย่างแพร่หลายคือ Euclidean distance และ Z-normalized Euclidean distance
    • Dynamic Time Warping (DTW) มักถูกใช้เพื่อจัดการปัญหาความไม่ตรงกันของการจัดแนว
    • หมวดย่อยหลักคือแบบอิงความใกล้เคียง แบบอิงการจัดกลุ่ม และแบบอิง discord
      • แบบอิงความใกล้เคียง (proximity-based): ตัดสินว่าลำดับย่อยผิดปกติหรือไม่จากระดับความโดดเดี่ยวเมื่อเทียบกับเพื่อนบ้านที่ใกล้ที่สุด
      • แบบอิงการจัดกลุ่ม (clustering-based): ระดับที่ลำดับย่อยไม่เข้ากับคลัสเตอร์ที่เรียนรู้ไว้ ระยะห่างจากคลัสเตอร์ หรือขนาดของคลัสเตอร์ อาจถูกใช้ในการคำนวณคะแนนความผิดปกติ
      • แบบอิง discord (discord-based): ค้นหา discord ซึ่งเป็นลำดับย่อยที่มีระยะห่างจากเพื่อนบ้านที่ใกล้ที่สุดมากที่สุดในบรรดาลำดับย่อยทั้งหมดอย่างมีประสิทธิภาพ
  • วิธีแบบอิงความหนาแน่น

    • วิธีแบบอิงความหนาแน่นไม่ได้มองอนุกรมเวลาเป็นเพียงชุดตัวเลข แต่ประมวลผลบนตัวแทนข้อมูลที่สามารถวัดความหนาแน่นในพื้นที่ของจุดหรือลำดับย่อยได้
    • ตัวแทนข้อมูลมีได้หลากหลาย เช่น กราฟ ต้นไม้ ฮิสโตแกรม หรือกฎไวยากรณ์ที่อนุมานได้
    • หมวดย่อยหลักคือแบบอิงการแจกแจง แบบอิงกราฟ แบบอิงต้นไม้ และแบบอิงการเข้ารหัส
      • แบบอิงการแจกแจง (distribution-based): สร้างการแจกแจงจากคุณลักษณะเชิงสถิติของจุดหรือลำดับย่อย แล้วกู้คืนโมเดลทางสถิติที่เกี่ยวข้องผ่านการแจกแจงคุณลักษณะของลำดับย่อยปกติเพื่ออนุมานความผิดปกติ
      • แบบอิงกราฟ (graph-based): แทนอนุกรมเวลาและลำดับย่อยเป็นกราฟ แล้วใช้คุณสมบัติของกราฟ เช่น น้ำหนักของโหนด·เอดจ์ หรือดีกรีของโหนด เพื่อตรวจจับความผิดปกติ
      • แบบอิงต้นไม้ (tree-based): แบ่งจุดหรือลำดับย่อยด้วยต้นไม้ และใช้สถิติกับคุณลักษณะอย่างความลึกของต้นไม้เพื่อตัดสินความผิดปกติ
      • แบบอิงการเข้ารหัส (encoding-based): ตีความอนุกรมเวลาเป็นลำดับของสัญลักษณ์ไม่ต่อเนื่องหรือสถานะในบริบทหนึ่ง แล้วใช้กฎไวยากรณ์ของสัญลักษณ์ที่สกัดออกมาเพื่อตรวจจับความผิดปกติ
  • วิธีแบบอิงการพยากรณ์

    • วิธีแบบอิงการพยากรณ์ตรวจจับความผิดปกติโดยพยากรณ์พฤติกรรมปกติที่คาดหวังจากอนุกรมเวลาหรือจากลำดับย่อยที่ใช้ฝึก
    • อาศัยสมมติฐานว่าข้อมูลปกติพยากรณ์ได้ง่าย ส่วนความผิดปกติคาดไม่ถึงจึงมีข้อผิดพลาดในการพยากรณ์สูง
    • สมมติฐานนี้ใช้ได้เมื่อชุดฝึกไม่มีความผิดปกติหรือมีน้อยมาก
    • วิธีแบบอิงการพยากรณ์มักเหมาะกับ การตั้งค่าแบบกึ่งมีผู้สอน มากกว่า
    • หมวดย่อยหลักคือแบบอิงการพยากรณ์ล่วงหน้าและแบบอิงการสร้างกลับ
      • แบบอิงการพยากรณ์ล่วงหน้า (forecasting-based): รับจุดหรือลำดับย่อยก่อนเวลาหนึ่งเป็นอินพุตเพื่อพยากรณ์ค่าถัดไปหรือลำดับย่อยถัดไป แล้วใช้ส่วนต่างระหว่างค่าจริงกับค่าที่พยากรณ์เป็นคะแนนความผิดปกติ
      • แบบอิงการสร้างกลับ (reconstruction-based): บีบอัดอนุกรมเวลาหรือลำดับย่อยอินพุตลงสู่ latent space ที่เล็กกว่าแล้วสร้างกลับขึ้นมาใหม่ จากนั้นใช้ความต่างระหว่างอินพุตกับผลที่สร้างกลับเป็นคะแนนความผิดปกติ

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

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

1 ความคิดเห็น

 
GN⁺ 2025-01-07
ความคิดเห็นบน Hacker News
  • UCR Matrix Profile ก็ควรรู้จักไว้เช่นกัน
    Matrix Profile เป็นหนึ่งในเครื่องมือที่ถูกประเมินค่าต่ำไปในการวิเคราะห์อนุกรมเวลา และมีประสิทธิภาพสูงมาก ไม่ต้องคอยปรับขนาดหน้าต่างและค่า threshold มากเหมือนเทคนิคดั้งเดิม แต่ก็เหมาะมากสำหรับการหา motif และความผิดปกติ อีกทั้งยังทำงานได้แข็งแกร่งในหลายสาขา เช่น ข้อมูลเซนเซอร์การผลิต การวิเคราะห์คลื่นไฟฟ้าหัวใจ และการตรวจจับแผ่นดินไหว
    https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
    • คำพูดที่ว่าไม่ต้องปรับขนาดหน้าต่างนั้นไม่ถูกต้อง Matrix Profile พึ่งพาขนาดหน้าต่างอย่างมาก
    • MP เป็นหนึ่งในวิธีแบบตัวแปรเดียวที่ดีที่สุด และจริง ๆ ก็มีการพูดถึงไว้ในบทความแล้ว
    • เนื้อหาโปรโมตน่าสนใจกว่าสิ่งที่แชร์มาเสียอีก แต่เว็บไซต์ดูไม่ค่อยดีเท่าไร
      อันนี้ซึ่งทำโดยทีมวิจัยเดียวกันเป็นสื่อแนะนำที่ดีกว่า
      https://matrixprofile.org/
    • กล่าวถึงในหัวข้อ 6.2.1
  • ใช้ offset function ของ Prometheus เพื่อสร้างค่าเฉลี่ยของช่วงหลายสัปดาห์ก่อนหน้าเป็น recording rule
    การใช้งานระบบมี seasonality รายสัปดาห์ค่อนข้างชัดเจน จึงนำค่าของ metric เดียวกันเมื่อ 1 สัปดาห์, 2 สัปดาห์, 3 สัปดาห์ และ 4 สัปดาห์ก่อนมาเฉลี่ย แล้วเปรียบเทียบกับค่าปัจจุบัน วิธีนี้ช่วยให้ตั้งค่า threshold สำหรับการแจ้งเตือนได้แบบไดนามิกตามกลางวัน/กลางคืน และวันธรรมดา/วันหยุดสุดสัปดาห์ ทำให้เปรียบเทียบกับค่าเฉลี่ยตามวันในสัปดาห์หรือช่วงเวลาได้
    ฝั่ง GitLab มีบทความอธิบายแนวทางนี้ละเอียดกว่านี้
    https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
    ถ้ามีวันหยุดนักขัตฤกษ์คั่นอยู่จะซับซ้อนขึ้นเล็กน้อย แต่สามารถเขียนให้ Prometheus ทำได้จริง
    https://promcon.io/2019-munich/slides/improved-alerting-with...
    • ถ้าแผนภูมิใน Grafana ไม่แน่นเกินไป ก็แทบจะเพิ่มเส้น offset 7 วัน ไว้เสมอ มีประโยชน์มากในการตัดสินว่าอะไรปกติหรือไม่ปกติ
    • GitLab ยังมีสิ่งนี้ด้วย: https://gitlab.com/gitlab-com/gl-infra/tamland
      ไม่ได้เชี่ยวชาญด้านนี้มากนัก แต่ดูเหมือนว่าการพยากรณ์กับการตรวจจับความผิดปกติจะเกี่ยวข้องกันพอสมควร อาจเข้าใจผิดก็ได้
  • บทความนี้ยังไม่สะท้อนงานในช่วงประมาณ 1 ปีล่าสุด
    ตัวอย่างเช่น โมเดลอนุกรมเวลาอย่าง Granite TS ที่อดีตเพื่อนร่วมงานของผมทำขึ้นนั้น ทำงานได้ค่อนข้างดีจากที่ทดลองใช้
    สิ่งที่ทำให้มุมมองต่อโมเดลตรวจจับความผิดปกติเปลี่ยนไปคือ สุดท้ายแล้วมันก็คือการทำนาย N ขั้นถัดไป แล้วดูว่าค่าที่วัดได้จริง “ต่างจากที่คาดไว้มากพอหรือไม่” เรื่องนี้วาดอธิบายบนไวท์บอร์ดสำหรับสัญญาณเดี่ยวได้ง่าย แต่สิ่งที่น่าสนใจมากคือมันใช้ได้กับข้อมูลหลายตัวแปรด้วย
    [1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
    • ผมก็มีช่วงที่เข้าใจคล้ายกันตอนอ่านเรื่อง Isolation Forest สำหรับการตรวจจับ outlier ถ้าค่าที่พยากรณ์ได้ต่างจากค่าเฉลี่ย ก็แปลว่ามีบางอย่างผิดเพี้ยนไป
      [0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
    • อยากรู้ว่าก่อนจะเข้าใจแบบนั้น คุณมองเรื่องนี้อย่างไร :D
    • อยากทราบว่าบริบทแบบไหนที่ต้องใช้ zero-shot model กับอนุกรมเวลา เพราะผมยังไม่เคยเจอสถานการณ์ที่ไม่มีข้อมูลย้อนหลังให้ฟิตโมเดลเลย
  • ในวงการ water tech ระยะเริ่มต้น มีอุปกรณ์ IoT สำหรับติดตามการไหลของน้ำ
    อุปกรณ์เหล่านี้สามารถตรวจจับการรั่วไหลและประเมินการใช้น้ำในระดับอุปกรณ์ได้ การตรวจจับการรั่วไหลก็คือการระบุความผิดปกติของอนุกรมเวลา และการตรวจจับความผิดปกติแบบอิงการแจกแจงที่กล่าวถึงในบทความก็เกี่ยวข้องกับเรื่องนี้ ที่น่าสนใจคือในที่อยู่อาศัยอาจต้องใช้หลายการแจกแจง เพราะอุณหภูมิท่อเปลี่ยนไประหว่างฤดูร้อนและฤดูหนาว
  • ช่วงหลังผมพยายามสร้าง การตรวจจับความผิดปกติ ขึ้นใช้เองในโปรเจกต์ติดตามประสิทธิภาพ และแปลกใจที่แทบไม่มีโซลูชันโอเพนซอร์ส/เชิงพาณิชย์สำเร็จรูปที่ไม่พื้นฐานเกินไปหรือไม่ซับซ้อนเกินไปเลย พื้นที่นี้ยังมีโอกาสให้บุกเบิกอีกมาก
    • มีข้อมูลเกี่ยวกับการทำ anomaly detection ด้วยสแตก Prometheus และ Grafana อยู่พอสมควร: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to.... แต่ก็อาจเข้าข่าย “ซับซ้อนเกินไป” ตามที่ว่า
    • เหตุผลที่ไม่มีโซลูชันสำเร็จรูป เป็นเพราะปัญหานี้ยังเป็น ปัญหาที่แก้ไม่ตก ยังไม่มีแนวทางที่ใช้ได้กว้าง ๆ อย่างแท้จริง
    • ตอนนี้ยังทดลองอันนี้อยู่: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to... และมี GitHub repository ด้วย
      เท่าที่ลองมาจนถึงตอนนี้ก็ไม่ได้แย่มาก แต่มีข้อบกพร่องค่อนข้างใหญ่หลายอย่าง
    • ตอนฝึกงาน ผมต้องใช้ การตรวจจับความผิดปกติของอนุกรมเวลา เพื่อติดตามว่าเมื่อไรเครื่องจักร/เซิร์ฟเวอร์เริ่มเสื่อมประสิทธิภาพหรือเกิด downtime ที่ไม่คาดคิด
      คิดว่าคงใช้ไลบรารี C# ของ Microsoft ได้ แต่กลับแย่มากจริง ๆ คงดีถ้ามีใครสักคนมีทั้งเวลาและความตั้งใจจะทำไลบรารีที่ดีจริง ๆ ขึ้นมา
    • เห็นด้วย บริษัทของเราสุดท้ายก็ต้องสร้างระบบของตัวเอง
      พื้นที่นี้เหมาะมากสำหรับ SaaS หรือเครื่องมือโอเพนซอร์สที่ปรับแต่งได้ พร้อมระบบรายงานขั้นสูงและกลไกการแจ้งเตือน Datadog ก็มีผลิตภัณฑ์ที่ดีเหมือนกัน แต่ราคาค่อนข้างแพง
  • สตาร์ทอัปของเราทำเรื่อง การตรวจจับความผิดปกติของอนุกรมเวลาในเครื่องจักรอุตสาหกรรม

โดยเฉพาะอย่างยิ่งกำลังทำให้มันทำงานแบบออฟไลน์เป็นค่าเริ่มต้น โดยผสาน AI เข้ากับอุปกรณ์ และไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ของบุคคลที่สามหรือแม้แต่เซิร์ฟเวอร์ของเราเอง เพราะมองว่าการต้องพลาดโอกาสกับลูกค้าจำนวนมากเพียงเพราะไม่สามารถเชื่อมต่อออนไลน์ได้นั้นเป็นเรื่องใหญ่ หากคุณกำลังมองหาโซลูชันมอนิเตอร์เครื่องจักรอุตสาหกรรม หรือสนใจซอฟต์แวร์อุตสาหกรรมที่อ่อนไหวด้านความปลอดภัย อยากชวนมาคุยกัน ขณะนี้กำลังพัฒนา data historian อยู่ด้วย: www.sentineldevices.com

  • ผม/ฉันผูกพันกับสาขานี้มาก เกือบ 10 ปีก่อนตอนเรียนปริญญาโทก็เคยทำหัวข้อที่ใกล้เคียงกันคือ การพยากรณ์ความขัดข้องแบบออนไลน์: https://estudogeral.uc.pt/handle/10316/99218
    ผม/ฉันสร้างระบบที่ตรวจจับและตอบสนองก่อนจะเกิดข้อยกเว้น ตัวอย่างเช่นคาดหวังว่าการชะลออัตราคำขอลงล่วงหน้าก่อนที่ฐานข้อมูลจะเต็ม จะดีกว่าปล่อยให้เกิดข้อยกเว้นขึ้นมาจริง ๆ
    ตอนนั้นรู้สึกว่ายังมีงานให้ทำในสาขานี้อีกมาก และก็เสียดายนิดหน่อยที่ไม่ได้กลับมาทำต่อ
  • ประเด็นสำคัญคือความผิดปกติเกิดจากการผสมกันของความซับซ้อนในกระบวนการสร้างข้อมูล ความไม่สมบูรณ์ของระบบการวัด และปฏิสัมพันธ์กับผู้ไม่หวังดี ซึ่งในหลายกรณีก็รับมือได้ยาก
    อีกปัญหาหลักหนึ่งคือการนิยามอย่างเข้มงวดและแม่นยำว่าอะไรคือ ความผิดปกติ และอะไรไม่ใช่
  • การตรวจจับความผิดปกติ สามารถสร้างมูลค่าเพิ่มได้กับแทบทุกอุตสาหกรรม
    ถึงจะไม่ใช่ผลิตภัณฑ์หลัก แต่ก็มักช่วยเรื่องการเพิ่มประสิทธิภาพการปฏิบัติงานได้ ในภาคการผลิต สามารถใช้คอมพิวเตอร์วิทัศน์คัดแยกชิ้นงานผิดปกติบนสายการประกอบได้ และในงานปฏิบัติการก็ใช้ accelerometer/เซ็นเซอร์อุณหภูมิร่วมกับการวิเคราะห์ความถี่เพื่อตรวจจับสัญญาณความขัดข้องสำหรับการบำรุงรักษาเชิงพยากรณ์ได้ ส่วนงานขายก็สามารถใช้การวิเคราะห์อนุกรมเวลาของตัวเลขหรือคำร้องขอการสนับสนุน เพื่อดูสัญญาณขึ้น/ลงของกระแสเงินสด ความพึงพอใจของลูกค้า ฯลฯ ได้
  • ลองไปดู Eamonn Keogh ได้ เขาทำงานที่น่าสนใจไว้มากในด้านการตรวจจับความผิดปกติของอนุกรมเวลา
    • ผม/ฉันเคยดู Google Tech Talk ของเขา แล้วก็ยิ่งชื่นชมงานของทีมวิจัยนั้นมาก แม้ว่าตัวเองจะไม่ได้ต้องใช้การวิเคราะห์อนุกรมเวลาก็ตาม
      https://youtu.be/vzPgHF7gcUQ?si=rKQvOjK_qjiSSvKE