การตรวจจับความผิดปกติด้วยโครงข่ายประสาทเทียม


12

ฉันมีชุดข้อมูลหลายมิติขนาดใหญ่ที่สร้างขึ้นในแต่ละวัน

อะไรจะเป็นวิธีที่ดีในการตรวจจับความผิดปกติใด ๆ เมื่อเปรียบเทียบกับวันก่อน? นี่เป็นปัญหาที่เหมาะสมที่สามารถจัดการกับโครงข่ายประสาทเทียมได้หรือไม่?

ข้อเสนอแนะใด ๆ ที่ชื่นชม

ข้อมูลเพิ่มเติม: ไม่มีตัวอย่างดังนั้นวิธีการควรตรวจสอบความผิดปกติของตัวเอง

คำตอบ:


12

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

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

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

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

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


4

ฉันคิดว่ามันขึ้นอยู่กับลักษณะของข้อมูลของคุณเป็นอย่างมาก (หมวดหมู่ / ต่อเนื่อง) ฉันจะเริ่มต้นด้วยวิธีการง่ายๆก่อน สิ่งเหล่านั้นอยู่ในใจฉัน:

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

หากสิ่งเหล่านี้ไม่เหมาะสมก็จะมีสเตชั่นสถิติ / ML ทั้งแขนงสำหรับการตรวจจับความผิดปกติ SVM t-SNE ป่าแยกPeer วิเคราะห์กลุ่ม , แบ่งการวิเคราะห์จุดอนุกรมเวลา (ที่คุณจะมองหาค่าผิดปกติแนวโน้มภายนอก)

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


0

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


0

วิธีง่ายๆในการทำเช่นนี้โดยใช้ Autoencoders (โดยไม่มี "denoising autoencoders" ที่จำเป็นต้องได้รับการฝึกอบรมด้วย "ข้อมูลที่เสียหาย") คือการฝึกอบรม autoencoder จากนั้นตรวจสอบ RMSE ของแถวจากอินพุตที่ไม่ได้ถอดรหัสได้ดี autoencoder มีเวลาในการสร้างใหม่ยาก) โดยคำจำกัดความว่าข้อมูลจะแสดงถึงความผิดปกติ (แน่นอนว่านี่จะเป็นกรณีของสิ่งต่าง ๆ เช่นการเพิ่มขึ้นของการรับส่งข้อมูล)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.