Anomaly Detection ( Anomali Tespiti ) Nedir ?

Mustafa Murat Coşkun
Yazılım Bilimi

--

Herkese Merhaba,

Bu yazımda Anomali Tespitinden veya ingilizce ismiyle Anomaly Detectiondan fikir vermesi açısından genel olarak bahsetmeye çalışacağım.

Anomali Tespiti Nedir ?

Anomaly Detection (Anomali Tespiti),en basit anlamıyla bir veride beklenmedik durumların veya kalıpların bulunmasını sağlayan bir tekniktir. Bu beklenmedik durumlar veya kalıplar aslında bir verinin beklenen davranışlarına uymayan durumlar veya kalıplardır. Bu beklenmedik durumlara literatürde outliers (aykırı değerler), exceptions (istisnai durumlar) veya anomaliler denilmektedir.

Anomaly Detection ile ilgili detaylı açıklamalara geçmeden önce sizlere bu beklenmedik durumlarla ilgili bir örnek vermek istiyorum.

Diyelim ki, siz kredi kartınızdan her ay aşağı yukarı 200–300 tl harcama yapıyorsunuz. Yani, bankanızın size ait profilinde siz her ay düşük bütçeli harcamalar yapan bir müşteri konumundasınız. Peki eğer bir gün siz 1500 Tllik bir alışveriş yaparsanız ne olur ?

Aslında bu durum, sizin normal davranışınızın dışına çıktığınıza ve normalde en fazla 200–300 tl gibi bir harcama yapan bir müşteriyken bir anda beklenmedik bir şekilde 1500 tl harcama yapan bir müşteri konumuna geldiğinize işaret eder. İşte bu durum aslında bir anomali davranıştır. Bu durumda bankanız anomaly detection tekniklerini kullanıyorsa , bunun bir kredi kartı dolandırıcılığı (Credit Card Fraud Detection) olabileceğini öngörüp size bir mesaj yollar. İşte bu basit örnek aslında bir anomaly detection örneğidir.

Anomalilerin ne olduğunu biraz daha iyi anlamak için aşağıdaki figürü inceleyebiliriz.

Bu örneğimizde elimizde 2 boyutlu bir veriseti var. Verisetindeki kümelenmelere (clusters) bakacak olursak N1 ve N2 kümesindeki veriler bizim normal zamanda oluşan verilerimizdir. Ancak o1,o2 verisi ve O3 kümesindeki veriler bizim aslında beklenmedik durumlarımız yani anomali verilerimizdir.

Anomali Tespitinde Karşılaşılan Zorluklar

Anomali tespitinin temel prensibi normal durumlar ile anomali durumları birbirinden ayırarak olası anomali durumları tespit etmektir. Ancak anomali tespitinde karşılaşılan belli zorluklar bulunmaktadır.

  • Anomali tespitinde çoğu veri setinde normal veriler ve anomali veriler çoğu zaman önceki örnekteki gibi kümelenmeler oluşturmazlar. Bir normal veri anomali verilerin bulunduğu kümelenmeye, bir anomali veri ise normal verilerin bulunduğu kümelenmeye yakın olabilir. Bu durumda da anomali tespiti bir hayli zorlaşır.
  • Normal diye nitelendirdiğimiz davranışlar veya veriler zaman içinde değişime uğrayabilir. Bu sebeple normal davranışları tanımlamak her zaman mümkün olmayabilir.
  • Belli bir anomali tespiti tekniğini her alana uygulamak mümkün olmayabilir. Örneğin, tıbbi alanda vücut sıcaklığındaki küçük bir dalgalanma anomali davranışa işaret ederken, stoklardaki küçük bir dalgalanma normal bir davranışı gösterebilir. Bu sebeple, bir anomali tespiti yönteminin tüm alanlara uygulanması mümkün olmaz.
  • Verisetlerindeki gürültülerin ( noise ) anomalilerin tespit edilmesi için ciddi bir çalışmayla temizlenmesi ( noise removal ) gereklidir. Ancak gürültülerin ayırt edilmesi oldukça zor bir süreçtir.

Anomali Tipleri

Point Anomalies

Bireysel bir veri örneği eğer diğer normal verilerden uzaktaysa bu bir anomali veridir. Burada bu anomali tespitine point Anomali denmesinin sebebi anomali tespitinin belli bir niteliğe (attribute) bağlı olmasıdır. Örnek vermek gerekirse, kredi kartımızdan harcadığımız miktar ( amount spent ) anomali tespitinde kullanılabilir.

Contextual Anomalies

Belirli bir verimiz bazı durumlarda anomaliye işaret ederken diğer durumlarda normal bir veriye işaret ediyorsa, yani özel bir bağlamda(specific context) anomali davranış sergiliyorsa bu context anomaliye bir örnektir.

Örneğin, aşağıdaki grafikte yılın belli zamanlarındaki sıcaklık değişimlerini gösteren bir zaman serisi görüyoruz.

Burada, t1 zamanındaki düşük sıcaklık kışın normal bir davranışken, t2 zamanındaki düşük sıcaklık yazın anomali bir davranıştır.

Collective Anomalies

Birbiriyle ilişkili olan veriler tüm verisetinde anomali davranış oluşturuyorsa bu bir collective anomaliye örnektir. Burada ilişkili olan bazı veriler bir araya geldiğinde anomali oluşturabilirken, bu veriler bireysel olarak verisetinde anomali davranış göstermiyor olabilir. Bu anomali tipine, bilgisayarda oluşan bazı aksiyonların beraber oluştuğunda anomali durum gösterdiğini örnek gösterebiliriz.

Aşağıda bir bilgisayarda oluşan aksiyon dizisini görüyoruz.

… http-web, buffer-overflow, http-web, http-web, smtp-mail, ftp, http-web, ssh, smtp-mail, http-web, ssh, buffer-overflow, ftp, http-web, ftp, smtp-mail,http-web …

Burada ssh , buffer-overflow ve ftp aksiyonları tek başına oluştuğunda bir anomali davranış değilken , ard arda veya beraber oluştuklarında Web Tabanlı bir saldırıya işaret edebilir. Yani , bu durum bir anomali davranışı gösterebilir.

Anomali Tespiti Teknikleri

Makine Öğrenmesi Temelli Anomali Tespiti

K-Nearest Neighbour ve Density Based Algoritmaları

Knn algoritması veya Density Based algoritması(örnek: DBSCAN) temel olarak bir verisetindeki noktaların anomali mi yoksa normal mi olduğunu anlamak için komşu noktalar arasındaki uzaklığı ölçerek(örnek: Öklid Uzaklığı ) bu noktalara bir anomali puanı verir.Burada, verinin anomali puanına göre ve tekniklerin uygulanma biçimlerine göre anomali mi yoksa normal mi olduğu anlaşılabilir . Örneğin elimizdeki 3 farklı verinin anomali puanları 0.12 , 0.32,0.52 olsun. Eğer daha önce belirlenen eşik değeri 0.5 ise 3.noktamız anomali bir veridir.

Kümeleme Tabanlı Algoritmalar

Eğer verisetindeki noktaların daha önceden herhangi bir sınıf etiketi yoksa(normal veya anomali) yani unsupervised öğrenim söz konusuysa, bu yöntem en popüler yöntemlerden bir tanesidir.

Bu algoritmalara göre (örnek: K-Means) normal noktalarımız kendi içinde bir kümelenme oluşturur ve diğer noktalar bu kümelenmelerin dışında kalıyorsa bu noktaların anomali olduğu ortaya çıkar.

Ancak eğer noktalarımız veri setinde homojen bir şekilde dağılmışsa bu algoritmalar anomali tespitinde yetersiz kalabilir.

İstatiksel Metodlarla Anomali Tespiti

İstatiksel metodlar da anomali tespitinde oldukça fazla kullanılmaktadır. İstatiksel metodlar veya teknikler ilk olarak normal verilerden veya davranışlardan bir istatiksel model oluşturur ve daha sonrasında daha önceden karşılaşılmamış verilerin bu modele ait olup olmadığını test eder. Eğer bu veriler test aşamasında istatiksel modele uyma konusunda düşük bir olasılığa sahip ise anomali veri olarak görülür. Bu yöntemin uygulanabilmesi için ise daha normal verilerimizin bilinmesi gereklidir.

Anomali Tespitinin Bazı Uygulama Alanları

  • Cyber-Intrusion Detection
  • Fraud Detection
  • Medical Anomaly Detection
  • Industrial Damage Detection
  • Image Processing
  • Textual Anomaly Detection
  • Sensor Networks

Yararlandığım Kaynaklar

Introduction to Anomaly Detection-DataScience

Anomaly Detection: A Survey

--

--

Mustafa Murat Coşkun
Yazılım Bilimi

MsC — Computer Engineering — METU — Founder Of Yazılım Bilimi | Instagram : @mustafamuratcoskunn