6 puan yazan GN⁺ 2025-01-07 | 1 yorum | WhatsApp'ta paylaş
  • Akış ve IoT verileri arttıkça zaman serisi anomali tespiti, siber güvenlik, finans piyasaları, kolluk kuvvetleri ve sağlık gibi alanlarda normali anormalden ayıran temel bir analiz görevi haline geldi
  • İstatistik merkezli geleneksel anomali tespiti ile son dönemdeki makine öğrenimi yaklaşımları iç içe geçtikçe, zaman serilerinin zamansal sırasını ve yapısını yansıtan bir sınıflandırma şemasına ihtiyaç doğdu
  • Anomaliler yalnızca tekil değerlerde değil, alt dizilerde de ortaya çıkabilir; nokta anomalisi, bağlamsal anomali ve kolektif anomali ancak çevredeki örüntüler ve zamansal bağlam birlikte incelenirse ayırt edilebilir
  • Yöntemlerin çoğu ön işleme → tespit modeli → skorlama → son işleme hattını izler; zaman serisi sliding window ile matrise dönüştürüldükten sonra anomali skoru hesaplanır
  • Bu inceleme, yöntemleri mesafe tabanlı, yoğunluk tabanlı ve tahmin tabanlı olarak düzenleyerek farklı veri kümeleri, baseline'lar ve değerlendirme ölçütleri kullanan araştırma toplulukları arasındaki karşılaştırma kopukluğunu azaltmayı amaçlıyor

Zaman serisi anomali tespiti neden zor?

  • Zaman serisi, zamana göre kaydedilmiş gerçek değerlerden oluşan sıralı bir dizidir; sıra zaman yerine açı, kütle veya konum gibi boyutlara bağlıysa veri serisi ya da veri dizisi ifadeleri de kullanılabilir
  • Astronomi, biyoloji, ekonomi, enerji bilimi, mühendislik, çevre bilimi, tıp, sinirbilim ve sosyal bilimler dahil birçok alanda zaman serisi analizi gereklidir
  • Veri üretim sürecinin karmaşıklığı, ölçüm sistemlerinin kusurları ve kötü niyetli aktörlerle etkileşim, toplanan verilerde anormal olaylar oluşturabilir
  • IoT uygulamalarının yaygınlaşmasıyla üretilen zaman serileri arttıkça, zaman serisi koleksiyonları içinde bulunması gereken anomalilerin de artması bekleniyor
  • Anomali, önceki gözlem verilerine dayalı normallik ya da beklenen davranışla uyuşmayan veri noktası veya nokta grubu anlamına gelir
    • outlier, novelty, exception, peculiarity, aberration, deviant ve discord gibi terimler de birlikte kullanılır
    • Uygulamaya göre anomali, kaldırılması veya düzeltilmesi gereken bir gürültü olabileceği gibi arıza ya da davranış değişimi gibi sonraki analizlerin konusu olan bir ilgi olayı da olabilir

Anomali tanımı ve türleri

  • Anomali için tek ve evrensel olarak kabul edilmiş kesin bir tanım yoktur
  • Geleneksel olarak anomali, dağılımdaki çoğu örnekten belirgin biçimde sapan ve diğer verilerden farklı bir mekanizma tarafından üretilmiş olabileceğini düşündüren gözlemdir
  • Uzman sistemin nasıl çalıştığını tam olarak biliyorsa, normal durumun dağılımını ve parametrelerini belirleyip ortalamadan 3 standart sapmadan fazla uzaklaşan noktaları anomali olarak işaretleyebilir
  • Gerçek problemlerde veri üretim dağılımını ve çıktı üzerinde etkili çeşitli etkenleri tam olarak bilmek zordur; pratikteki dağılımlar da karmaşık olduğundan yalnızca uzmanın tanımladığı ortalamaya uzaklığa bakarak anomalileri saptamak güçtür
  • Hesaplama gücündeki ilerleme sayesinde ham veriden dağılım tahmin edip, uzman bilgisi olmadan algoritmaların anomali tespiti yapabildiği yaklaşımlar mümkün hale geldi
    • Bu yöntemler veri kümesinin kalitesine ve bağlamına güçlü biçimde bağlıdır
  • Üç zaman serisi anomalisi

    • Nokta anomalisi (point anomaly): Verinin geri kalanından açıkça sapan tek bir veri noktası
    • Bağlamsal anomali (contextual anomaly): Genel dağılımın beklenen aralığında olsa da belirli bir pencere gibi bir bağlam içinde beklenen dağılımdan sapan veri noktası
    • Kolektif anomali (collective anomaly): Tipik olarak gözlenen örüntüyü tekrar etmeyen nokta dizisi
    • Nokta anomalisi ve bağlamsal anomali point-based anomaly olarak, kolektif anomali ise sequence-based anomaly olarak sınıflandırılır
    • Tüm dizi tespiti, tüm zaman serisinin kendisini tek bir değerlendirme nesnesi alan alt dizi anomalisi tespiti örneğidir ve normal sensörler arasından anormal sensörleri bulmaya yönelik sensör arıtma ortamlarında kullanılır

Veri boyutu ve öğrenme kurulumu

  • Tek değişkenli zaman serisi, tek bir boyutta gerçek değerlerin sıralı biçimde dizilmesidir ve anomaliler tek bir özelliğe göre tespit edilir
  • Çok değişkenli zaman serisi, aynı uzunlukta birden çok sıralı dizi kümesi ya da gerçek değerli vektörlerin sıralı dizisidir
    • Çok değişkenli durumda tek tek özellik değerleri normal görünebilirken tüm dizi anormal olabilir
    • Alt diziler, tek değişkenlide vektör; çok değişkenlide ise her satırı bir boyutun alt dizisi olan matris olarak temsil edilebilir
  • Gözetimsiz, yarı gözetimli ve gözetimli tespit

    • Gözetimsiz yaklaşım, hangi anomalilerin tespit edilmesi gerektiğine dair uzman bilgisinin olmadığı durumlarda kullanılır
    • Bilinen anomalilerden oluşan büyük bir koleksiyon olmadan çalışabilir
    • Bilinmeyen anormal davranışları otomatik olarak tespit edebilir
    • Sistem durum izlemesi ya da geçmiş zaman serisi madenciliğinde kullanılabilir
    • Yarı gözetimli yaklaşım, uzmanın sağladığı normal dizi örneklerine dayanarak anomali tespiti yapar
    • Literatürde bu kategoriyi gözetimsiz olarak adlandıran çok sayıda çalışma da vardır
    • Ancak normal örneklere dair ön bilgi gerektirdiği için tamamen gözetimsiz yöntemlerle aynı kategoriye koymanın zor olduğunu savunan bir ayrım da bulunur
    • Gözetimli yaklaşım, uzmanın tespit edilecek örüntüyü tam olarak bildiği ve etiketli anomali zaman serisi koleksiyonunun mevcut olduğu durumu ifade eder
    • Anormal alt diziler, anomali alt dizisinden önce gelen alt diziler kullanılarak tahmin edilebilir
    • Bu tür öncü alt diziler anomaly precursor olarak adlandırılabilir

Ortak tespit hattı

  • Zaman serisi anomali tespiti algoritmaları genel olarak ön işleme → tespit yöntemi → skorlama → son işleme akışını izler
  • Ön işleme aşamasında, zaman serisini sliding window parçalarının satırlardan oluştuğu bir matrise dönüştüren pencere tabanlı yaklaşım yaygın biçimde görülür
    • Ek ön işleme adımları istatistiksel özellik çıkarımı, makine öğrenimi modeli uyarlama ya da sinir ağı kurma gibi işlemlere göre değişir
  • Tespit aşamasında, işlenmiş veri kümesi üzerinde mesafe hesaplama, sınıflandırma hiperdüzlemi uyarlama veya üretilen alt dizilerle özgün alt dizileri karşılaştırma gibi yöntemler uygulanır
  • Skorlama aşamasında, tespit sonuçları her alt dizinin anormalliğini gösteren gerçek değerli bir anomali skoruna dönüştürülür
    • Bu skor, tek tek noktaların skorlarını çıkarsamak için kullanılır
    • Elde edilen skor zaman serisi, özgün zaman serisiyle aynı uzunluğa sahiptir
  • Son işleme aşamasında, anomali skoru zaman serisinden anormal noktalar ya da aralıklar çıkarılır
    • Genellikle bir eşik belirlenir ve skoru eşiği aşan noktalar anomali olarak işaretlenir

Süreç merkezli sınıflandırma şeması

  • Zaman serisi anomali tespiti yöntemleri genel olarak mesafe tabanlı, yoğunluk tabanlı ve tahmin tabanlı olarak ayrılır
  • İkinci seviye sınıflandırma birbirini dışlayan kategoriler değildir
    • Bir model zaman serisi verisini sıkıştırırken aynı anda discord tabanlı bir tanımlama stratejisini de kullanabilir
  • Mesafe tabanlı yöntemler

    • Mesafe tabanlı yöntemler, ham zaman serisinin sayısal değerlerini mesafe ölçütleriyle karşılaştırarak anomali tespiti yapar
    • Genel olarak aynı uzunluktaki iki dizi arasındaki d(A, B) mesafesi tanımlanır ve iki dizi aynıysa mesafe 0 olur
    • Yaygın kullanılan mesafeler Euclidean distance ve Z-normalized Euclidean distance'tır
    • Dynamic Time Warping(DTW), hizalama uyumsuzluğu sorunlarını ele almak için sıkça kullanılır
    • Başlıca alt kategoriler yakınlık tabanlı, kümeleme tabanlı ve discord tabanlı yöntemlerdir
      • Yakınlık tabanlı (proximity-based): Alt dizinin yakın komşularından ne kadar izole olduğuna göre anomali olup olmadığına karar verilir
      • Kümeleme tabanlı (clustering-based): Alt dizinin öğrenilmiş kümelere ne ölçüde uymadığı, kümelere olan uzaklığı veya küme kapasitesi gibi bilgiler anomali skoru hesaplamasında kullanılabilir
      • Discord tabanlı (discord-based): En yakın komşusuna olan mesafesi tüm alt diziler arasında en büyük olan discord'u verimli biçimde bulur
  • Yoğunluk tabanlı yöntemler

    • Yoğunluk tabanlı yöntemler, zaman serisini yalnızca basit bir sayısal dizi olarak değil, nokta veya alt dizi uzayının yoğunluğunun ölçülebildiği temsiller üzerinde işler
    • Temsiller grafikler, ağaçlar, histogramlar ve dilbilgisi türetim kuralları gibi çeşitli biçimlerde olabilir
    • Başlıca alt kategoriler dağılım tabanlı, grafik tabanlı, ağaç tabanlı ve kodlama tabanlı yöntemlerdir
      • Dağılım tabanlı (distribution-based): Nokta ya da alt dizilerin istatistiksel özelliklerinden dağılım oluşturulur; normal alt dizi özelliklerinin dağılımı üzerinden ilgili istatistiksel model yeniden kurularak anormallik çıkarımı yapılır
      • Grafik tabanlı (graph-based): Zaman serileri ve alt diziler grafik olarak temsil edilir; düğüm/kenar ağırlıkları veya düğüm derecesi gibi grafik özellikleriyle anomali tespit edilir
      • Ağaç tabanlı (tree-based): Noktalar ya da alt diziler ağaç yapısıyla bölünür ve ağaç derinliği gibi istatistikler ve özellikler üzerinden anomali belirlenir
      • Kodlama tabanlı (encoding-based): Zaman serisi, bağlamdan bağımsız ayrık semboller ya da durum dizileri olarak yorumlanır; çıkarılan sembollerin dilbilgisi kuralları gibi yapılar kullanılarak anomali tespiti yapılır
  • Tahmin tabanlı yöntemler

    • Tahmin tabanlı yöntemler, eğitim zaman serisi ya da alt dizilerine dayanarak beklenen normal davranışı tahmin eder ve buna göre anomali tespiti yapar
    • Normal verinin tahmin edilmesinin kolay, anomalilerin ise beklenmedik olduğu için tahmin hatasının büyük olacağı varsayımına dayanır
    • Bu varsayım, eğitim kümesinde hiç anomali olmadığında ya da çok az olduğunda geçerlidir
    • Tahmin tabanlı yöntemler genellikle yarı gözetimli kurulumlarda daha uygundur
    • Başlıca alt kategoriler öngörü tabanlı ve yeniden yapılandırma tabanlı yöntemlerdir
      • Öngörü tabanlı (forecasting-based): Belirli bir zamandan önceki noktaları veya alt dizileri girdi olarak alıp sonraki değeri ya da alt diziyi tahmin eder; gerçek değer ile tahmin arasındaki fark anomali skoru olarak kullanılır
      • Yeniden yapılandırma tabanlı (reconstruction-based): Girdi zaman serisini veya alt diziyi daha küçük bir gizil uzaya sıkıştırıp yeniden kurar; girdi ile yeniden yapılandırma sonucu arasındaki fark anomali skoru olarak kullanılır

Değerlendirme ve araştırma karşılaştırmalarındaki kopukluk

  • Birçok araştırma alanı, farklı veri kümeleri, baseline'lar ve değerlendirme ölçütleri kullandığı için büyük ölçüde birbirinden kopuktur
  • Yeni algoritmalar çoğu zaman yalnızca yeterince temsil gücü olmayan bazı yaklaşımlarla karşılaştırılır; bu da belirli kullanım senaryoları için en iyi yaklaşımı bulmayı zorlaştırır
  • Süreç merkezli sınıflandırma şeması, çeşitli tespit yöntemlerini benzer yaklaşımlara sahip algoritma aileleri altında gruplayıp karşılaştırmayı mümkün kılar
  • Literatür istatistikleri, zaman içindeki yaklaşım türleri ile araştırma alanlarındaki eğilimleri gösterir
  • Ortak değerlendirme zemini olarak kullanılabilecek mevcut benchmark'lar ile zaman serisi anomali tespiti değerlendirme ölçütlerinin güçlü ve zayıf yanları ile sınırlamaları birlikte özetlenir

1 yorum

 
GN⁺ 2025-01-07
Hacker News yorumları
  • UCR Matrix Profile da bilinmeye değer
    Matrix Profile, zaman serisi analizinde değeri az bilinen araçlardan biri ve çok verimli. Geleneksel tekniklerde olduğu gibi pencere boyutu ve eşik değerleriyle çok fazla oynamadan motifleri ve aykırı değerleri bulmak için iyi uygundur; üretim sensörü verileri, EKG analizi, deprem algılama gibi birçok alanda da sağlam şekilde çalışır
    https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
    • Pencere boyutunu ayarlamak gerekmediği ifadesi doğru değil. Matrix Profile pencere boyutuna çok büyük ölçüde bağımlıdır
    • MP en iyi tek değişkenli yöntemlerden biri, ama aslında yazının içinde de bahsediliyor
    • Paylaşılan içerikten çok tanıtım metni daha ilginç; gerçi web sitesi epey kötü görünüyor
      Aynı araştırma ekibinin hazırladığı şu kaynak daha iyi bir tanıtım materyali
      https://matrixprofile.org/
    • 6.2.1 bölümünde ele alınıyor
  • Prometheus’un offset fonksiyonu ile son birkaç haftanın ortalamasını recording rule olarak oluşturup kullanıyorum
    Sistem kullanımında haftalık mevsimsellik güçlü olduğu için, herhangi bir metriğin 1 hafta, 2 hafta, 3 hafta ve 4 hafta önceki değerlerinin ortalamasını alıp mevcut değerle karşılaştırıyorum. Böylece gündüz/gece ve hafta içi/hafta sonuna uygun biçimde alarm eşikleri dinamik olarak belirlenebiliyor ve haftanın günü ya da saat dilimi ortalamasıyla karşılaştırma yapılmış oluyor
    GitLab tarafında bu yaklaşımı daha ayrıntılı açıklayan bir yazı var
    https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
    Araya tatiller girince biraz karmaşıklaşıyor, ama Prometheus’ta gerçekten programlanabiliyor
    https://promcon.io/2019-munich/slides/improved-alerting-with...
    • Grafana grafiği çok kalabalık değilse neredeyse her zaman çizgi olarak 7 günlük offset değeri ekliyorum. Neyin normal olup olmadığını değerlendirmede çok işe yarıyor
    • GitLab’da şu da var: https://gitlab.com/gitlab-com/gl-infra/tamland
      Bu alanı iyi bildiğimi söyleyemem ama tahmin ile anomali tespiti epey ilişkili görünüyor. Yanılıyor olabilirim
  • Bu yazı son bir yıl civarındaki çalışmaları yansıtmıyor
    Örneğin eski iş arkadaşlarımın yaptığı Granite TS gibi zaman serisi tabanlı modeller, denediğimizde oldukça iyi çalışmıştı
    Anomali tespiti modellerini düşünme biçimiyle ilgili farkındalık, nihayetinde sonraki N adımı tahmin edip gerçek ölçüm değerlerinin beklenen değerden “yeterince farklı” olup olmadığına bakmak olduğuydu. Tek bir sinyalde bunu beyaz tahtaya çizmek kolay, ama çok değişkenli durumda da çalışması oldukça ilginç
    [1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
    • Benzer bir aydınlanma anını, aykırı değer tespiti için Isolation Forest okuduğumda yaşamıştım. Tahmin ortalamadan farklıysa bir şeyler yolunda değildir
      [0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
    • O farkındalıktan önce nasıl düşündüğünü merak ediyorum :D
    • Zaman serilerinde zero-shot model gerektiren bağlamı paylaşabilir misin merak ediyorum. Modeli uyduracak hiç geçmiş veri olmayan bir duruma henüz rastlamadım
  • Erken aşamadaki water tech alanında su akışını izleyen IoT cihazları var
    Bu cihazlar kaçakları tespit edebiliyor ve tesisat bazında su kullanımını tahmin edebiliyor. Kaçak tespiti nihayetinde zaman serisi aykırı değerlerini belirleme işi ve makalede bahsedilen dağılım tabanlı anomali tespiti bununla ilişkili. İlginç biçimde konutlarda, sıcak/soğuk mevsimler arasındaki boru sıcaklığı değişimleri nedeniyle birden fazla dağılım gerekebilir
  • Yakın zamanda bir performans izleme projesinde kendim anomali tespiti yapmaya çalıştım; fazla basit ya da aşırı karmaşık olmayan hazır açık kaynak/ücretli çözümlerin neredeyse hiç olmamasına şaşırdım. Bu alanda hâlâ keşfedilecek çok yer var
    • Prometheus ve Grafana stack’iyle anomali tespiti yapmaya dair epey kaynak var: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to.... Ancak bu, bahsettiğin “aşırı karmaşık” duruma giriyor olabilir
    • Hazır çözüm olmamasının nedeni, bunun hâlâ çözülmemiş bir problem olması. Genel olarak kullanışlı bir yaklaşım yok
    • Şu anda bunu hâlâ deniyoruz: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to... GitHub deposu da var
      Şimdiye kadar çok kötü değil, ama epey büyük kusurları var
    • Stajım sırasında makinelerin/sunucuların performans düşüşüne ya da beklenmeyen kesintiye girdiği anları izlemek için zaman serisi anomali tespiti gerekiyordu
      Microsoft’un C# kütüphanesiyle yapılabilir sanmıştım ama gerçekten berbattı. Birinin düzgün bir kütüphane uygulamaya zamanı ve isteği olsa güzel olurdu
    • Katılıyorum. Bizim şirket de sonunda kendi sistemini yaptı
      Bu alan, gelişmiş raporlama ve alarm mekanizmaları olan yapılandırılabilir bir SaaS ya da açık kaynak aracın çıkması için biçilmiş kaftan. Datadog’un da fena olmayan bir ürünü var ama oldukça pahalı
  • Bizim startup’ımız endüstriyel makinelerde zaman serisi anomali tespiti ile uğraşıyor

Özellikle varsayılan olarak çevrimdışı çalışacak şekilde tasarlıyoruz. Yapay zekayı ekipmana entegre ediyor, verileri üçüncü taraf sunuculara göndermediğimiz gibi kendi sunucularımıza da göndermiyoruz. Çünkü çevrimiçi bağlantının mümkün olmaması yüzünden kaçırılan çok sayıda müşteri fırsatı olduğunu düşünüyoruz. Endüstriyel makine izleme çözümleri arıyorsanız ya da güvenliğe duyarlı endüstriyel yazılımlarla ilgileniyorsanız konuşmak isteriz. Bir veri historian’ı da geliştiriyoruz: www.sentineldevices.com

  • Bu alana bağlılığım var. Yaklaşık 10 yıl önce yüksek lisansımda buna yakın bir konu olan çevrimiçi arıza tahmini üzerinde çalışmıştım: https://estudogeral.uc.pt/handle/10316/99218
    İstisnalar oluşmadan önce bunları algılayıp yanıt veren bir sistem yaptım; örneğin bir veritabanı tükenmesine yol açmadan önce istek hızını proaktif olarak düşürmenin, istisnanın olduğu gibi oluşmasına izin vermekten gerçekten daha iyi olmasını bekliyordum
    O dönemde bu alanda yapılacak gerçekten çok iş olduğunu hissetmiştim; yeniden üzerinde çalışamamış olmam biraz üzücü
  • Veri üretim sürecinin karmaşıklığı, ölçüm sistemlerinin kusurları ve kötü niyetli aktörlerle etkileşimin birleşerek anormal olgular üretmesi kritik nokta; çoğu durumda bununla başa çıkmak zor
    Bir diğer temel sorun da neyin anomali olup neyin olmadığını titiz ve kesin biçimde tanımlamak
  • Anomali tespiti neredeyse her sektöre katma değer sağlayabilir
    Temel ürün olmasa bile operasyon optimizasyonuna çoğu zaman yardımcı olur. Üretimde, bilgisayarlı görü ile montaj hattındaki hatalı ürünler ayıklanabilir; operasyonlarda ivmeölçer/sıcaklık sensörleri ve frekans analiziyle arıza belirtileri saptanarak kestirimci bakım yapılabilir. Satışta ise sayısal verilerin veya destek taleplerinin zaman serisi analiziyle nakit akışı, müşteri memnuniyeti vb. konulardaki yükseliş/düşüş sinyalleri görülebilir
  • Eamonn Keogh’a bakmak iyi olur. Zaman serisi anomali tespiti alanında çok ilginç çalışmalar yaptı