تشخیص ناهنجاری (Anomaly Detection) — به زبان ساده
در این مطلب، به مفهوم ناهنجاری و تشخیص ناهنجاری و همچنین، دامنههای کاربرد و چالشهای این حوزه پرداخته خواهد شد. «ناهنجاریها» (Anomalies)، الگوهایی در دادهها هستند که با مفاهیم خوش تعریف از رفتار طبیعی مطابقت ندارند. شکل زیر، ناهنجاری در یک مجموعه داده دوبُعدی را نمایش میدهد. دادهها در دو ناحیه N1 و N2 بهدلیل وجود بیشترین مشاهدات در این دو ناحیه، بهنجار محسوب میشوند، ولیکن نقاط O1 و O2 به میزان قابل توجهی از این دو ناحیه دور هستند و تعداد کمی از مشاهدات نیز در این نواحی وجود دارند و به همین دلیل ناهنجاری محسوب میشوند.
ناهنجاری در دادهها ممکن است ناشی از دلایل گوناگون مانند فعالیتهای مخرب، نفوذ سایبری، وجود توده و تومور در بدن بیمار یا شکست یک سیستم باشد. اما ویژگی مشترک ناهنجاریها که این مبحث را به حوزهای جالب توجه برای تحلیلگران مبدل ساخته، ارتباط تنگاتنگ ناهنجاریهای موجود در زمینههای گوناگون با مسائل جهان واقعی است. تشخیص ناهنجاری با «حذف نویز» (Noise Removal) و «تطبیق نویز» (Noise Accommodation) که هر دو با حذف نویزهای ناخواسته در دادهها سروکار دارند مرتبط ولی متمایز از آنها است.
نویز را میتوان به عنوان پدیدهای در دادهها معرفی کرد که مورد علاقه تحلیلگران نیست و مانند مانعی برای تحلیل دادهها عمل میکند. اما ناهنجاری، الگویی متفاوت با الگوی مرسوم است که اطلاعات مهمی از آنچه به وقوع پیوسته است را ارائه میکند. دیگر مبحث مرتبط با ناهنجاری، «تشخیص نویی» (Novelty Detection) است که با هدف شناسایی الگوهای نوظهور به وقوع پیوسته در دادهها انجام میشود. تمایز بین الگوهای نو و ناهنجار این است که الگوهای نو پس از شناسایی به طور معمول در مدل طبیعی جای میگیرند، اما ناهنجاریها در زمان تعریف و تشخیص ناهنجاری، همواره ناهنجار خواهند بود.
انواع ناهنجاری
یکی از جنبههای مهم تشخیص ناهنجاری، ماهیت ناهنجاری است. ناهنجاریها در سه دسته ناهنجاریهای «نقطهای» (Point Anomalies)، «زمینهای» (Contextual Anomalies) و «جمعی» (Collective Anomalies) قرار میگیرند که هر یک در ادامه توضیح داده شده است. اگر یک نمونه داده مجرد با توجه به کل دادهها غیرطبیعی باشد، به آن نمونه، دارای ناهنجاری نقطهای گفته میشود. این سادهترین نوع ناهنجاری است و تمرکز بیشتر پژوهشها در حوزه تشخیص ناهنجاری بر آن بوده است.
برای مثال، در شکلی که پیشتر ارائه شد، نقطه O1 خارج از مرزهای ناحیه طبیعی است و بنابراین، ناهنجاری نقطهای محسوب میشود زیرا با نقاط داده طبیعی متفاوت است. اگر نمونه دادهها در یک زمینه خاص و نه در حالت کلی ناهنجار باشند، به آن ناهنجاری زمینهای گفته میشود که در برخی منابع با عنوان ناهنجاری مشروط نیز به آن اشاره شده است. مفهوم زمینه از ساختار موجود در مجموعه داده نشات گرفته و باید به عنوان بخشی از فرمولهسازی مساله در نظر گرفته شود.
هر نمونه دادهای با استفاده از دو مجموعه «خصیصههای بافتاری» (Contextual attributes) و «خصیصههای رفتاری» (Behavioral Attributes) تعریف میشود. خصیصههای بافتاری جهت تعیین زمینه برای نمونه استفاده میشوند و در واقع خصیصههای مبتنی بر دامنه کاربردی که تحلیل در آن انجام میشود هستند. برای مثال، در مجموعه دادههای مکانی، طول و عرض جغرافیایی و در دادههای سریهای زمانی، زمان خصیصههای بافتاری هستند که موقعیت نمونه را در کل توالی مشخص میکنند. خصیصههای رفتاری، خصیصههای غیرزمینهای نمونه را تعریف میکنند.
برای مثال، در مجموعه دادههای مکانی که میانگین بارندگی کل جهان را تشریح میکنند، میزان بارندگی در هر موقعیت یک خصیصه رفتاری است. رفتار غیرطبیعی به وسیله مقادیر خصیصههای رفتاری در یک زمینه خاص تعریف میشود. یک نمونه داده ممکن است یک ناهنجاری زمینهای باشد، اما همان نمونه داده از دیدگاه خصیصههای رفتاری میتواند در زمینههای مختلف بهنجار در نظر گرفته شود. در شکل زیر، دمای هوا در زمان t1 مشابه t2 است ولی در زمینههای متفاوتی بهوقوع پیوستهاند؛ بنابراین، t2 در زمینه بهوقوع پیوسته برخلاف t1، ناهنجاری محسوب میشود، زیرا چنین دمای کم و افت دمایی در ژوئن به طور معمول ناهنجاری است (البته بستگی به منطقه جغرافیایی که دادهها از آن تهیه شدهاند نیز دارد).
تشخیص خصیصههای متنی و رفتاری، کلید تشخیص ناهنجاری است. لازم به ذکر است، ناهنجاریهای زمینهای معمولا در دادههای سریهای زمانی و دادههای مکانی اتفاق میافتند. اگر یک مجموعه از نمونه دادهها نسبت به کل مجموعه دادهها غیرطبیعی باشد، به آن مجموعه دارای ناهنجاری جمعی گفته میشود. این نمونه دادهها ممکن است به تنهایی ناهنجار نباشند اما وقوع آنها با یکدیگر به صورت یک مجموعه، غیر طبیعی محسوب شود. در شکل زیر خروجی الکتروکاردیوگرام برای انسان نمایش داده شده است. ناحیه قرمز رنگ نشانگر ناهنجاری است زیرا مقدار پایین برای مدت طولانی وجود دارد که در پزشکی، انقباض زودرس دهلیزی تفسیر میشود. مقدار پایین به تنهایی یک ناهنجاری نیست و وقوع همزمان یک مجموعه از نقاط پایین حاکی از ناهنجاری است. این مثال، یکی از معروفترین مثالهایی است که برای ناهنجاری جمعی، بیان میشود.
دامنههای کاربرد تشخیص ناهنجاری
تشخیص ناهنجاری استفاده گستردهای در دامنه کاربردهای مختلف از جمله صنعت بانکداری، بیمه، بهداشت و درمان، امنیت سایبری و ایمنی و مراقبت نظامی دارد. در این بخش به کاربردهای گوناگون تشخیص ناهنجاری در حوزههای مختلف پرداخته و برای هر کاربرد مفهوم ناهنجاری به وسیله مثالهایی تشریح شده است.
تشخیص نفوذ: «تشخیص نفوذ» (Intrusion Detection) به شناسایی فعالیتهای خرابکارانه (ورود بیمجوز و دیگر روشهای سو استفاده رایانهای) در سامانههای رایانهای گفته میشود. این فعالیتهای خرابکارانه یا نفوذها از منظر امنیت رایانهای جالب توجه هستند. الگوی رفتار نفوذگرها از الگوی رفتار کاربران عادی در سامانههای رایانهای متفاوت است، لذا از روشهای تشخیص ناهنجاری در حوزه تشخیص نفوذ جهت کشف این رفتارهای متفاوت از الگوی طبیعی استفاده میشود. چالش کلیدی در تشخیص نفوذ حجم بالای دادهها است که نیاز به روشهایی با کارایی محاسباتی بالا را ایجاب میکند.
همچنین، دادهها معمولا به صورت جریانی تولید میشوند در نتیجه نیازمند تحلیلهای برخط هستند. مساله دیگر در تشخیص نفوذ حجم بالای دادههای هشدار است که خود بر اثر حجم بالای دادهها ایجاد میشوند. در حوزه تشخیص نفوذ، به طور معمول دادههای برچسبدار متناظر با رفتار بهنجار در دسترس هستند، در حالی که دادههای ناهنجار برچسبدار در دسترس نیستند. بنابراین، روشهای تشخیص ناهنجاری نیمهنظارت شده (بخشی از دادهها برچسبدار و بخش دیگر بدون برچسب هستند) و نظارت نشده (دادهها بدون برچسب هستند) در این دامنه ارجحیت دارند.
«دنینگ» (Denning) در پژوهشی که در حوزه تشخیص ناهنجاری و تشخیص نفوذ انجام داده، سامانههای تشخیص نفوذ را در دو دسته سامانههای مبتنی بر میزبان و مبتنی بر شبکه دستهبندی میکند. چالشی که روشهای تشخیص ناهنجاری در این دامنه با آن مواجه هستند، ماهیت ناهنجاریها است که در طول زمان تغییر میکند؛ از سوی دیگر، خرابکاران حملات خود را با رفتار بهنجار انطباق میدهند تا از راهکار تشخیص ناهنجاری بی آنکه شناسایی شوند عبور کنند. پژوهشهای گوناگونی در زمینه تشخیص نفوذ در سالهای اخیر انجام شده که این امر حاکی از اهمیت این موضوع برای پژوهشگران است.
تشخیص کلاهبرداری: «تشخیص کلاهبرداری» (Fraud Detection) به شناسایی فعالیتهای مجرمانه در سازمانهای تجاری مانند بانکها، شرکتهای صادرکننده کارت اعتباری، ادارههای بیمه، شرکتهای مخابراتی و بازار بورس گفته میشود. خرابکاران ممکن است مشتریهای واقعی سازمان باشند و یا وانمود کنند یکی از مشتریان سازمان هستند (این کار به عنوان سرقت هویت شناخته شده است). کلاهبرداری زمانی به وقوع میپیوندد که کاربران از مزایای ارائه شده توسط سازمان به شیوه غیرمجاز استفاده کنند.
سازمانها به تشخیص سریع چنین کلاهبرداریهایی برای ممانعت از خسارتهای مالی بسیار علاقمند هستند. «فاست» (Fawcett) و «پرووُست» (Provost)، در پژوهشی که پیرامون همین موضوع انجام دادهاند، اصطلاح نظارت بر فعالیت را بهعنوان یک دیدگاه کلی جهت تشخیص کلاهبرداری بیان کردهاند. یک رویکرد عمومی برای تشخیص ناهنجاری، نگهداری پروفایل کاربری هر مشتری و نظارت بر این پروفایلها برای شناسایی هرگونه انحراف است.
بهداشت و درمان: تشخیص ناهنجاری در بهداشت و درمان به طور معمول با استفاده از دادههای سوابق پزشکی بیماران انجام میشود. دادههای ناهنجار در این حوزه ممکن است به دلایل متعدد، شامل شرایط ناهنجار، خطاهای ابزار دقیق یا خطاهای انسانی، نسبت به دادههای بهنجار انحراف داشته باشند. روشهای تشخیص ناهنجاری در این حوزه برای تشخیص وقوع یا شیوع بیماریها در یک منطقه، پیشبینی ابتلای افراد به بیماریهای خاص و یا بررسی تاثیر مولفههای گوناگون در ابتلای افراد به نوع خاصی از بیماریها به کار میروند. لذا تشخیص ناهنجاری در حوزه بهداشت و درمان یک مساله بسیار مهم و نیازمند درجه بالایی از صحت و دقت است.
آسیبهای صنعتی: واحدهای صنعتی به دلیل آسیبهایی که بر اثر استفاده طولانی مدت از دستگاهها و تجهیزات ایجاد میشود، متحمل خسارتهای قابل توجهی میشوند. برای ممانعت از این خسارتها، نیاز به تشخیص زودهنگام آسیبهای دستگاهها است. دادههای صنعتی به طور معمول مجموعه دادههای کسب شده از حسگرها هستند که برای تحلیل، ثبت و جمعآوری میشوند. روشهای تشخیص ناهنجاری در این دامنه در دو دسته قرار میگیرند. یک دسته به نقایص موجود در مولفههای مکانیکی مانند موتورها و دیگر تجهیزات پرداخته و دسته دیگر به نواقص ساختار فیزیکی مربوط میشود.
دادههای متنی: پژوهشگران با استفاده از تشخیص ناهنجاری در دادههای متنی، به شناسایی موضوعات نو، رویدادها یا خبرها میپردازند. ناهنجاری در دادههای متنی، به موجب یک رویداد جدید یا موضوع غیرعادی به وقوع میپیوندد. دادههای متنی اغلب دارای ابعاد زیاد و پراکندهای هستند و جنبه زمانی دارند؛ زیرا مستندات در گذر زمان گردآوری میشوند. چالش مهم برای روشهای تشخیص ناهنجاری در دادههای متنی، ساختار نیافتگی و تنوع بالای مستندات متعلق به یک دسته یا موضوع است.
شبکههای حسگر: شبکههای حسگر، از جمله مباحث جالب توجه پژوهشی هستند. ناهنجاری در دادههای گردآوری شده از یک شبکه حسگر میتواند به این معنا باشد که یک یا تعداد بیشتری از حسگرها معیوب یا در حال تشخیص رویدادهایی مانند نفوذ است. بدین ترتیب، تشخیص ناهنجاری در شبکههای حسگر میتواند به تشخیص نقص حسگر، تشخیص نفوذ یا هر دو مورد کمک کند. یک شبکه حسگر، ممکن است شامل حسگرهایی باشد که انواع دادههای دودویی، زمانی، متوالی، صوتی و ویدیویی را گردآوری میکنند. این دادهها به صورت جریانی تولید میشوند.
سایر دامنهها: تشخیص ناهنجاری در دامنههای گوناگون دیگر، مانند تشخیص ناهنجاری در شبکه متحرک اقتضایی، تشخیص ناهنجاری در سریهای زمانی، تشخیص ناهنجاری در سیستمهای بزرگ مقیاس، تشخیص صدا، تشخیص نویی در رفتار روبات، نظارت بر ترافیک، تشخیص خطا در برنامههای کاربردی وب، تشخیص ناهنجاری در دادههای زیستی، تشخیص ناهنجاری در دادههای سرشماری و ممیزی مالیاتی، تشخیص گروهک در فعالیتهای مجرمانه، تشخیص ناهنجاری در دادههای مدیریت ارتباط با مشتریان، تشخیص ناهنجاری در دادههای نجومی، تشخیص اختلالات زیست بوم، تشخیص ناهنجاری در گرافها، تشخیص ناهنجاری در دادههای متوالی و تشخیص ناهنجاری در دادههای مکانی استفاده شده است.
چالشها
در سطح انتزاعی، ناهنجاری به عنوان الگویی که با رفتار طبیعی مورد انتظار مطابقت ندارد تعریف شده است. بنابراین، یک رویکرد تشخیص ناهنجاری صحیح مبتنی بر ارائه تعریف ناحیهای که نشانگر رفتار طبیعی بوده و گزارش هر مشاهدهای در دادهها که متعلق به این ناحیه طبیعی نیست، به عنوان ناهنجاری، است. مولفههای گوناگونی این رویکرد به ظاهر ساده را بسیار چالش برانگیز میکنند که برخی از آنها در ادامه بیان شدهاند.
تعریف یک ناحیه بهنجار که هر رفتار طبیعی ممکنی را شامل شود بسیار دشوار است و به علاوه، مرزهای بین رفتار بهنجار و ناهنجار معمولا دقیق نیستند. در نتیجه، یک مشاهده غیرعادی که به مرزهای تفکیک رفتار بهنجار و ناهنجار نزدیک است میتواند بهنجار یا ناهنجارمحسوب شود.
هنگامیکه ناهنجاریها در نتیجه رفتارها یا فعالیتهای خرابکارانه به وقوع میپیوندند، خرابکارها سعی دارند خود را به صورت بهنجار نشان دهند تا طبیعی بهنظر برسند، و این مساله تشخیص ناهنجاری را دشوارتر میسازد. از سوی دیگر، در بسیاری از دامنهها، رفتار طبیعی به طور دائم در حال تغییر است و مفهوم کنونی رفتار بهنجار در یک دامنه، ممکن است در آینده در همان دامنه نیز گویا نباشد. مساله دیگر تفاوت تعریف مفهوم دقیق ناهنجاری در دامنه کاربردهای گوناگون است. برای مثال، در دامنه پزشکی، یک انحراف کوچک از رفتار بهنجار ممکن است یک ناهنجاری باشد، در حالی که انحراف مشابهی در بورس ممکن است بهنجار در نظر گرفته شود. بنابراین اعمال یک فن ساخته شده برای یک دامنه به دامنه دیگر کار درست و امکانپذیری نیست. فقدان دادههای برچسبدار برای آموزش و یا تایید اعتبار مدلهایی که برای تشخیص ناهنجاری استفاده میشوند از دیگر چالشهای این حوزه است.
دیگر مساله مهمی که بر پیچیدگی تشخیص ناهنجاری میافزاید وجود نویز است. معمولا دادههای دارای نویز به ناهنجاریهای واقعی گرایش دارند بنابراین تشخیص و حذف آنها دشوار است. بهدلیل وجود چالشهای مذکور، حل مساله تشخیص ناهنجاری، به شکل کلی و عمومی آسان نیست. در حقیقت، بیشتر فنون تشخیص ناهنجاری موجود، یک مساله خاص را با توجه به مولفههای گوناگون مانند ماهیت داده ورودی، وجود دادههای برچسبدار و نوع ناهنجاری فرمولبندی و حل میکنند. پژوهشگران مفاهیمی را از رشتههای گوناگون مانند آمار، «یادگیری ماشین» (Machine Learning)، «دادهکاوی» (Data Mining) و نظریه اطلاعات به دادهکاوی آورده و از آنها در فرمولبندی مسائل ناهنجاری استفاده میکنند. چالش مهم دیگر در تشخیص ناهنجاری، شیوه ارائه گزارش است.
به طور معمول، خروجی مساله تشخیص ناهنجاری یک مجموعه امتیاز یا برچسب است. در روش امتیازدهی، یک امتیاز ناهنجاری به هر نمونه در دادههای آزمون با توجه به درجهای که هر نمونه به عنوان ناهنجاری در نظر گرفته شده، تخصیص داده میشود. بنابراین خروجی این روش یک لیست امتیازبندی شده از ناهنجاریها است. پژوهشگران در مواجهه با چنین گزارشهایی معمولا یک آستانه مشخص برای تعیین ناهنجاریها انتخاب میکنند. در روش برچسبگذاری، به هر نمونه از مجموعه دادهها یک برچسب بهنجار یا ناهنجار اختصاص میدهند. روشهای تشخیص ناهنجاری مبتنی بر امتیاز، به تحلیلگران امکان انتخاب آستانه خاصی برای تعیین ناهنجاری را میدهند، اما در روشهای برچسبگذاری به طور مستقیم به تحلیلگر چنین امکانی داده نمیشود.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- مجموعه آموزشهای آمار و احتمالات
- آموزش تشخیص دادههای پرت یا Outlier Detection
- تشخیص ناهنجاری با استفاده از داده کاوی — بررسی موردی همراه با کدهای پایتون
- تشخیص ناهنجاری در داده کاوی — با استفاده از زبان برنامهنویسی R
^^