Jak zbudować bezpieczny i skalowalny system wykrywania anomalii? – Część pierwsza

Wiktor Franus

Rozmawiałem z naszym ekspertem Wiktorem Franusem  zajmującymi się w ConnectPoint modułem Big data, który jest elementem Smart RDM. Zadałem trochę pytań, jeszcze więcej pojawiło się podczas rozmowy. W efekcie powstał ten materiał.

Jak zbudować bezpieczny i skalowalny system wykrywania anomalii – prosto o wcale nieprostych sprawach.

Dla mnie temat wykrywania anomalii jest nowy. Codziennie odkrywam możliwości jakie daje analiza danych, a jest ich tak dużo, że daleka droga przede mną żeby zgłębić przynajmniej część z nich. Postanowiłem podzielić się tym, czego dowiedziałem się dzięki specjalistom, z którymi pracuję i od których czerpię wiedzę.

Zacznijmy od tego co jest potrzebne, żeby móc szybko, efektywnie i właściwie analizować dane: wiedza i narzędzia.

Wiedza

Nie napiszę tutaj o doktoratach z zakresu analizy danych ani genialnych umiejętnościach tylko o wiedzy praktycznej zdobytej w ramach rozwiązywania wyzwań jakie klienci stawiają przed naszymi ekspertami.

Wiedza branżowa jest kluczowa dla efektywnego projektowania algorytmów. Pozwala na zrozumienie zależności pomiędzy różnymi czynnikami i dostosowywania modelu w taki sposób, aby uwzględnić wszystkie elementy mające wpływ na końcowy efekt analizy. Poziom dokładności i użyteczności informacji w dużej mierze zależy właśnie od specjalistycznej wiedzy osób, które zaprojektowały te algorytmy. Owszem można zastosować znane i często stosowane rozwiązania np. trzy sigma, ale spodziewane odchylenia w wynikach będą mocno odbiegały od tych , którą osiągamy w Smart RDM przy użyciu modułu Big Data.

Wiedza o tym jak przeprowadzić proces efektywnie również jest wynikiem doświadczeń składających się z wielu projektów, prób, porażek i sukcesów. Po pierwsze właściwe odwzorowanie danych. Żeby móc dostarczać użyteczne wyniki analiz musimy wiedzieć co i po co analizujemy. Dlatego najpierw przygotowujemy model każdego urządzenia, które mamy monitorować. Dane są następnie odpowiednio strukturyzowane, dzięki temu jesteśmy w stanie zlokalizować ich źródło, zaczynając od wysokiego poziomu (miasto, fabryka, hala, maszyna, turbina, węzeł cieplny), na pojedynczym podzespole kończąc.

Wiedza o tym po co badamy dane.  Analizę rozpatrujemy w dwóch aspektach, monitorowania długookresowych zależności oraz wykrywania pojedynczych zdarzeń (np. awarii). Monitorowanie zależności polega między innymi na śledzeniu zmian w czasie, trendów oraz wykrywaniu długoterminowych anomalii w danych. Aby monitorować i analizować zmiany w czasie, zbieramy, archiwizujemy i przetwarzamy dane z urządzeń w postaci szeregów czasowych, to znaczy, dane przechowywane są wraz ze znacznikami czasowymi typu data, godzina. Dodatkowo przechowujemy dane statyczne czyli stałe parametry, które się nie zmieniają lub zmieniają się bardzo rzadko. Mogą to być elementy charakterystyki urządzenia, które parametryzują nasze modele. O wykrywaniu pojedynczych zdarzeń napiszę później, ponieważ ważny będzie jeszcze jeden aspekt.

Wiedza o tym jak dostarczyć wyniki w najkrótszym możliwym czasie z zachowaniem wysokiego poziomu użyteczności informacji. Wszystkie odczyty przechowujemy w centralnym repozytorium, co umożliwia zbudowanie bezstratnej historii oraz badanie w szerokim zakresie czasowym. W ten sposób uzyskujemy dostęp do bardzo dużej ilości danych, co równocześnie jest korzyścią ale również swojego rodzaju zagrożeniem dla efektywności procesu analizy.

Nasi eksperci wypracowali model, który zapewnia optymalne wykorzystanie tak dużych zbiorów. Dane pobieramy z repozytorium w postaci zagregowanej (np. średnie, mediany czy ekstrema godzinowe lub dobowe), dobranej do wymagań ekonomiki rozwiązania. W ten sposób ilość danych pobieranych i co za tym idzie konsumpcja zasobów serwerowych czy chmurowych wykorzystywanych do przeprowadzania analiz jest optymalizowana. Następnie dane sprawdzamy pod kątem błędnych wartości. W procesie najpierw weryfikujemy dane pod kątem występowania anomalii, w następnym kroku odfiltrowujemy te anomalie. Przy czym ważne, że z naszej perspektywy anomalią są dane wykraczające poza określone wartości statystyczne lub brak danych.

Wiedza jak operować danymi, aby uzyskać wiarygodne wyniki analiz. W procesie przygotowywania danych do analizy, tworzymy dodatkowe „braki” poprzez usunięcie danych odbiegających od norm, następnie wykorzystując interpolację liniową* uzupełniamy szeregi danych. Tworzymy w ten sposób wyczyszczone dane, które zapisujemy w repozytorium.

Dlaczego interpolacja liniowa? Ze względu na wydajność i jakość wyników. Przy działaniu na dużą skalę, gdzie równocześnie analizowane są tysiące czy setki tysięcy elementów składowych infrastruktury Klienta, ważna jest wydajność rozwiązania. System ma dostarczać informacje w możliwie najkrótszym czasie. Zbyt złożone rozwiązania wydłużyłyby proces bez znaczącej poprawy jakości wyników.

Wiedzę branżową wykorzystujemy, gdy algorytmy wykrywają anomalie na podstawie zależności między danymi, odchyleń od wartości teoretycznych (np. krzywa grzewcza, krzywa mocy) oraz w procesie odpowiedniego kategoryzowania anomalii – np. w przypadku węzłów ciepłowniczych duże oscylacje przepływu w krótkim okresie mogą wskazywać na złe ustawienia parametrów regulacji, a w przypadku turbin wiatrowych odchyłka mocy rzeczywistej od teoretycznej o potencjalnym uszkodzeniu.

Tutaj wrócę do monitorowania i analizowania zdarzeń – jest to oddzielny proces. Przykładem jest wykrywanie awarii, podczas którego działamy na komplecie danych, nie agregujemy ich i nie uśredniamy. Możemy ten proces przeprowadzić w ten sposób ponieważ działamy na poziomie repozytorium i nie wykorzystujemy dodatkowych zasobów.

Na tym się zatrzymam. Jak wykorzystujemy tę wiedzę u naszych klientów możecie przeczytać w innych artykułach blogowych, case studies oraz na stronie www.smartrdm.com.

Ale to nie koniec. Żeby powstał moduł big data w rozwiązaniu dla klientów, potrzebne było złożenie wszystkich elementów w całość, czyli narzędzia.

W drugiej części artykułu opiszę właśnie narzędzia z których korzysta moduł Big Data i proces przeprowadzania analizy.

Wywiad przeprowadził: Jakub Ładyński

* Interpolacja liniowa metoda pozwalająca wyznaczyć przybliżone wartości funkcji w danym przedziale,  poprzez połączenie punktów znajdujących się na końcach tego przedziału linią prostą.