پرش به محتوا

روش تشخیص ناهنجاری

از ویکی‌پدیا، دانشنامهٔ آزاد

تشخیص ناهنجاری‌ها (به انگلیسی: Anomaly detection) که به عنوان تشخیص دورافتاده‌ها (به انگلیسی: Outlier detection) نیز شناخته شده است، به تشخیص الگوهای موجود در یک مجموعه اطلاعات داده شده، که با رفتار هنجار (نرمال) از پیش مقررشده، مطابقت ندارد، اشاره می‌کند؛ بنابراین الگوهای تشخیص داده شده، ناهنجاری‌ها نامیده می‌شوند و اغلب به اطلاعات حیاتی و کارآمد، در چندین حوزهٔ کاربرد، ترجمه می‌شوند. همچنین ناهنجاری‌ها به عنوان دورافتادگی، تغییر، انحراف، تعجب، نابجایی، صفات عجیب، نفوذ و غیره ارجاع می‌شوند.

به‌طور خاص، در زمینه تشخیص سوءاستفاده و نفوذ به شبکه، موارد جالب اغلب موارد نادر نیستند، اما انفجارات غیرمنتظره در کار است. این الگو به یک تعریف آماری مشترک از دورافتادگی، به عنوان به عنوان یک شیء نادر پایبند نیست؛ و بسیاری از روش‌های تشخیص دورافتادگی (بویژه در روش بدون نظارت)، بر روی تعدادی داده‌ها ناموفق است، مگر آنکه به‌طور مناسب توزیع شده باشد. در عوض، یک الگوریتم تجزیه و تحلیل خوشه‌ای ممکن است توانایی تشخیص خردخوشه‌های[۱] تشکیل‌شده توسط این الگوها را داشته باشد.

سه دستهٔ گسترده از فنون تشخیص ناهنجاری وجود دارد. فنون تشخیص ناهنجاری بدون ناظر، ناهنجاری‌ها را در یک مجموعهٔ دادهٔ آزمون بدون برچسب، تحت این فرض که اکثریت موارد در مجموعه داده‌ها بهنجار هستند و با گشتن به دنبال مواردی که حداقل تناسب را با بقیه مجموعه داده‌ها دارند، تشخیص می‌دهند. فنون تشخیص ناهنجاری باناظر، نیاز به یک مجموعهٔ داده‌ها دارند که که با عنوان بهنجار و نابهنجار نشان‌دار شده و شامل آموزش طبقه‌بندی شده (تفاوت کلیدی بسیاری از مسایل طبقه‌بندی آماری، ماهیت نامتعادل ذاتی، ناشی از تشخیص دورافتادگی است) باشند. فنون تشخیص ناهنجاری نیمه‌نظارتی یک مدل که نشان‌دهندۀ رفتار طبیعی با توجه به یک مجموعه داده‌است، می‌سازند و سپس، احتمال یک مورد آزمون تولیدی به‌وسیلهٔ مدل آموخته‌شده را می‌سنجند.

انواع مختلف ناهنجاری‌ها[۲]

[ویرایش]

ناهنجاری‌ها مختلفی که یک ماشین با آن مواجه می‌شود به شرح زیر است:

ناهنجاری سراسری

[ویرایش]
نمایی از ناهنجاری‌های سراسری

آنها همچنین به عنوان ناهنجاری‌های نقطه‌ای شناخته می‌شوند. اینها ساده‌ترین نوع ناهنجاری‌ها هستند. اگر در یک مجموعه داده معین، یک نقطه داده به شدت از بقیه نقاط داده منحرف شود، به عنوان نقطه دورافتاده جهانی شناخته می‌شود. به‌طور مثال، در یک سیستم تشخیص نفوذ، اگر تعداد زیادی بسته در یک بازه زمانی بسیار کوتاه پخش شود، آنگاه ممکن است به عنوان یک نقطه دورافتاده جهانی در نظر گرفته شود و می‌توان گفت که آن سیستم خاص هک شده‌است.

ناهنجاری‌های زمینه‌ای

[ویرایش]
نمایی از ناهنجاری‌های زمینه‌ای

آنها همچنین به عنوان «ناهنجاری‌های شرطی» شناخته می‌شوند. اگر در یک مجموعه داده معین، یک شی داده به‌طور قابل توجهی از سایر نقاط داده بر اساس یک زمینه یا شرایط خاص منحرف شود به عنوان دورافتاده زمینه‌ای شناخته می‌شود. یک نقطه داده ممکن است به دلیل شرایط خاصی یک نقطه پرت باشد و ممکن است تحت شرایط دیگری رفتار عادی نشان دهد؛ بنابراین، یک زمینه باید به عنوان بخشی از بیان مسئله مشخص شود تا نقاط دورافتاده زمینه‌ای شناسایی شوند. به‌طور مثال، دمای ۴۰ درجه سانتی‌گراد ممکن است در زمینه «فصل زمستان» به عنوان یک نقطه دورافتاده عمل کند، اما در زمینه «فصل تابستان» مانند یک نقطه داده معمولی رفتار می‌کند.

ناهنجاری‌های جمعی

[ویرایش]
نمایی از ناهنجاری‌های جمعی

اگر در یک مجموعه داده معین، برخی از نقاط داده، به‌طور کلی، به‌طور قابل توجهی از بقیه مجموعه داده منحرف شوند، ممکن است به عنوان نقاط دورافتاده جمعی شناخته شوند. در اینجا، تک‌تک اشیاء داده ممکن است دورافتاده نباشند، اما وقتی به عنوان یک کل دیده شوند، ممکن است به صورت دورافتاده رفتار کنند. برای شناسایی این نوع دورافتاده‌ها، ممکن است به اطلاعات پس زمینه‌ای در مورد رابطه بین آن اشیاء داده‌ای نیاز داشته باشیم که رفتار دورافتاده را نشان می‌دهد. به‌طور مثال، در یک سیستم تشخیص نفوذ، بسته DOS از یک کامپیوتر به کامپیوتر دیگر ممکن است به عنوان رفتار عادی در نظر گرفته شود. با این حال، اگر این اتفاق با چندین رایانه به‌طور همزمان رخ دهد، ممکن است این رفتار غیرعادی در نظر گرفته شود و به‌طور کلی می‌توان آنها را به عنوان ناهنجاری جمعی نامید.

الگوریتم‌های تشخیص ناهنجاری‌ها

[ویرایش]

دور افتاده‌ها یا همان outlierها و بی‌نظمی‌ها در داده‌ها معمولاً توسط الگوریتم‌های داده‌کاوی مختلف قابل تشخیص هستند. به عنوان مثال، الگوریتم‌هایی برای خوشه‌بندی و طبقه‌بندی.

به‌طور کلی، الگوریتم‌ها به دو دسته کلیدی تقسیم می‌شوند که عبارتند از یادگیری تحت نظارت، بدون نظارت، نیمه نظارت. یادگیری تحت نظارت نوع رایج‌تر است. این یادگیری شامل الگوریتم‌هایی مانند رگرسیون خطی،[۳] رگرسیون لجستیک، ماشین بردار پشتیبانی، طبقه‌بندی چند کلاس و … است.

پنج مورد از الگوریتم‌های تشخیص ناهنجاری به شرح زیر است (توضیحی مختصر در مورد هر یک داده شده‌است):

الگوریتم k-NN[۴]

[ویرایش]

k-NN یکی از الگوریتم‌های مبتنی بر روش‌های یادگیری تحت نظارت در یادگیری ماشین است. تمام نمونه‌های موجود را ذخیره می‌کند و سپس نمونه‌های جدید را بر اساس شباهت‌های معیارهای فاصله طبقه‌بندی می‌کند بدین صورت که به k نزدیکترین نقاط داده آموزشی (k-نزدیک‌ترین همسایگان) نگاه می‌کند. سپس، همان‌طور که از k-نزدیک‌ترین همسایه‌ها استفاده می‌کند، k-NN تصمیم می‌گیرد که چگونه داده‌های جدید باید طبقه‌بندی شوند.

الگوریتم LOF[۵]

[ویرایش]

LOF یک الگوریتم تشخیص ناهنجاری کلیدی بر اساس مفهوم چگالی محلی است. از فاصله بین k نزدیک‌ترین همسایه برای تخمین چگالی استفاده می‌کند.

LOF چگالی محلی یک آیتم را با چگالی محلی همسایگان آن مقایسه می‌کند؛ بنابراین می‌توان مناطقی با چگالی مشابه و مواردی که چگالی قابل توجهی کمتر نسبت به همسایگان خود دارند را تعیین کرد. این موارد دورافتاده‌ها یا همان outlierها هستند.

الگوریتم K-means[۶]

[ویرایش]

این الگوریتم خوشه‌بندی است. از مجموعه‌ای از آیتم‌ها k گروه ایجاد می‌کند تا عناصر یک گروه شبیه‌تر باشند. بدین صورت که اقلام داده، بسته به شباهت ویژگی‌هایشان خوشه بندی می‌شوند.

الگوریتم ماشین‌های بردار پشتیبان[۷]

[ویرایش]

ماشین بردار پشتیبانی یک تکنیک یادگیری ماشین که به صورت یادگیری نظارت شده است که بیشتر در مسائل طبقه‌بندی استفاده می‌شود. از یک hyperplane برای طبقه‌بندی داده‌ها به دو گروه مختلف استفاده می‌کند. بدین صورت که این الگوریتم رفتار عادی داده‌ها را با استفاده از یک ناحیه یادگیری خوشه‌بندی می‌کند. سپس با استفاده از مثال آزمایشی، ناهنجاری‌هایی را که از ناحیه یادگرفته شده خارج می‌شوند، شناسایی می‌کند.

شبکه عصبی مبتنی بر تشخیص ناهنجاری‌ها[۸]

[ویرایش]

شبکه‌های عصبی، الگوریتم‌های بسیار محبوبی هستند که در ابتدا برای تقلید از نورون‌های بیولوژیکی طراحی شدند. هدف اولیه از ایجاد سیستمی از نورون‌های مصنوعی به دست آوردن سیستم‌هایی است که می‌توانند برای یادگیری برخی الگوهای داده و اجرای عملکردهایی مانند طبقه‌بندی، رگرسیون خطی، پیش‌بینی و … آموزش ببینند به‌طور مثال ساخت یک شبکه عصبی بازگشتی که ناهنجاری‌ها را در داده‌های سری زمانی کشف می‌کند. چیزی که آنها را برای تشخیص ناهنجاری در سری‌های زمانی بسیار مفید می‌کند، این قدرت برای یافتن ویژگی‌های وابسته در چند مرحله زمانی است.

کاربرد

[ویرایش]

تشخیص ناهنجاری‌ها کاربردهای زیادی دارد که مواردی از آنها به شرح زیر است:

  • تشخیص تقلب به‌طور مثال، رفتار خرید شخصی که کارت اعتباری را نگه می‌دارد با رفتار مالک اولیه متفاوت است. شرکت‌های کارت اعتباری سعی می‌کنند با مشاهده طرح‌هایی که مشخصه سرقت هستند یا با درک تغییری از رفتار عمومی، سرقت را شناسایی کنند. روش‌های مشابهی برای انواع مختلف کلاهبرداری استفاده می‌شود.
  • سامانه تشخیص نفوذ[۹] به‌طور مثال، حملات به سیستم‌های کامپیوتری و شبکه‌های کامپیوتری مرسوم است. در حالی که چندین حمله، از جمله حملاتی که برای از کار انداختن یا از کار انداختن رایانه‌ها و شبکه‌ها طراحی شده‌اند، آشکار هستند، سایر حملات، از جمله حملاتی که برای جمع‌آوری مخفیانه داده‌ها طراحی شده‌اند، پیچیده هستند. برخی از این نفوذها را می‌توان با مشاهده سیستم‌ها و شبکه‌ها برای رفتار غیرعادی شناسایی کرد.
  • اختلالات اکوسیستم به‌طور مثال، در دنیای رایج، رویدادهای کلی وجود دارد که می‌تواند تأثیر اساسی بر انسان داشته باشد. نمونه‌ها شامل طوفان، سیل، خشکسالی، امواج گرما و آتش‌سوزی است. هدف پیش‌بینی احتمال وقوع این رویدادها و علل آن است.
  • بهداشت عمومی به‌طور مثال، در برخی کشورها، بیمارستان‌ها و کلینیک‌های پزشکی چندین آمار را برای تجزیه و تحلیل بیشتر به سازمان‌های ملی گزارش می‌دهند. به عنوان مثال، اگر برخی از کودکان در یک شهر برای یک بیماری خاص مانند سرخک واکسینه شوند، آنگاه ظهور برخی موارد پراکنده در چندین بیمارستان در یک شهر یک رویداد غیرعادی است که می‌تواند نشان‌دهنده مشکل در برنامه‌های واکسیناسیون در شهر باشد.

این روش اغلب در پردازش به منظور حذف داده‌های غیرعادی از مجموعه داده‌ها، بکار می‌رود. در یادگیری تحت نظارت، حذف داده‌های غیرعادی از مجموعه داده، اغلب منجر به افزایش معنی دار آماری در دقت می‌شود.

کاربرد در امنیت داده

[ویرایش]

تشخیص ناهنجاری برای سامانه‌های تشخیص نفوذ (IDS) در سال ۱۹۸۶ توسط دوروتی دنینگ[۱۰] ارائه شد. پیش از آن، تشخیص ناهنجاری برای IDSها به‌طور معمول با آستانه‌ها و آمار انجام می‌شده‌است. اما با محاسبات نرم‌افزاری و یادگیری استقرایی نیز می‌تواند انجام شود. انواع آمار ارائه شده در ۱۹۹۹، شامل پروفایل‌های کاربران، ایستگاه‌های کاری، شبکه‌ها، میزبان‌های کنترل شده از راه دور، گروه‌های کاربران و برنامه‌های بر اساس فرکانس، میانگین، واریانس، کوواریانس (همبستگی) و انحراف استاندارد بود. همتای دیگر روش تشخیص ناهنجاری در تشخیص نفوذ، تشخیص سوءاستفاده است.

منابع

[ویرایش]
  1. micro clusters
  2. anomaly detection in machine learning-serokell blog
  3. Liu, X. , & Nielsen, P.S. (2016). Regression-based Online Anomaly Detection for Smart Grid Data. ArXiv, abs/1606.05781.
  4. Pang, G. , Ting, K.M. , & Albrecht, D.W. (2015). LeSiNN: Detecting Anomalies by Identifying Least Similar Nearest Neighbours. 2015 IEEE International Conference on Data Mining Workshop (ICDMW), 623-630.
  5. Yang, Mengjia & Ergu, Daji. (2020). Anomaly Detection of Vehicle Data Based on LOF Algorithm. Frontiers in Signal Processing. 4. 10.22606/fsp.2020.41007.
  6. Sarvani, A. & Venugopal, B. & Devarakonda, Nagaraju. (2019). Anomaly Detection Using K-means Approach and Outliers Detection Technique: Proceedings of SoCTA 2017. 10.1007/978-981-13-0589-4_35.
  7. Xueqin Zhang, Chunhua Gu and Jiajun Lin, "Support Vector Machines for Anomaly Detection," 2006 6th World Congress on Intelligent Control and Automation, Dalian, 2006, pp. 2594-2598, doi: 10.1109/WCICA.2006.1712831.
  8. Zhang, C. , Song, D. , Chen, Y. , Feng, X. , Lumezanu, C. , Cheng, W. , Ni, J. , Zong, B. , Chen, H. , & Chawla, N. V. (2019). A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data. Proceedings of the AAAI Conference on Artificial Intelligence, 33(01), 1409-1416. https://doi.org/10.1609/aaai.v33i01.33011409
  9. Intrusion Detectioin System
  10. Dorothy Denning