TakéOutlier detection, Detekce odlehlých hodnot, Novelty detectionPokročilý

Definice

Detekce anomálií je hledání datových bodů, událostí nebo průběhů, které se výrazně odlišují od naučeného obrazu běžného chování. Používá se při odhalování podvodných plateb, průniků do sítě, výpadků infrastruktury nebo vadných kusů ve výrobě. Typicky pracuje s velmi nevyváženými daty, kde anomálie tvoří zlomek procenta všech pozorování.

Kategorie: Strojové učeníAktualizováno

Proč se anomálie nedají hledat jako běžná klasifikace

Detekce anomálií řeší nepříjemnou asymetrii: normálních případů jsou miliony, těch zajímavých pár desítek. Klasický přístup přes klasifikaci vyžaduje dostatek označených příkladů obou tříd, jenže seznam možných poruch nikdy není úplný. Nový typ podvodu se ve trénovacích datech z podstaty nevyskytuje. Proto se většina metod učí popsat normál a za anomálii označí vše, co se do popisu nevejde.

Tři rodiny přístupů

Statistické a vzdálenostní metody

Statistické metody modelují rozdělení dat a měří, jak nepravděpodobné pozorování je: z-skóre, robustní varianty přes medián a MAD, kvantilové meze. Vzdálenostní a hustotní metody jako k-NN nebo Local Outlier Factor porovnávají bod s jeho okolím. Výhodou je srozumitelnost, slabinou vysoká dimenze, kde se vzdálenosti stírají.

Metody strojového učení

Isolation Forest izoluje body náhodným dělením prostoru a spoléhá na to, že odlehlý bod se oddělí po málo řezech. One-Class SVM obaluje normální data hranicí. Autoenkodér postavený na neuronové síti se naučí data zkomprimovat a zpět zrekonstruovat; velká rekonstrukční chyba signalizuje, že vstup nezapadá do naučené struktury.

Detekce v časových řadách

Časové řady přidávají sezónnost a trend. Model typu STL nebo SARIMA nejprve odečte očekávaný průběh a anomálie se hledají až ve zbytku. Bez toho systém hlásí poplach každou neděli v noci, kdy provoz přirozeně klesne.

Kolik stojí falešný poplach

Kvalita detektoru se neměří přesností. Při 0,1 % anomálií dosáhne model, který vždy řekne „normální“, 99,9 % accuracy a je k ničemu. Sledují se precision, recall, F1 a plocha pod PR křivkou. Zásadní je ekonomika chyb: zablokovaná legitimní platba stojí zákazníka, propuštěný podvod stojí peníze. Práh se proto nastavuje podle kapacity týmu, který alerty zpracovává, ne podle statistického optima. Přetížený operátor přestane alerty číst a systém ztrácí smysl.

Co detekci v provozu rozbíjí

Nejčastější příčinou degradace je drift: chování uživatelů i infrastruktury se mění, takže model naučený loni označuje dnešní normál za anomálii. Druhým problémem je kontaminace trénovací sady, když do „čistých“ dat prosáknou nezachycené anomálie a model je přijme za standard. Třetí je chybějící zpětná vazba: bez toho, aby analytik označil, co byl skutečný nález, nelze prahy ani model zlepšovat. Data proto obvykle procházejí ETL pipeline s verzovanými snímky, aby šlo model přetrénovat na definovaném období.

Příklady z praxe

  1. Podezřelá karetní transakce

    Platební brána porovnává každou transakci s profilem držitele karty: obvyklé částky, země, kategorie obchodníka, denní doba. Platba za 40 000 Kč v jiném časovém pásmu tři minuty po nákupu v Praze dostane vysoké skóre a jde k dodatečnému ověření. Systém neblokuje automaticky, protože cena falešného poplachu je ztracený zákazník.

  2. Isolation Forest nad metrikami serveru

    Tým sleduje latenci a chybovost API. Isolation Forest se natrénuje na dvou týdnech běžného provozu a v produkci skóruje minutové agregace. Model odhalí kombinaci, kterou pevný práh minul: latence zůstala v normě, ale zároveň klesl počet požadavků a stoupl podíl chyb 5xx.

    from sklearn.ensemble import IsolationForest
    
    # X_train: metriky z běžného provozu, X_new: poslední minuta
    model = IsolationForest(contamination=0.01, random_state=42)
    model.fit(X_train)
    
    skore = model.decision_function(X_new)   # nižší = podezřelejší
    nalez = model.predict(X_new)             # -1 = anomálie, 1 = normál

Časté omyly

MýtusNáš detektor má 99% přesnost, takže funguje skvěle.
Ve skutečnostiPři podílu anomálií pod jedno procento dosáhne stejné přesnosti i model, který nikdy nic nenajde. U silně nevyvážených dat vypovídají o kvalitě až precision, recall a PR křivka.
MýtusAnomálie znamená chyba nebo útok.
Ve skutečnostiAnomálie je jen statisticky neobvyklé pozorování. Může jít o vánoční špičku, marketingovou kampaň nebo nový velký zákazník. Interpretaci musí dodat člověk nebo doménová pravidla.
MýtusNa detekci anomálií je potřeba hluboká neuronová síť.
Ve skutečnostiV praxi často vyhrají robustní statistiky, sezónní dekompozice nebo Isolation Forest, protože se rychle přetrénují a jsou vysvětlitelné. Hluboké modely dávají smysl u obrazu, zvuku a vysokodimenzionálních dat.

Časté dotazy

Kolik dat je potřeba pro detekci anomálií?
Pro detekci anomálií je klíčové množství záznamů běžného provozu, ne počet anomálií. Většina metod se učí popsat normál, takže potřebují dostatek dat pokrývajících všechny pravidelné cykly: denní, týdenní a u sezónního byznysu i roční. Pravidlem palce jsou alespoň dva až tři úplné cykly, jinak model vyhodnotí pravidelný pokles jako poruchu. U označených dat naopak stačí i málo potvrzených nálezů, pokud slouží jen k ladění prahu a k ověření, kolik skutečných případů detektor zachytí.
Jak nastavit práh, aby alertů nebylo příliš mnoho?
Práh u detekce anomálií se v praxi neodvozuje ze statistického optima, ale z kapacity týmu. Nejprve se určí, kolik alertů denně dokáže služba reálně prošetřit, a práh se nastaví tak, aby se do tohoto rozpočtu vešel. Pomáhá skórování místo binárního výstupu, řazení podle závažnosti a slučování souvisejících alertů do jedné události. Práh se pak průběžně ladí podle poměru potvrzených nálezů k falešným poplachům, který zjistíte jen se zpětnou vazbou od operátorů.
Funguje detekce anomálií bez označených dat?
Detekce anomálií běžně funguje bez označených dat, protože většina algoritmů je neřízená nebo semi-řízená. Isolation Forest, Local Outlier Factor i autoenkodér se učí strukturu dat samy a označí odchylky. Označená data se přesto vyplatí sbírat průběžně: bez nich nelze změřit recall, tedy kolik skutečných incidentů systém přehlédl. Obvyklý postup je nasadit neřízený model, nechat analytiky výsledky potvrzovat a z posbíraných štítků později postavit přesnější řízený model nebo alespoň lépe kalibrovat práh.
Jak poznat, že model detekce anomálií přestal fungovat?
Zhoršující se model detekce anomálií se pozná podle několika signálů: náhle roste nebo klesá počet alertů bez odpovídající změny v provozu, klesá podíl potvrzených nálezů a analytici začnou alerty rutinně zavírat jako irelevantní. Doporučuje se sledovat rozdělení skóre v čase, ne jen počet překročení prahu. Posun celého rozdělení ukazuje drift dat. Standardní obranou je pravidelné přetrénování na klouzavém okně a takzvaný shadow běh nového modelu vedle stávajícího před přepnutím.

Zdroje

  1. Anomaly detection(otevře se v novém okně)Wikipedia
  2. NIST/SEMATECH e-Handbook of Statistical Methods(otevře se v novém okně)NIST

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.