Giriş
Bütün yıl İstanbul'da kullanılan bir kredi kartıyla birden on dakika içinde başka bir ülkede üç dizüstü bilgisayar alınıyor. Bir fabrikadaki motorun rulmanı biraz farklı bir frekansta titreşmeye başlıyor. Normalde saatte birkaç megabayt veri gönderen bir sunucu gigabaytlarca veri göndermeye başlıyor. Her durumda önemli olan, diğerlerine benzemeyen olay. Bunu otomatik olarak bulmaya anomali tespiti deniyor.
Sahtecilik tespitinde, siber güvenlikte, kalite kontrolde ve kestirimci bakımda kullanılıyor. Onu sıradan sınıflandırmadan ayıran şey dengesizlik: anomaliler nadirdir, çoğu zaman verinin yüzde birinden bile azdır ve sık sık hiç etiketli örnekleri bulunmaz. Bu da kendine özgü yöntemler gerektiriyor. Bu genel bakış kısmen Andriy Burkov'un The Hundred-Page Machine Learning Book kitabına dayanıyor.
Neye anomali denir?
Biçimsel olarak, X ⊆ ℝd veri kümesi N bağımsız gözlemden (x1, x2, …, xN) oluşsun. Anomali, normal örneklerin dağılımından anlamlı biçimde sapan bir xi ∈ X örneğidir. Pratikte anomaliler üç türlüdür:
- Nokta anomalileri: üç dizüstü bilgisayarlık alışveriş gibi, diğer her şeyden uzakta duran tekil gözlemler. Genellikle olasılık dağılımları ya da uzaklık ölçüleriyle yakalanır.
- Bağlamsal anomaliler: yalnızca bağlam içinde tuhaf olan değerler. 30 °C temmuzda normal, ocakta alarm vericidir; bu yüzden zaman ya da konum modelin bir parçası olmalıdır.
- Toplu anomaliler: her biri tek başına normal görünse de birlikte olağandışı olan gözlem grupları; yavaş ve düzenli bir dizi küçük para transferi gibi.
Problemin matematiksel ifadesi
Bir X veri kümesi verildiğinde amaç şu fonksiyonu öğrenmektir:
f: X → {0, 1}
f(x) = 1, x bir anomaliyse
0, aksi hâldeÇoğu yöntem aslında sürekli bir anomali skoru öğrenir ve ardından bir eşik uygular. Bu skorun nasıl öğrenileceği, elinizde ne kadar etiketli veri olduğuna bağlıdır. Buradan üç yöntem ailesi çıkar: denetimli, denetimsiz ve yarı denetimli.
1. Denetimli anomali tespiti
Elinizde {(xi, yi)}i=1N biçiminde, yi ∈ {0, 1} değerinin örneğin anomali olup olmadığını gösterdiği etiketli eğitim verisi varsa, anomali tespiti bir sınıflandırma problemine dönüşür. Lojistik regresyon, karar ağaçları, gradyan artırmalı ağaçlar ve yapay sinir ağları kullanılabilir. Örneğin lojistik regresyon şu tahmini yapar:
ŷ = σ(wᵀx + b) σ(z) = 1 / (1 + e⁻ᶻ)
Sorun veride. Öğrenmek için yeterince etiketli anomaliye ihtiyacınız var ve bu nadiren gerçekçi. Dengesizlik çok büyükse model hiçbir şeyi işaretlemeyerek %99 doğruluğa ulaşabilir. Denetimli yöntemler ayrıca yalnızca daha önce gördükleri türden anomalileri tanır.
2. Denetimsiz anomali tespiti
Denetimsiz yöntemler hiç etiket olmadığını varsayar ve verinin yapısına uymayan noktaları arar.
İstatistiksel yöntemler
Normal verinin dağılımını bir p(x) olasılık yoğunluğuyla modelleyin ve yeterince düşük olasılıklı her şeyi anomali sayın:
p(x) < ε ise x anomalidir
Veri ortalaması μ, kovaryansı Σ olan yaklaşık bir Gauss dağılımına uyuyorsa Mahalanobis uzaklığı doğal bir skordur. Düz Öklid uzaklığından farklı olarak her özelliğin ölçeğini ve özellikler arasındaki korelasyonları hesaba katar:
dM(x) = √((x − μ)ᵀ Σ⁻¹ (x − μ))
Kümeleme tabanlı yöntemler
k-means gibi algoritmalar veriyi kümelere ayırır; bütün küme merkezlerinden (μk) uzak kalan noktalar şüphelidir:
s(x) = mink ‖x − μk‖₂
DBSCAN bir adım daha ileri gider ve hiçbir yoğun bölgeye ait olmayan noktaları doğrudan gürültü olarak etiketler.
Yoğunluk tabanlı yöntemler
Yerel Aykırı Değer Faktörü (Local Outlier Factor, LOF), bir noktanın çevresindeki yerel yoğunluğu, k en yakın komşusunun (Nk(x)) çevresindeki yoğunlukla karşılaştırır:
LOF(x) = (1 / |Nk(x)|) · Σy ∈ Nk(x) lrd(y) / lrd(x)
Buradaki lrd, yerel erişilebilirlik yoğunluğudur. 1'e yakın bir değer, noktanın komşuları kadar yoğun bir çevrede olduğunu gösterir. 1'in belirgin biçimde üzerindeki değerler ise noktanın komşularından çok daha seyrek bir bölgede durduğu anlamına gelir.
Yalıtım tabanlı yöntemler
Isolation Forest farklı bir yol izler. Veriyi rastgele özelliklerde, rastgele değerlerden bölen rastgele ağaçlar kurar. Anomaliler az ve farklı olduğu için birkaç bölmeden sonra yalıtılır; normal noktalar ise çok sayıda bölme gerektirir. Tüm ağaçlardaki ortalama yol uzunluğu anomali skoru olur. Hızlıdır ve yüksek boyutlu tablo verilerinde iyi çalışır; bu yüzden çoğu zaman ilk denenen yöntemdir.
3. Yarı denetimli anomali tespiti
Çoğu zaman normal olduğunu bildiğiniz bol miktarda veri ve neredeyse hiç anomali örneği olur. Yarı denetimli yöntemler yalnızca normal veriyle eğitilir ve ona benzemeyen her şeyi işaretler.
Otokodlayıcılar
Otokodlayıcı (autoencoder), girdisini sıkıştırıp sonra yeniden oluşturmak üzere eğitilen bir sinir ağıdır. Yalnızca normal veriyle eğitildiğinde normal örüntüleri yeniden oluşturmakta ustalaşır. Yeniden oluşturma hatası ‖x − x̂‖₂ yüksekse girdi ağın daha önce gördüğü hiçbir şeye benzemiyordur; yani x büyük ihtimalle bir anomalidir.
Tek sınıflı SVM
Tek sınıflı destek vektör makinesi, veriyi bir φ dönüşümüyle yüksek boyutlu bir özellik uzayına taşır ve normal veriyi orijinden mümkün olan en geniş marjla ayıran bir sınır öğrenir. Sınırın yanlış tarafına düşen yeni noktalar anomali kabul edilir:
f(x) = sign(wᵀφ(x) − ρ)
Uygulamaya dökmek
- Veriyi hazırlayın. Özellikleri normalize edin, eksik değerleri ele alın ve gerçekten sinyal taşıyan özellikleri tutun. Bir özellik binlerle, bir diğeri kesirlerle ölçülüyorsa uzaklık tabanlı yöntemlerin çoğu çöker.
- Yöntemi seçin. Kararı veriye bırakın: etiket var mı, kaç boyut var, veri kümesi ne kadar büyük, zaman önemli mi?
- Dürüstçe değerlendirin. Dengesiz veride doğruluk oranı neredeyse hiçbir şey söylemez. Kesinlik-duyarlılık (precision-recall) eğrileri, alarmlarınızın ne kadarının gerçek olduğunu gösterdiği için genellikle ROC eğrilerinden daha bilgilendiricidir.
- Devreye alın ve izleyin. Neyin normal sayıldığı zamanla değişir; bu yüzden modelin düzenli olarak yeniden eğitilmesi, alarm oranının da takip edilmesi gerekir.
İşi zorlaştıranlar
- Dengesiz veri. Aşırı örnekleme, eksik örnekleme ve maliyete duyarlı öğrenme, modelin nadir sınıfı görmezden gelmesini engellemeye yardımcı olur.
- Kavram kayması. Müşteri davranışı, ağ trafiği ve makine aşınması değişir. Hiç güncellenmeyen bir model, normal davranışı yavaş yavaş alarm olarak görmeye başlar ya da tam tersi olur.
- Yanlış alarmlar. Durmadan "kurt geldi" diye bağıran bir alarm sistemi bir süre sonra görmezden gelinir. Dikkatli eşik ayarı, birden fazla yöntemin birlikte kullanılması ve sınırdaki durumlar için bir insan kontrolü, alarm sayısını yönetilebilir tutar.
Pratikte yöntem seçimi genellikle sanıldığından daha az önemlidir. Emeğin çoğu, sizin verinizde "normal"in ne anlama geldiğini anlamaya ve alarmları alan insanların ne kadar yanlış alarma katlanabileceğine karar vermeye gider.



