Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zwiększaj oszustwa przy użyciu danych syntetycznych w Amazon SageMaker

Opracowywanie i szkolenie skutecznych modeli oszustw opartych na uczeniu maszynowym (ML) wymaga dostępu do dużych ilości danych wysokiej jakości. Pozyskiwanie tych danych jest trudne, ponieważ dostępne zestawy danych są czasami niewystarczająco duże lub wystarczająco bezstronne, aby pożytecznie trenować model uczenia maszynowego i mogą wymagać znacznych kosztów i czasu. Przepisy i wymagania dotyczące prywatności dodatkowo uniemożliwiają wykorzystanie lub udostępnianie danych nawet w organizacji korporacyjnej. Proces autoryzacji wykorzystania i dostępu do wrażliwych danych często opóźnia lub wykoleja projekty ML. Alternatywnie możemy stawić czoła tym wyzwaniom, generując i wykorzystując dane syntetyczne.

Dane syntetyczne opisują sztucznie utworzone zestawy danych, które naśladują zawartość i wzorce w oryginalnym zbiorze danych w celu uwzględnienia ryzyka regulacyjnego i zgodności, czasu i kosztów pozyskiwania. Generatory danych syntetycznych wykorzystują rzeczywiste dane do poznania odpowiednich cech, korelacji i wzorców w celu wygenerowania wymaganych ilości danych syntetycznych odpowiadających statystycznym właściwościom pierwotnie pozyskanego zbioru danych.

Syntetyczne dane są używane w środowiskach laboratoryjnych od lat ponad dwie dekady; rynek ma dowody na użyteczność, która przyspiesza adopcję w sektorach komercyjnym i publicznym. Gartnera przewiduje że do 2024 r. 60 procent danych wykorzystywanych do opracowywania systemów uczenia maszynowego i rozwiązań analitycznych będzie generowanych w sposób syntetyczny, a wykorzystanie danych syntetycznych będzie nadal znacznie wzrastać.

Financial Conduct Authority, brytyjski organ regulacyjny, potwierdza że „Dostęp do danych jest katalizatorem innowacji, a syntetyczne dane finansowe mogą odgrywać rolę we wspieraniu innowacji i umożliwianiu nowym podmiotom opracowywania, testowania i demonstrowania wartości nowych rozwiązań”.

Amazon SageMaker GroundTruth obecnie obsługuje generowanie danych syntetycznych oznaczonych syntetycznych danych obrazu. W tym wpisie na blogu opisano generowanie danych syntetycznych w formie tabelarycznej. Dane strukturalne, takie jak pojedyncze i relacyjne tabele, oraz dane szeregów czasowych to typy najczęściej spotykane w analityce korporacyjnej.

To jest dwuczęściowy wpis na blogu; w części pierwszej tworzymy dane syntetyczne i oceniamy ich jakość część druga.

W tym poście na blogu dowiesz się, jak korzystać z biblioteki open source ydata-syntetyczny i Notatniki AWS SageMaker do syntezy danych tabelarycznych dla przypadku użycia oszustwa, w którym nie mamy wystarczającej liczby oszukańczych transakcji, aby wyszkolić model oszustwa o wysokiej dokładności. Omówiono w nim ogólny proces uczenia modelu oszustwa pisać.

Omówienie rozwiązania

Celem tego samouczka jest synteza klasy mniejszości wysoce niezrównoważonego zestawu danych oszustw związanych z kartami kredytowymi przy użyciu zoptymalizowanego generatywna sieć przeciwstawna (GAN) nazywa WGAN-GP uczyć się wzorców i właściwości statystycznych oryginalnych danych, a następnie tworzyć nieskończone próbki danych syntetycznych, które przypominają oryginalne dane. Proces ten można również wykorzystać do ulepszenia oryginalnych danych poprzez próbkowanie w górę rzadkich zdarzeń, takich jak oszustwa, lub generowanie przypadków skrajnych, których nie ma w oryginale.

Korzystamy z zestawu danych dotyczących oszustw związanych z kartami kredytowymi, opublikowanego przez ULB, który można pobrać z Kaggle. Generowanie danych syntetycznych dla klasy mniejszościowej pomaga rozwiązać problemy związane z niezrównoważonymi zbiorami danych, co może pomóc w opracowaniu dokładniejszych modeli.

Korzystamy z usług AWS, w tym Amazon SageMaker i Amazon S3, które wiążą się z kosztami korzystania z zasobów chmury.

Skonfiguruj środowisko programistyczne

SageMaker zapewnia zarządzaną instancję notebooka Jupyter do budowania modeli, szkolenia i wdrażania.

Wymagania wstępne:

Musisz mieć konto AWS, aby uruchomić SageMaker. Możesz dostać rozpoczęty z SageMaker i spróbuj praktyczne tutoriale.

Aby uzyskać instrukcje dotyczące konfigurowania środowiska pracy Jupyter Notebook, zobacz Rozpocznij korzystanie z instancji notebooka Amazon SageMaker.

Krok 1: Skonfiguruj instancję Amazon SageMaker

  1. Zaloguj się do konsoli AWS i wyszukaj „SageMaker”.
  2. Wybierz Studio.
  3. Wybierz Instancje notebooków na lewym pasku i wybierz Utwórz instancję notesu.
  4. Na następnej stronie (jak pokazano na poniższym obrazku) wybierz konfiguracje maszyny wirtualnej (VM) zgodnie z własnymi potrzebami i wybierz Utwórz instancję notesu. Zauważ, że użyliśmy maszyny wirtualnej zoptymalizowanej pod kątem uczenia maszynowego bez GPU i 5 GB danych, ml.t3.medium z systemem Amazon Linux 2 i jądrem Jupyter Lab 3.
    Utwórz instancję notesu
  5. Instancja notatnika będzie gotowa do użycia w ciągu kilku minut.
  6. Wybierz Otwórz JupyterLab Wystrzelić.
    Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  7. Teraz, gdy mamy JupyterLab z naszymi wymaganymi specyfikacjami, zainstalujemy bibliotekę syntetyczną.
pip install ydata-synthetic

Krok 2: Pobierz lub wyodrębnij prawdziwy zestaw danych, aby utworzyć dane syntetyczne

Pobierz dane referencyjne z Kaggle albo ręcznie, tak jak tutaj, albo programowo przez Kaggle API, jeśli masz konto Kaggle. Jeśli przejrzysz ten zestaw danych, zauważysz, że klasa „oszustwo” zawiera znacznie mniej danych niż klasa „nie oszustwo”.

Jeśli użyjesz tych danych bezpośrednio do przewidywania uczenia maszynowego, modele zawsze mogą nauczyć się przewidywać „nie oszustwo”. Model z łatwością będzie miał wyższą dokładność w przypadkach niezwiązanych z oszustwami, ponieważ przypadki oszustw są rzadkie. Ponieważ jednak naszym celem w tym ćwiczeniu jest wykrywanie przypadków oszustw, zwiększymy numery klas oszustw za pomocą danych syntetycznych wzorowanych na rzeczywistych danych.

Utwórz folder danych w JupyterLab i prześlij do niego plik danych Kaggle. Umożliwi to korzystanie z danych w notatniku od czasu SageMaker pochodzi z przechowywania które określiłbyś podczas tworzenia instancji notatnika.

Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Ten zestaw danych ma rozmiar 144 MB

Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Następnie możesz odczytać dane przy użyciu standardowego kodu za pośrednictwem biblioteki pandas:

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

Dane służące do wykrywania oszustw mają określone cechy, a mianowicie:

  • Duża nierównowaga klas (zwykle w kierunku punktów danych niezwiązanych z oszustwem).
  • Obawy związane z prywatnością (ze względu na obecność danych wrażliwych).
  • Pewien dynamizm polegający na tym, że złośliwy użytkownik zawsze stara się uniknąć wykrycia przez systemy monitorujące oszukańcze transakcje.
  • Dostępne zestawy danych są bardzo duże i często nieoznaczone.

Teraz, po sprawdzeniu zbioru danych, przefiltrujmy klasę mniejszości (klasę „oszustwa” ze zbioru danych kart kredytowych) i wykonajmy przekształcenia zgodnie z wymaganiami. Możesz sprawdzić przekształcenia danych z tego notatnik.

Kiedy ten zestaw danych klasy mniejszościowej jest syntetyzowany i dodawany z powrotem do oryginalnego zestawu danych, umożliwia wygenerowanie większego zsyntetyzowanego zestawu danych, który rozwiązuje brak równowagi w danych. Możemy osiągnąć większą dokładność przewidywania przez szkolenie modelu wykrywania oszustw przy użyciu nowego zestawu danych.

Zsyntetyzujmy nowy zestaw danych o oszustwach.

Krok 3: Wytrenuj syntezatory i stwórz model

Ponieważ dane są łatwo dostępne w SageMaker, nadszedł czas, aby uruchomić nasze syntetyczne modele GAN.

Generatywna sieć kontradyktoryjna (GAN) składa się z dwóch części:

Połączenia generator uczy się generować wiarygodne dane. Wygenerowane instancje stają się negatywnymi przykładami szkoleniowymi dla dyskryminatora.

Połączenia dyskryminator uczy się odróżniać fałszywe dane generatora od prawdziwych. Dyskryminator karze generator za uzyskiwanie niewiarygodnych wyników.

Kiedy rozpoczyna się trening, generator generuje oczywiście fałszywe dane, a dyskryminator szybko uczy się rozpoznawać, że są fałszywe. W miarę postępu szkolenia generator zbliża się do wytworzenia danych wyjściowych, które mogą oszukać dyskryminatora. Wreszcie, jeśli trening generatora przebiega dobrze, dyskryminator staje się coraz gorszy w rozróżnianiu między prawdą a fałszem. Zaczyna klasyfikować fałszywe dane jako prawdziwe, a ich dokładność maleje.

Zarówno generator, jak i dyskryminator są sieciami neuronowymi. Wyjście generatora jest podłączone bezpośrednio do wejścia dyskryminatora. Przez propagacja wsteczna, klasyfikacja dyskryminatora dostarcza sygnału, którego generator używa do aktualizacji swoich wag.

Krok 4: Wypróbuj dane syntetyczne z syntezatora

Po skompilowaniu i przeszkoleniu modelu nadszedł czas na próbkowanie wymaganych danych przez podanie szumu do modelu. Dzięki temu możesz wygenerować tyle danych syntetycznych, ile chcesz.

W takim przypadku generujesz taką samą ilość danych syntetycznych, jak ilość rzeczywistych danych, ponieważ ułatwia to porównanie podobnych rozmiarów próbek w kroku 5.

Mamy możliwość próbkowania wierszy zawierających oszukańcze transakcje — co w połączeniu z niesyntetycznymi danymi o oszustwach doprowadzi do równego rozkładu klas „oszustwa” i „nieoszustwa”. Oryginalny Zbiór danych Kaggle zawierał 492 oszustwa z 284,807 XNUMX transakcji, więc tworzymy tę samą próbkę z syntezatora.

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

Mamy możliwość zwiększenia próby wierszy zawierających oszukańcze transakcje w procesie zwanym powiększaniem danych — co w połączeniu z niesyntetycznymi danymi o oszustwach doprowadzi do równego rozkładu klas „oszustwa” i „nieoszustwa”.

Krok 5: Porównaj i oceń dane syntetyczne z danymi rzeczywistymi

Chociaż ten krok jest opcjonalny, możesz jakościowo zwizualizować i ocenić wygenerowane dane syntetyczne w porównaniu z rzeczywistymi danymi za pomocą wykresu punktowego.

Pomaga nam to w iteracji naszego modelu poprzez dostosowywanie parametrów, zmianę wielkości próbki i wykonywanie innych przekształceń w celu wygenerowania najdokładniejszych danych syntetycznych. Ten charakter dokładności zawsze zależy od celu syntezy

Poniższy obraz pokazuje, jak podobne są rzeczywiste oszustwa i syntetyczne punkty danych o oszustwach na poszczególnych etapach szkolenia. Daje to dobrą jakościową kontrolę podobieństwa między danymi syntetycznymi i rzeczywistymi oraz tego, jak to się poprawia, gdy przeprowadzamy je przez więcej epok (przejście całego zbioru danych treningowych przez algorytm). Należy zauważyć, że w miarę analizowania kolejnych epok zestaw wzorców danych syntetycznych zbliża się do danych oryginalnych.

Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Krok 6: Posprzątaj

Na koniec zatrzymaj notatnik po zakończeniu syntezy, aby uniknąć nieoczekiwanych kosztów.

Wnioski

Jako algorytmy uczenia maszynowego i ramy kodowania szybko ewoluować, wysokiej jakości dane na dużą skalę są najrzadszym zasobem w ML. Dobrej jakości syntetyczne zestawy danych mogą być wykorzystywane w różnych zadaniach.

W tym poście na blogu dowiedziałeś się, jak ważne jest syntezowanie zestawu danych przy użyciu biblioteki open source, która używa WGAN-GP. Jest to aktywny obszar badawczy z tysiącami opublikowanych artykułów na temat sieci GAN i setkami nazwanych sieci GAN dostępnych do eksperymentowania. Istnieją warianty zoptymalizowane pod kątem określonych przypadków użycia, takich jak tabele relacyjne i dane szeregów czasowych.

Możesz znaleźć cały kod użyty w tym artykule w this notatniki oczywiście więcej takich samouczków jest dostępnych w SageMaker oficjalna strona dokumentacji.

W Druga część tej dwuczęściowej serii postów na blogu szczegółowo omówimy, jak oceniać jakość danych syntetycznych z perspektywy wierności, użyteczności i prywatności.


O autorze

Wzmocnij transakcje oszustw, korzystając z danych syntetycznych w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Farisa Haddada jest kierownikiem ds. danych i spostrzeżeń w zespole AABG Strategic Pursuits. Pomaga przedsiębiorstwom z powodzeniem stać się data-driven.

Znak czasu:

Więcej z Uczenie maszynowe AWS