זיהוי חריגות: Autoencoders, Isolation Forest, PyOD
ניטור השרת מראה CPU 85%, זיכרון 91% — האם זו תחילתה של מתקפה או עומס שיא רגיל? קלסיפייר לא יעזור: חריגות הן מעצם הגדרתן נדירות, מגוונות, וללא תיוג מוקדם. למידה מפוקחת דורשת דוגמאות לחריגות בסט האימון — ולכן היא נכשלת על מה שעדיין לא ראית. ללא גישה לא-מפוקחת, הזיהוי הופך לניחוש.
מדוע זיהוי חריגות דורש גישה לא-מפוקחת?
הבעיה המרכזית: אין תוויות וחוסר איזון קיצוני בין המחלקות. עסקאות הונאה מהוות 0.01–0.1% מהנפח הכולל, פגמי ייצור 0.5–3%. עם יחסים כאלה, קלסיפייר נאיבי של "הכל נורמלי" נותן דיוק של 99.9% אבל recall למחלקה החריגה קרוב לאפס. מודלים מפוקחים חסרי אונים.
שנית: "נורמליות" היא תמיד הקשרית. התחברות ב-3 לפנות בוקר עשויה להיות נורמלית למשתמש במשמרת לילה אך חשודה לעובד יום. רטט מיסב ב-2.3 מ"מ/שנייה תלוי במצב הפעולה ובגיל המכונה. לכן אנו מטמיעים הקשר באמצעות הנדסת מאפיינים וחלונות זמן.
שלישית: הערכת איכות ללא אמת-בסיס. אין סט בדיקה סטנדרטי — AUC‑ROC אפשרי רק אם קיימות כמה דוגמאות מתויגות. עבור נתונים לא-מתויגים לחלוטין, רק אימות מומחה תחום ומדדים עקיפים עובדים.
כיצד להבחין בין חריגה לרעש בזמן אמת?
עם ספים אדפטיביים וניטור רציף של סטטיסטיקות המודל. בחלק של מקרי הבוחן אנו מראים כיצד.
| שיטה | סוג נתונים | מהירות אימון | יישום אופייני |
|---|---|---|---|
| Isolation Forest | טבלאי, קטגורי | גבוהה | קו בסיס להנחות ראשוניות |
| Autoencoder | תמונות, סדרות זמן, לוגים | בינונית | נתונים לא מובנים |
| LSTM-AE | סדרות זמן רב-משתניות | נמוכה | טלמטריה תעשייתית |
| PyOD (אנסמבל) | טבלאי | גבוהה | השוואה מהירה של 40+ שיטות |
Isolation Forest הוא קו הבסיס הסטנדרטי לנתונים טבלאיים. הרעיון: חריגות מבודדות מהר יותר על ידי חלוקה אקראית של מרחב המאפיינים. עובד היטב ב-contamination, עמיד בקנה מידה של מאפיינים, אין צורך בנורמליזציה. יישום ב-sklearn.ensemble.IsolationForest.
טעות אופיינית: הגדרת contamination='auto' ללא הבנת הנתונים. מצב אוטומטי מניח סף של -0.5, שאולי לא תואם את שיעור החריגות בפועל. עדיף: להעריך את אחוז החריגות הצפוי דרך ידע תחומי ולהגדירו במפורש. אנו מבטיחים כוונון contamination למקרה שלך.
PyOD (Python Outlier Detection) היא ספרייה עם 40+ אלגוריתמים תחת API אחיד — OCSVM, LOF, COPOD, ECOD, DeepSVDD, AutoEncoder. שימושית להשוואה מהירה של שיטות על אותם נתונים.
Autoencoders הם השיטה המרכזית לנתונים לא מובנים (סדרות זמן, תמונות, לוגים). אמן את הרשת לשחזר נתונים נורמליים; חריגות מייצרות שגיאת שחזור גבוהה. סף החריגות הוא האחוזון ה-95 או ה-99 של השגיאה על סט אימות של נתונים נורמליים.
בעיה מעשית עם autoencoders: התאמת יתר על דפוסים "נורמליים" שעדיין נדירים. אם סט האימון מכיל אפילו כמה חריגות, המודל עלול ללמוד לשחזר אותן היטב. פתרון: ניקוי יסודי של נתוני האימון או שימוש ב-Variational Autoencoder (VAE), שמכליל טוב יותר.
LSTM‑AE לסדרות זמן לוכד תלות זמנית טוב יותר מאשר AE רגיל. יעיל במיוחד לסדרות זמן רב-משתניות (10+ חיישנים בו זמנית). יישום דרך PyTorch, אימון עם MSELoss על חלונות נעים.
בפירוט: זיהוי חריגות בסדרות זמן תעשייתיות
בעיה: חיישני רטט על 12 משאבות במפעל כימי, 6 חיישנים לכל משאבה, תדר 100 הרץ. יש להתריע על תקלה מתקרבת 4–24 שעות מראש.
ארכיטקטורת פתרון: נתונים גולמיים ← חילוץ מאפיינים (RMS, kurtosis, peak factor, אמפליטודות FFT בתדרי תהודה) ← נורמליזציה לפי חלון נע של 24 שעות ← LSTM‑AE ← שגיאת שחזור ← לוגיקת סף + התראות.
גודל חלון LSTM: 60 שניות (6000 נקודות ב-100 הרץ). חלון קטן מדי מפספס דפוסים איטיים, גדול מדי מאבד רגישות לשינויים מהירים.
סף חריגות: לא קבוע, אלא אדפטיבי. threshold = mean(errors_last_7d) + 3 * std(errors_last_7d). ככל שהמצב הנורמלי נסחף (בלאי מתוכנן), הסף מסתגל, ומונע אזעקות שווא.
תוצאה בפיילוט של 6 חודשים: זוהו 4 מתוך 5 מצבי טרום-תקלה אמיתיים (recall 0.8), עם 2 אזעקות שווא במשך 6 חודשים (precision 0.67). לפני היישום: 3 השבתות לא מתוכננות. אחרי היישום: חיסכון בעלויות אומת בדוח הפיילוט.
מהם המאפיינים הספציפיים של זיהוי הונאות?
לעסקאות פיננסיות יש כמה מאפיינים שמסבכים את הזיהוי:
- סחיפת מושגים (Concept drift): דפוסי הונאה משתנים מהר יותר מהתנהגות נורמלית. מודל שאומן לפני חצי שנה הופך למיושן.
- הסתגלות עוינת: רמאים מתקדמים מסתגלים — מה שהופך עסקאות לדומות לנורמליות.
- תלות זמנית: רצף של עסקאות נורמליות ואחריו העברה אחת חריגה הוא חריגת רצף, לא נקודה בודדת.
מחסנית מעשית לזיהוי הונאות: LightGBM עם דגימת יתר SMOTE לחלק המפוקח (מקרי הונאה ידועים) + Isolation Forest לחלק הלא-מפוקח (דפוסים חדשים). שני האותות משולבים באנסמבל; החלטה סופית דרך ספים מכווננים ל-FPR מקובל (0.1–1% מהעסקאות נשלחות לבדיקה ידנית).
כיצד להעריך איכות ללא תוויות?
כשאין אמת-בסיס, אנו מעריכים באמצעות:
- הזרקת חריגות סינתטיות: הוסף חריגות מלאכותיות (ספייק, שינוי רמה, חריגת נקודה) ובדוק אם המודל מזהה אותן.
- אימות מומחה: דגימה אקראית של חריגות top‑K ← סקירת מומחה ← precision.
- מדד עסקי: האם מספר התקריות שהוחמצו / אזעקות השווא ירד לאחר ההטמעה?
פרט טכני: הסף האדפטיבי מחושב כ-mean(errors) + k * std(errors) על חלון נע של 7 ימים. מקדם k מכוונן על סט אימות עם חריגות סינתטיות כדי להשיג FPR < 0.1%. כשהמאפיינים נסחפים, החלון זז אוטומטית.
תהליך
- ראיון עם מומחי תחום — להבין מה פירוש "נורמליות" ואילו תקריות התרחשו.
- EDA והכנת נתונים — ניקוי, יצירת מאפיינים, חלונות זמן.
- קו בסיס (Isolation Forest) — אימות מהיר על תקריות ידועות.
- בחירת מודל והתאמה אישית — Autoencoder / LSTM‑AE / אנסמבל.
- אימון, אימות עם חריגות סינתטיות.
- הטמעה לייצור — צינור על Kafka + Flink / Airflow, התראות ל-Telegram/Slack, ניטור סחיפה.
- תמיכה לאחר הטמעה — ניטור מדדי מודל, עדכון ספים.
מה כלול
- ביקורת נתונים ותהליכים קיימים
- פיתוח ואימון מודלים (Isolation Forest / Autoencoder / LSTM‑AE / אנסמבל)
- הגדרת ספים אדפטיביים והתראות
- לוח מחוונים לניטור חריגות (Grafana / Streamlit)
- כרטיס מודל ותיעוד צינור
- הכשרת הצוות שלך (2–3 מפגשים)
- תמיכת אחריות ל-3 חודשים
ציר זמן: מערכת בסיס עם שיטה אחת — 2–4 שבועות. מערכת ייצור עם ספים אדפטיביים, התראות וניטור — 2–5 חודשים. התמחור מחושב בנפרד עבור המקרה שלך.
לצוות שלנו ניסיון של 8+ שנים באנליטיקה תעשייתית ו-15+ פרויקטים מוצלחים בזיהוי חריגות לטלמטריה, פיננסים וניטור IT. קבל ייעוץ — נספר לך כיצד לפתור את הבעיה שלך. צור קשר כדי לדון בנתונים שלך ולקבל הצעת ארכיטקטורה ראשונית.







