Podłącz i wykonaj modele uczenia maszynowego dla anomalii wizualnych w architekturze AWS Serverless

Wyobraź sobie, że masz dużą infrastrukturę różnego rodzaju urządzeń, które musisz regularnie konserwować lub dbać o to, aby nie były niebezpieczne dla otaczającego środowiska.

Jednym ze sposobów na osiągnięcie tego jest regularne wysyłanie ludzi w każde miejsce, aby sprawdzili, czy wszystko jest w porządku. Jest to w jakiś sposób wykonalne, ale także dość czasochłonne i kosztowne. A jeśli infrastruktura jest wystarczająco duża, możesz nie być w stanie pokryć jej w całości w ciągu roku.

Innym sposobem jest zautomatyzowanie tego procesu i umożliwienie weryfikacji zadań w chmurze. Aby tak się stało, musisz wykonać następujące czynności:

👉 Szybki proces uzyskiwania zdjęć urządzeń. Nadal mogą to zrobić osoby, ponieważ nadal znacznie szybciej jest zrobić tylko zdjęcie, jak wykonać wszystkie procesy weryfikacji urządzenia. Można to również zrobić za pomocą zdjęć zrobionych z samochodów, a nawet dronów, w takim przypadku staje się to znacznie szybszym i bardziej zautomatyzowanym procesem zbierania zdjęć.

👉Następnie musisz przesłać wszystkie uzyskane zdjęcia do jednego dedykowanego miejsca w chmurze.

👉 W chmurze potrzebujesz zautomatyzowanego zadania, które pobierze zdjęcia i przetworzy je za pomocą modeli uczenia maszynowego przeszkolonych w rozpoznawaniu uszkodzeń lub anomalii urządzeń.

👉 Wreszcie wyniki muszą być widoczne dla wymaganych użytkowników, aby można było zaplanować naprawę urządzeń z problemami.

Przyjrzyjmy się, jak możemy osiągnąć wykrywanie anomalii na podstawie obrazów w chmurze AWS. Amazon ma kilka gotowych modeli uczenia maszynowego, których możemy użyć do tego celu.

Jak stworzyć model do wykrywania anomalii wizualnych

Aby stworzyć model do wykrywania anomalii wizualnych, musisz wykonać kilka kroków:

Krok 1: Jasno zdefiniuj problem, który chcesz rozwiązać, oraz rodzaje anomalii, które chcesz wykryć. Pomoże to określić odpowiedni testowy zestaw danych, który będzie potrzebny do uczenia modelu.

Krok 2: Zbierz duży zestaw danych obrazów przedstawiających normalne i anomalne warunki. Oznacz obrazy, aby wskazać, które są normalne, a które zawierają anomalie.

Krok 3: Wybierz architekturę modelu odpowiednią do zadania. Może to obejmować wybranie wstępnie wytrenowanego modelu i dostosowanie go do konkretnego przypadku użycia lub utworzenie niestandardowego modelu od podstaw.

Krok 4: Wytrenuj model przy użyciu przygotowanego zbioru danych i wybranego algorytmu. Oznacza to wykorzystanie transferu uczenia się w celu wykorzystania wstępnie wyszkolonych modeli lub uczenie modelu od podstaw przy użyciu technik takich jak konwolucyjne sieci neuronowe (CNN).

Jak trenować model uczenia maszynowego

Źródło: aws.amazon.com

Proces uczenia modeli uczenia maszynowego AWS do wykrywania anomalii wizualnych zazwyczaj obejmuje kilka ważnych kroków.

# 1. Zbierz dane

Na początku musisz zebrać i oznaczyć dużym zestawem danych obrazów, które przedstawiają zarówno warunki normalne, jak i anomalie. Im większy zbiór danych, tym lepszy i dokładniejszy model można wyszkolić. Ale wymaga to również znacznie więcej czasu poświęconego na szkolenie modelu.

Zwykle chcesz mieć około 1000 zdjęć w zestawie testowym, aby mieć dobry początek.

#2. Przygotuj dane

Dane obrazu muszą zostać najpierw wstępnie przetworzone, aby modele uczenia maszynowego mogły je pobrać. Wstępne przetwarzanie może oznaczać różne rzeczy, takie jak:

  • Czyszczenie obrazów wejściowych do osobnych podfolderów, poprawianie metadanych itp.
  • Zmiana rozmiaru zdjęć w celu spełnienia wymagań rozdzielczości modelu.
  • Dystrybucja ich na mniejsze fragmenty obrazów w celu bardziej efektywnego i równoległego przetwarzania.

#3. Wybierz model

Teraz wybierz odpowiedni model, aby wykonać właściwą pracę. Wybierz wstępnie przeszkolony model lub możesz utworzyć model niestandardowy odpowiedni do wykrywania anomalii wizualnych w modelu.

#4. Oceń wyniki

Gdy model przetworzy Twój zestaw danych, zweryfikujesz jego działanie. Chcesz również sprawdzić, czy wyniki są zadowalające dla potrzeb. Może to oznaczać np., że wyniki są poprawne na ponad 99% danych wejściowych.

#5. Wdróż model

Jeśli jesteś zadowolony z wyników i wydajności, wdróż model z określoną wersją do środowiska konta AWS, aby procesy i usługi mogły zacząć z niego korzystać.

#6. Monitoruj i ulepszaj

Pozwól mu przejść przez różne zadania testowe i zestawy danych obrazu i stale oceniaj, czy parametry wymagane do poprawności wykrywania są nadal na swoim miejscu.

Jeśli nie, przeszkol model, uwzględniając nowe zestawy danych, w których model dostarczył nieprawidłowe wyniki.

Modele uczenia maszynowego AWS

Teraz spójrz na kilka konkretnych modeli, które możesz wykorzystać w chmurze Amazon.

Uznanie AWS

Źródło: aws.amazon.com

Rekognition to usługi analizy obrazu i wideo ogólnego przeznaczenia, które można wykorzystać w różnych przypadkach, takich jak rozpoznawanie twarzy, wykrywanie obiektów i rozpoznawanie tekstu. Przez większość czasu model rozpoznawania będzie używany do wstępnego generowania nieprzetworzonych wyników wykrywania w celu utworzenia jeziora danych zidentyfikowanych anomalii.

Zapewnia szereg gotowych modeli, z których można korzystać bez szkolenia. Rekognition zapewnia również analizę obrazów i filmów w czasie rzeczywistym z dużą dokładnością i niskim opóźnieniem.

Oto kilka typowych przypadków użycia, w których Rekognition jest dobrym wyborem do wykrywania anomalii:

  • Mieć przypadek użycia ogólnego przeznaczenia do wykrywania anomalii, takich jak wykrywanie anomalii w obrazach lub filmach.
  • Przeprowadzaj wykrywanie anomalii w czasie rzeczywistym.
  • Zintegruj swój model wykrywania anomalii z usługami AWS, takimi jak Amazon S3, Amazon Kinesis lub AWS Lambda.

A oto kilka konkretnych przykładów anomalii, które możesz wykryć za pomocą Rekognition:

  • Anomalie twarzy, takie jak wykrywanie wyrazu twarzy lub emocji poza normalnym zakresem.
  • Brakujące lub źle umieszczone obiekty w scenie.
  • Błędnie napisane słowa lub nietypowy układ tekstu.
  • Nietypowe warunki oświetleniowe lub nieoczekiwane obiekty w scenie.
  • Niewłaściwe lub obraźliwe treści na obrazach lub filmach.
  • Nagłe zmiany w ruchu lub nieoczekiwane wzorce ruchu.

AWS Lookout dla wizji

Źródło: aws.amazon.com

Lookout for Vision to model specjalnie zaprojektowany do wykrywania anomalii w procesach przemysłowych, takich jak linie produkcyjne i produkcyjne. Zwykle wymaga to wstępnego i końcowego przetwarzania kodu niestandardowego lub konkretnego wycięcia obrazu, zwykle wykonywanego przy użyciu języka programowania Python. Przez większość czasu specjalizuje się w niektórych bardzo szczególnych problemach na zdjęciu.

Wymaga niestandardowego szkolenia na zbiorze danych normalnych i nietypowych obrazów w celu utworzenia niestandardowego modelu do wykrywania anomalii. Nie jest tak skoncentrowany na czasie rzeczywistym; jest raczej przeznaczony do przetwarzania wsadowego obrazów, koncentrując się na dokładności i precyzji.

Oto kilka typowych przypadków użycia, w których Lookout for Vision jest dobrym wyborem, jeśli chcesz wykryć:

  • Wady wytwarzanych produktów lub identyfikacja awarii urządzeń na linii produkcyjnej.
  • Duży zbiór obrazów lub innych danych.
  • Anomalia w czasie rzeczywistym w procesie przemysłowym.
  • Anomaly zintegrowana z innymi usługami AWS, takimi jak Amazon S3 czy AWS IoT.

A oto kilka konkretnych przykładów anomalii, które można wykryć za pomocą Lookout for Vision:

  • Wady wytworzonych produktów, takie jak rysy, wgniecenia lub inne niedoskonałości, mogą mieć wpływ na jakość produktu.
  • Awarie sprzętu na linii produkcyjnej, takie jak wykrywanie uszkodzonych lub nieprawidłowo działających maszyn, które mogą powodować opóźnienia lub zagrożenia bezpieczeństwa.
  • Kwestie kontroli jakości na linii produkcyjnej obejmują wykrywanie produktów, które nie spełniają wymaganych specyfikacji lub tolerancji.
  • Zagrożenia bezpieczeństwa na linii produkcyjnej obejmują wykrycie przedmiotów lub materiałów, które mogą stanowić zagrożenie dla pracowników lub sprzętu.
  • Anomalie w procesie produkcyjnym, takie jak wykrywanie nieoczekiwanych zmian w przepływie materiałów lub produktów przez linię produkcyjną.

AWS Sagemaker

Źródło: aws.amazon.com

Sagemaker to w pełni zarządzana platforma do budowania, szkolenia i wdrażania niestandardowych modeli uczenia maszynowego.

To znacznie solidniejsze rozwiązanie. W rzeczywistości zapewnia sposób łączenia i wykonywania kilku wieloetapowych procesów w jeden łańcuch następujących po sobie zadań, podobnie jak mogą to zrobić funkcje krokowe AWS.

Ale ponieważ Sagemaker wykorzystuje do przetwarzania instancje EC2 ad-hoc, nie ma limitu 15 minut na przetwarzanie pojedynczego zadania, jak w przypadku funkcji lambda AWS w AWS Step Functions.

Możesz także wykonać automatyczne dostrajanie modelu za pomocą Sagemaker, co jest zdecydowanie cechą, która czyni go wyjątkową opcją. Wreszcie, Sagemaker może bez wysiłku wdrożyć model w środowisku produkcyjnym.

Oto kilka typowych przypadków użycia, w których SageMaker jest dobrym wyborem do wykrywania anomalii:

  • Konkretny przypadek użycia nieobjęty gotowymi modelami lub interfejsami API, a także jeśli musisz zbudować niestandardowy model dopasowany do konkretnych potrzeb.
  • Jeśli masz duży zestaw danych obrazów lub innych danych. Gotowe modele wymagają w takich przypadkach wstępnego przetwarzania, ale Sagemaker może to zrobić bez tego.
  • Jeśli musisz przeprowadzić wykrywanie anomalii w czasie rzeczywistym.
  • Jeśli potrzebujesz zintegrować swój model z innymi usługami AWS, takimi jak Amazon S3, Amazon Kinesis lub AWS Lambda.

A oto kilka typowych detekcji anomalii, które Sagemaker jest w stanie wykonać:

  • Wykrywanie oszustw w transakcjach finansowych, na przykład nietypowe wzorce wydatków lub transakcje wykraczające poza normalny zakres.
  • Cyberbezpieczeństwo w ruchu sieciowym, takie jak nietypowe wzorce przesyłania danych czy nieoczekiwane połączenia z serwerami zewnętrznymi.
  • Diagnostyka medyczna w obrazach medycznych, np. wykrywanie guzów.
  • Anomalie w działaniu sprzętu, takie jak wykrywanie zmian wibracji lub temperatury.
  • Kontrola jakości w procesach produkcyjnych, taka jak wykrywanie wad produktów lub identyfikacja odchyleń od oczekiwanych norm jakościowych.
  • Nietypowe wzorce zużycia energii.

Jak włączyć modele do architektury bezserwerowej

Wyszkolony model uczenia maszynowego to usługa w chmurze, która nie korzysta z żadnych serwerów klastrowych w tle; dzięki temu można go łatwo włączyć do istniejącej architektury bezserwerowej.

Automatyzacja odbywa się za pomocą funkcji lambda AWS, połączonych w wieloetapowe zadanie w usłudze AWS Step Functions.

Zazwyczaj wstępne wykrywanie jest potrzebne zaraz po zebraniu zdjęć i ich wstępnej obróbce na zasobniku S3. To tam wygenerujesz wykrywanie anomalii atomowych na obrazach wejściowych i zapiszesz wyniki w jeziorze danych, na przykład reprezentowanym przez bazę danych Athena.

W niektórych przypadkach to wstępne wykrycie nie jest wystarczające dla konkretnego przypadku użycia. Możesz potrzebować innego, bardziej szczegółowego wykrywania. Na przykład model początkowy (np. Rozpoznawanie) może wykryć jakiś problem w urządzeniu, ale nie jest możliwe wiarygodne określenie, jakiego rodzaju jest to problem.

W tym celu możesz potrzebować innego modelu o innych możliwościach. W takim przypadku można uruchomić inny model (np. Lookout for Vision) na podzbiorze obrazów, w których model początkowy zidentyfikował problem.

Jest to również dobry sposób na zaoszczędzenie części kosztów, ponieważ nie musisz uruchamiać drugiego modelu na całym zestawie zdjęć. Zamiast tego uruchamiasz go tylko na znaczącym podzbiorze.

Funkcje AWS Lambda obejmą całe takie przetwarzanie przy użyciu kodu Pythona lub JavaScript w środku. To zależy tylko od charakteru procesów i liczby funkcji lambda AWS, które będziesz musiał uwzględnić w przepływie. 15-minutowy limit maksymalnego czasu trwania wywołania lambda AWS określi, ile kroków taki proces musi zawierać.

Ostatnie słowa

Praca z modelami uczenia maszynowego w chmurze to bardzo interesująca praca. Jeśli spojrzysz na to z perspektywy umiejętności i technologii, przekonasz się, że potrzebny jest zespół o bardzo zróżnicowanych umiejętnościach.

Zespół musi zrozumieć, jak wyszkolić model, niezależnie od tego, czy jest to gotowy model, czy stworzony od podstaw. Oznacza to, że wiele matematyki lub algebry jest zaangażowanych w równoważenie wiarygodności i wydajności wyników.

Potrzebujesz również zaawansowanych umiejętności kodowania w Pythonie lub Javascript, baz danych i umiejętności SQL. A po zakończeniu całej pracy nad treścią potrzebne są umiejętności DevOps, aby podłączyć ją do potoku, który sprawi, że będzie to zautomatyzowane zadanie gotowe do wdrożenia i wykonania.

Zdefiniowanie anomalii i wytrenowanie modelu to jedno. Jednak wyzwaniem jest zintegrowanie tego wszystkiego w jeden funkcjonalny zespół, który może przetwarzać wyniki modeli i zapisywać dane w efektywny i zautomatyzowany sposób w celu udostępnienia ich użytkownikom końcowym.

Następnie sprawdź wszystko o rozpoznawaniu twarzy dla firm.