Sztuczna inteligencja
Czym są dane syntetyczne?

Czym są dane syntetyczne?
Dane syntetyczne to szybko rozwijający się trend i nowe narzędzie w dziedzinie data science. Czym dokładnie są dane syntetyczne? Krótka odpowiedź brzmi, że dane syntetyczne składają się z danych, które nie są oparte na żadnych rzeczywistych zjawiskach lub zdarzeniach, a są generowane za pomocą programu komputerowego. Ale dlaczego dane syntetyczne stają się tak ważne dla data science? Jak powstają dane syntetyczne? Przyjrzyjmy się odpowiedziom na te pytania.
Czym jest syntetyczny zbiór danych?
Jak sugeruje termin “syntetyczny”, syntetyczne zbiory danych są generowane za pomocą programów komputerowych, zamiast być tworzone poprzez dokumentację rzeczywistych zdarzeń. Podstawowym celem syntetycznego zbioru danych jest bycie na tyle wszechstronnym i solidnym, aby był przydatny do trenowania modeli uczenia maszynowego.
Aby być przydatnym dla klasyfikatora uczenia maszynowego, dane syntetyczne powinny mieć określone właściwości. Chociaż dane mogą być kategoryczne, binarne lub numeryczne, długość zbioru danych powinna być dowolna, a dane powinny być generowane losowo. Losowe procesy używane do generowania danych powinny być kontrolowalne i oparte na różnych rozkładach statystycznych. W zbiorze danych można również umieścić losowy szum.
Jeśli dane syntetyczne są używane dla algorytmu klasyfikacji, stopień separacji klas powinien być konfigurowalny, tak aby problem klasyfikacji mógł być łatwiejszy lub trudniejszy zgodnie z wymaganiami problemu. Tymczasem dla zadania regresji można zastosować nieliniowe procesy generatywne do wytworzenia danych.
Dlaczego używać danych syntetycznych?
Ponieważ frameworki uczenia maszynowego, takie jak TensorFlow i PyTorch, stają się łatwiejsze w użyciu, a wstępnie zaprojektowane modele do przetwarzania obrazów i języka naturalnego stają się bardziej wszechobecne i potężne, głównym problemem, z którym muszą się zmierzyć data scientist, jest zbieranie i przetwarzanie danych. Firmy często mają trudności z pozyskaniem dużych ilości danych do wytrenowania dokładnego modelu w danym przedziale czasowym. Ręczne etykietowanie danych to kosztowny, powolny sposób pozyskiwania danych. Jednak generowanie i używanie danych syntetycznych może pomóc data scientistom i firmom pokonać te przeszkody i opracować niezawodne modele uczenia maszynowego w szybszy sposób.
Korzystanie z danych syntetycznych ma wiele zalet. Najbardziej oczywistym sposobem, w jaki użycie danych syntetycznych przynosi korzyści data science, jest zmniejszenie potrzeby przechwytywania danych z rzeczywistych zdarzeń, i z tego powodu możliwe staje się generowanie danych i budowanie zbioru danych znacznie szybciej niż zbioru zależnego od zdarzeń rzeczywistych. Oznacza to, że duże ilości danych można wyprodukować w krótkim czasie. Dotyczy to zwłaszcza zdarzeń, które rzadko występują, ponieważ jeśli zdarzenie rzadko zdarza się w rzeczywistości, więcej danych można zasymulować na podstawie kilku prawdziwych próbek danych. Poza tym dane mogą być automatycznie etykietowane w miarę ich generowania, co drastycznie zmniejsza ilość czasu potrzebnego do etykietowania danych.
Dane syntetyczne mogą być również przydatne do uzyskania danych treningowych dla przypadków brzegowych, czyli instancji, które mogą występować rzadko, ale są kluczowe dla sukcesu twojej sztucznej inteligencji. Przypadki brzegowe to zdarzenia bardzo podobne do głównego celu SI, ale różniące się w ważny sposób. Na przykład obiekty, które są tylko częściowo widoczne, można uznać za przypadki brzegowe podczas projektowania klasyfikatora obrazów.
Wreszcie, syntetyczne zbiory danych mogą minimalizować obawy dotyczące prywatności. Próby anonimizacji danych mogą być nieskuteczne, ponieważ nawet jeśli wrażliwe/identyfikujące zmienne zostaną usunięte ze zbioru danych, inne zmienne mogą działać jako identyfikatory, gdy są łączone. Nie jest to problemem w przypadku danych syntetycznych, ponieważ od początku nie były one oparte na prawdziwej osobie ani prawdziwym zdarzeniu.
Przypadki użycia danych syntetycznych
Dane syntetyczne mają szeroki wachlarz zastosowań, ponieważ można je zastosować do prawie każdego zadania uczenia maszynowego. Typowe przypadki użycia danych syntetycznych obejmują pojazdy autonomiczne, bezpieczeństwo, robotykę, ochronę przed oszustwami i opiekę zdrowotną.
Jednym z początkowych przypadków użycia danych syntetycznych były samochody autonomiczne, ponieważ dane syntetyczne są używane do tworzenia danych treningowych dla samochodów w warunkach, w których uzyskanie prawdziwych, drogowych danych treningowych jest trudne lub niebezpieczne. Dane syntetyczne są również przydatne do tworzenia danych używanych do trenowania systemów rozpoznawania obrazów, takich jak systemy monitoringu, znacznie wydajniej niż ręczne zbieranie i etykietowanie mnóstwa danych treningowych. Systemy robotyczne mogą być powolne w trenowaniu i rozwoju przy użyciu tradycyjnych metod zbierania i trenowania danych. Dane syntetyczne pozwalają firmom robotycznym testować i projektować systemy robotyczne poprzez symulacje. Systemy ochrony przed oszustwami mogą skorzystać na danych syntetycznych, a nowe metody wykrywania oszustw mogą być trenowane i testowane na danych, które są stale nowe, gdy używa się danych syntetycznych. W dziedzinie opieki zdrowotnej dane syntetyczne mogą być wykorzystywane do projektowania klasyfikatorów zdrowotnych, które są dokładne, a jednocześnie chronią prywatność ludzi, ponieważ dane nie będą oparte na prawdziwych osobach.
Wyzwania związane z danymi syntetycznymi
Chociaż użycie danych syntetycznych przynosi wiele korzyści, niesie ze sobą również wiele wyzwań.
Kiedy tworzone są dane syntetyczne, często brakuje w nich wartości odstających. Wartości odstające występują w danych naturalnie i choć często są usuwane ze zbiorów treningowych, ich istnienie może być konieczne do wytrenowania naprawdę niezawodnych modeli uczenia maszynowego. Poza tym jakość danych syntetycznych może być bardzo zróżnicowana. Dane syntetyczne są często generowane z użyciem danych wejściowych lub inicjujących, dlatego jakość danych może zależeć od jakości danych wejściowych. Jeśli dane użyte do wygenerowania danych syntetycznych są obciążone, wygenerowane dane mogą utrwalać to obciążenie. Dane syntetyczne wymagają również pewnej formy kontroli wyjścia/jakości. Muszą być sprawdzane względem danych opatrzonych adnotacjami przez człowieka lub w inny sposób autentycznych danych w jakiejś formie.
Jak powstają dane syntetyczne?
Dane syntetyczne są tworzone programowo za pomocą technik uczenia maszynowego. Można użyć klasycznych technik uczenia maszynowego, takich jak drzewa decyzyjne, jak i technik głębokiego uczenia. Wymagania dotyczące danych syntetycznych wpłyną na to, jaki rodzaj algorytmu zostanie użyty do wygenerowania danych. Drzewa decyzyjne i podobne modele uczenia maszynowego pozwalają firmom tworzyć nieklasyczne, wielomodalne rozkłady danych, trenowane na przykładach rzeczywistych danych. Generowanie danych za pomocą tych algorytmów zapewni dane, które są wysoko skorelowane z oryginalnymi danymi treningowymi. W przypadkach, gdy znany jest typowy rozkład danych, firma może generować dane syntetyczne za pomocą metody Monte Carlo.
Metody generowania danych syntetycznych oparte na głębokim uczeniu zazwyczaj wykorzystują albo wariacyjny autoenkoder (VAE), albo generatywną sieć przeciwników (GAN). VAE to nienadzorowane modele uczenia maszynowego, które wykorzystują enkodery i dekodery. Część enkodera VAE odpowiada za kompresję danych do prostszej, zwartej wersji oryginalnego zbioru danych, którą dekoder następnie analizuje i wykorzystuje do wygenerowania reprezentacji danych bazowych. VAE jest trenowany z celem uzyskania optymalnej relacji między danymi wejściowymi a wyjściowymi, takiej, w której zarówno dane wejściowe, jak i wyjściowe są niezwykle podobne.
Jeśli chodzi o modele GAN, nazywa się je sieciami “przeciwników” ze względu na fakt, że GAN-y to właściwie dwie sieci konkurujące ze sobą. Generator odpowiada za generowanie danych syntetycznych, podczas gdy druga sieć (dyskryminator) działa poprzez porównywanie wygenerowanych danych z rzeczywistym zbiorem danych i próbuje określić, które dane są fałszywe. Kiedy dyskryminator wychwyci fałszywe dane, generator jest o tym powiadamiany i wprowadza zmiany, aby spróbować uzyskać nową partię danych zaakceptowaną przez dyskryminator. Z kolei dyskryminator staje się coraz lepszy w wykrywaniu podróbek. Obie sieci są trenowane przeciwko sobie, a podróbki stają się cały czas bardziej realistyczne.












