تشخیص ناهنجاری، قهرمان آرام عملیات داده است - آژیر دودی که قبل از آتش گرفتن چیزها زمزمه میکند.
به عبارت ساده: هوش مصنوعی یاد میگیرد که «تقریباً عادی» چگونه به نظر میرسد، به رویدادهای جدید امتیاز ناهنجاری و سپس بر اساس یک آستانه . مشکل در نحوه تعریف «تقریباً عادی» توسط شما است، زمانی که دادههای شما فصلی، نامرتب، متغیر و گاهی اوقات به شما دروغ میگویند. [1]
مقالاتی که شاید بعد از این مطلب دوست داشته باشید بخوانید:
🔗 چرا هوش مصنوعی میتواند برای جامعه مضر باشد؟
خطرات اخلاقی، اقتصادی و اجتماعی ناشی از پذیرش گسترده هوش مصنوعی را بررسی میکند.
🔗 سیستمهای هوش مصنوعی واقعاً چقدر آب مصرف میکنند؟
خنکسازی مراکز داده، نیازهای آموزشی و تأثیر آب بر محیط زیست را توضیح میدهد.
🔗 مجموعه داده هوش مصنوعی چیست و چرا اهمیت دارد؟
مجموعه دادهها، برچسبگذاری، منابع و نقش آنها در عملکرد مدل را تعریف میکند.
🔗 چگونه هوش مصنوعی روندها را از دادههای پیچیده پیشبینی میکند؟
تشخیص الگو، مدلهای یادگیری ماشین و کاربردهای پیشبینی در دنیای واقعی را پوشش میدهد.
«هوش مصنوعی چگونه ناهنجاریها را تشخیص میدهد؟»
یک پاسخ خوب باید کاری بیش از فهرست کردن الگوریتمها انجام دهد. باید سازوکارها و چگونگی بهکارگیری آنها بر روی دادههای واقعی و ناقص را توضیح دهد. بهترین توضیحات:
-
اجزای اصلی را نشان دهید: ویژگیها ، خطوط مبنا ، امتیازها و آستانهها . [1]
-
خانوادههای عملی را با هم مقایسه کنید: فاصله، تراکم، تککلاسی، انزوا، احتمالاتی، بازسازی. [1]
-
مدیریت تغییرات سری زمانی: «عادی» به زمان روز، روز هفته، انتشارها و تعطیلات بستگی دارد. [1]
-
با ارزیابی مانند یک محدودیت واقعی رفتار کنید: هشدارهای کاذب فقط آزاردهنده نیستند - آنها اعتماد را از بین میبرند. [4]
-
قابلیت تفسیر + دخالت انسان در حلقه را لحاظ کنید، زیرا «عجیب است» دلیل اصلی نیست. [5]
مکانیکهای اصلی: خطوط پایه، امتیازات، آستانهها 🧠
بیشتر سیستمهای ناهنجاری - چه فانتزی و چه غیر فانتزی - به سه بخش متحرک خلاصه میشوند:
۱) بازنمایی (معروف به: آنچه مدل میبیند )
سیگنالهای خام به ندرت کافی هستند. شما یا ویژگیها (آمارهای غلتان، نسبتها، تأخیرها، دلتاهای فصلی) را مهندسی میکنید یا نمایشها (تعبیهها، زیرفضاها، بازسازیها) را یاد میگیرید. [1]
۲) امتیازدهی (معروف به: این چقدر «عجیب» است؟)
ایدههای رایج امتیازدهی عبارتند از:
-
مبتنی بر فاصله : دور از همسایگان = مشکوک. [1]
-
مبتنی بر چگالی : چگالی محلی پایین = مشکوک (LOF نمونه بارز آن است). [1]
-
مرزهای یک طبقه : «عادی» را یاد بگیرید، آنچه را که خارج از آن قرار میگیرد، علامتگذاری کنید. [1]
-
احتمالی : احتمال کم تحت یک مدل برازش شده = مشکوک. [1]
-
خطای بازسازی : اگر مدلی که روی نرمال آموزش دیده نتواند آن را بازسازی کند، احتمالاً خاموش است. [1]
۳) آستانهگذاری (معروف به: چه زمانی زنگ را به صدا درآوریم)
آستانهها میتوانند ثابت، مبتنی بر چندک، برای هر بخش یا حساس به هزینه باشند - اما باید بر اساس بودجههای هشدار و هزینههای پاییندستی کالیبره
یک نکته بسیار کاربردی: آشکارسازهای دادههای پرت/جدید در scikit-learn نمرات خام و سپس یک آستانه (که اغلب از طریق یک فرض به سبک آلودگی کنترل میشود) اعمال میکنند تا نمرات را به تصمیمات درونزا/پرت تبدیل کنند. [2]
تعاریف سریع که از درد بعدی جلوگیری میکنند 🧯
دو تمایز که شما را از اشتباهات ظریف نجات میدهد:
-
تشخیص دادههای پرت : دادههای آموزشی شما ممکن است از قبل شامل دادههای پرت باشند؛ الگوریتم در هر صورت سعی میکند «ناحیه نرمال متراکم» را مدلسازی کند.
-
تشخیص تازگی : دادههای آموزشی تمیز فرض میشوند؛ شما قضاوت میکنید که آیا جدید با الگوی نرمال آموختهشده مطابقت دارند یا خیر. [2]
همچنین: تشخیص موارد جدید اغلب به صورت طبقهبندی تککلاسی - مدلسازی موارد عادی به این دلیل که نمونههای غیرعادی کمیاب یا تعریفنشده هستند. [1]

اسبهای کاری بدون نظارت که واقعاً از آنها استفاده خواهید کرد 🧰
وقتی برچسبها کمیاب هستند (که اساساً همیشه همینطور است)، اینها ابزارهایی هستند که در خطوط تولید واقعی ظاهر میشوند:
-
جنگل ایزوله : یک پیشفرض قوی در بسیاری از موارد جدولی، که به طور گسترده در عمل استفاده میشود و در scikit-learn پیادهسازی شده است. [2]
-
ماشین بردار پشتیبان تککلاسه : میتواند مؤثر باشد اما به تنظیم و فرضیات حساس است؛ scikit-learn صراحتاً نیاز به تنظیم دقیق ابرپارامتر را خاطرنشان میکند. [2]
-
عامل دادههای پرت محلی (LOF) : امتیازدهی کلاسیک مبتنی بر چگالی؛ وقتی «عادی» یک توده مرتب و منظم نباشد، عالی است. [1]
نکتهی کاربردی که تیمها هر هفته دوباره کشف میکنند: LOF بسته به اینکه آیا تشخیص دادههای پرت را روی مجموعهی آموزشی انجام میدهید یا تشخیص دادههای جدید را روی دادههای جدید، رفتار متفاوتی دارد - scikit-learn حتی برای novelty=True . [2]
یک خط مبنای قوی که حتی در شرایط بد دادهها هم کار میکند 🪓
اگر در حالت «ما فقط به چیزی نیاز داریم که ما را به ورطه فراموشی نکشاند» هستید، آمار قوی دست کم گرفته میشود.
نمره z اصلاحشده میانه و MAD (انحراف مطلق میانه) استفاده میکند . کتابچه راهنمای EDA موسسه ملی استاندارد و فناوری (NIST) فرم نمره z اصلاحشده را مستند کرده و یک قاعده سرانگشتی رایج «نقطه پرت بالقوه» را در مقدار مطلق بالای 3.5 . [3]
این روش هر مشکل ناهنجاری را حل نمیکند - اما اغلب یک خط دفاعی قوی است، به خصوص برای معیارهای نویزی و نظارت در مراحل اولیه. [3]
واقعیت سری زمانی: «عادی» به زمان بستگی دارد ⏱️📈
ناهنجاریهای سری زمانی پیچیده هستند زیرا زمینه، کل نکته است: ممکن است انتظار یک جهش در ظهر وجود داشته باشد؛ همان جهش در ساعت 3 بامداد ممکن است به معنای آتشسوزی باشد. بنابراین، بسیاری از سیستمهای کاربردی، نرمال بودن را با استفاده از ویژگیهای آگاه از زمان (تاخیرها، دلتاهای فصلی، پنجرههای غلتان) مدلسازی میکنند و انحرافات را نسبت به الگوی مورد انتظار امتیاز میدهند. [1]
اگر فقط یک قانون را به خاطر دارید: خط مبنای خود (ساعت/روز/منطقه/رده سرویس) را بخشبندی کنید. [1]
ارزیابی: تله رویداد نادر 🧪
تشخیص ناهنجاری اغلب مانند «سوزنی در انبار کاه» است، که ارزیابی را عجیب میکند:
-
منحنیهای ROC میتوانند وقتی موارد مثبت نادر هستند، به طرز فریبندهای خوب به نظر برسند.
-
نماهای دقت-فراخوان اغلب برای تنظیمات نامتعادل آموزندهتر هستند زیرا بر عملکرد در کلاس مثبت تمرکز دارند. [4]
-
بودجه هشدار نیز نیاز دارید : انسانها در واقع میتوانند چند هشدار در ساعت را بدون عصبانیت و عصبانیت بررسی کنند؟ [4]
بک تست در پنجرههای متغیر به شما کمک میکند تا حالت شکست کلاسیک را تشخیص دهید: «روی توزیع ماه گذشته به زیبایی کار میکند...» [1]
تفسیرپذیری و علت ریشهای: کارتان را نشان دهید 🪄
هشدار دادن بدون توضیح مثل این است که یک کارت پستال مرموز دریافت کنید. مفید، اما ناامیدکننده.
ابزارهای تفسیرپذیری میتوانند با اشاره به اینکه کدام ویژگیها بیشترین سهم را در امتیاز ناهنجاری داشتهاند، یا با ارائه توضیحات سبکی در مورد «چه چیزی باید تغییر کند تا این حالت طبیعی به نظر برسد؟»، کمک کنند. یادگیری ماشین تفسیرپذیر» یک راهنمای جامع و انتقادی برای روشهای رایج (از جمله انتسابهای سبک SHAP) و محدودیتهای آنها است. [5]
هدف فقط آسایش ذینفعان نیست - بلکه اولویتبندی سریعتر و کاهش حوادث تکراری است.
حلقههای استقرار، رانش و بازخورد 🚀
مدلها در اسلایدها زندگی نمیکنند. آنها در خطوط لوله زندگی میکنند.
یک داستان رایج در مورد «ماه اول تولید»: آشکارساز اغلب موارد استقرار، کارهای دستهای و دادههای از دست رفته را علامتگذاری میکند... که هنوز هم مفید زیرا شما را مجبور میکند «حوادث مربوط به کیفیت دادهها» را از «ناهنجاریهای تجاری» جدا کنید.
در عمل:
-
رانش را زیر نظر داشته باشید و با تغییر رفتار، آن را دوباره آموزش دهید/کالیبره کنید. [1]
-
ورودیهای امتیاز + نسخه مدل را ثبت کنید تا بتوانید دلیل صفحهبندی چیزی را بازتولید کنید. [5]
-
بازخورد انسانی (هشدارهای مفید در مقابل هشدارهای پر سر و صدا) را برای تنظیم آستانهها و بخشها در طول زمان ثبت کنید. [4]
زاویه امنیتی: IDS و تجزیه و تحلیل رفتاری 🛡️
تیمهای امنیتی اغلب ایدههای ناهنجاری را با تشخیص مبتنی بر قانون ترکیب میکنند: خطوط پایه برای «رفتار عادی میزبان»، به علاوه امضاها و خطمشیها برای الگوهای بد شناخته شده. SP 800-94 (نهایی) NIST همچنان به عنوان چارچوبی برای ملاحظات سیستم تشخیص و پیشگیری از نفوذ به طور گسترده مورد استناد قرار میگیرد؛ همچنین اشاره میکند که پیشنویس «ویرایش ۱» سال ۲۰۱۲ هرگز نهایی نشد و بعداً کنار گذاشته شد. [3]
ترجمه: از یادگیری ماشین در جایی که کمک میکند استفاده کنید، اما قوانین خستهکننده را دور نیندازید - آنها خستهکننده هستند چون جواب میدهند.
جدول مقایسه: روشهای محبوب در یک نگاه 📊
| ابزار / روش | بهترین برای | چرا کار میکند (در عمل) |
|---|---|---|
| نمرات z قوی/اصلاحشده | معیارهای ساده، خطوط مبنای سریع | اولین پاس قوی وقتی که به «به اندازه کافی خوب» و هشدارهای کاذب کمتری نیاز دارید. [3] |
| جنگل ایزوله | ویژگیهای جدولی، ترکیبی | پیادهسازی پیشفرض مستحکم و بهطور گسترده در عمل استفاده میشود. [2] |
| ماشین بردار پشتیبان تک کلاسه | مناطق «عادی» فشرده | تشخیص نوآوری مبتنی بر مرز؛ تنظیم بسیار مهم است. [2] |
| عامل پرت محلی | نرمالهای منیفولد مانند | تضاد چگالی در مقابل همسایگان، عجایب محلی را آشکار میکند. [1] |
| خطای بازسازی (مثلاً، به سبک رمزگذار خودکار) | الگوهای با ابعاد بالا | آموزش روی حالت عادی؛ خطاهای بزرگ بازسازی میتوانند انحرافات را نشان دهند. [1] |
کد تقلب: با خطوط پایه قوی + یک روش بدون نظارت خستهکننده شروع کنید، سپس پیچیدگی را فقط در جایی که توجیهپذیر است اضافه کنید.
یک کتابچه راهنمای کوچک: از صفر تا هشدارها 🧭
-
«عجیب» را از نظر عملیاتی تعریف کنید (تاخیر، خطر کلاهبرداری، کاهش سرعت پردازنده، خطر موجودی).
-
با یک خط پایه (آمار قوی یا آستانههای بخشبندیشده) شروع کنید. [3]
-
یک مدل بدون نظارت را به عنوان اولین مرحله انتخاب کنید (جنگل ایزوله / LOF / SVM تک کلاسه). [2]
-
آستانهها را با بودجه هشدار تعیین کنید و اگر موارد مثبت نادر هستند، با تفکر به سبک روابط عمومی ارزیابی کنید. [4]
-
توضیحات + گزارشگیری را اضافه کنید تا هر هشدار قابل تکرار و اشکالزدایی باشد. [5]
-
آزمون مجدد، ارسال، یادگیری، کالیبراسیون مجدد - انحراف طبیعی است. [1]
شما قطعاً میتوانید این کار را در عرض یک هفته انجام دهید... با فرض اینکه مهرهای زمانی شما با نوار چسب و امید به هم متصل نشده باشند. 😅
سخنان پایانی - خیلی طولانی بود، من آن را نخواندم🧾
هوش مصنوعی با یادگیری یک تصویر عملی از «عادی»، امتیازدهی به انحرافات و علامتگذاری آنچه از آستانه عبور میکند، ناهنجاریها را تشخیص میدهد. بهترین سیستمها نه با زرق و برق، بلکه با کالیبره شدن : خطوط پایه تقسیمبندی شده، بودجههای هشدار، خروجیهای قابل تفسیر و یک حلقه بازخورد که آلارمهای پر سر و صدا را به یک سیگنال قابل اعتماد تبدیل میکند. [1]
منابع
-
پیمنتل و همکاران (۲۰۱۴) - مروری بر تشخیص نوآوری (PDF، دانشگاه آکسفورد) ادامه مطلب
-
مستندات scikit-learn - تشخیص موارد جدید و دادههای پرت بیشتر بخوانید
-
کتابچه راهنمای الکترونیکی NIST/SEMATECH - تشخیص دادههای پرت ادامه مطلب و NIST CSRC - SP 800-94 (نهایی): راهنمای سیستمهای تشخیص و پیشگیری از نفوذ (IDPS) ادامه مطلب
-
سایتو و رهمسمیر (۲۰۱۵) - نمودار دقت-فراخوانی هنگام ارزیابی طبقهبندیکنندههای دودویی روی مجموعه دادههای نامتوازن، آموزندهتر از نمودار ROC است (PLOS ONE) ادامه مطلب
-
مولنار - یادگیری ماشینی قابل تفسیر (کتاب وب) ادامه مطلب