Sieci generatywnych przeciwników (GAN): wprowadzenie

Generacyjne sieci kontradyktoryjne (GAN) to jedna z nowoczesnych technologii, która oferuje duży potencjał w wielu przypadkach użycia, od tworzenia starych zdjęć i wzmacniania głosu po dostarczanie różnych zastosowań w medycynie i innych branżach.

Ta zaawansowana technologia może pomóc w kształtowaniu produktów i usług. Może być również używany do poprawy jakości obrazu w celu zachowania wspomnień.

Chociaż GAN są dla wielu dobrodziejstwem, niektórzy uważają to za niepokojące.

Ale czym dokładnie jest ta technologia?

W tym artykule omówię, czym jest GAN, jak działa i jakie są jego zastosowania.

Więc zanurkujmy od razu!

Co to jest generatywna sieć przeciwników?

Generative Adversarial Network (GAN) to struktura uczenia maszynowego składająca się z dwóch sieci neuronowych konkurujących o tworzenie dokładniejszych prognoz, takich jak obrazy, unikalna muzyka, rysunki i tak dalej.

GAN został zaprojektowany w 2014 roku przez informatyka i inżyniera Iana Goodfellowa oraz kilku jego kolegów. Są to unikalne głębokie sieci neuronowe zdolne do generowania nowych danych podobnych do tych, na których są trenowane. Rywalizują w grze o sumie zerowej, w której jeden agent przegrywa, a drugi ją wygrywa.

Pierwotnie sieci GAN zostały zaproponowane jako generatywny model uczenia maszynowego, głównie uczenia nienadzorowanego. Ale GAN są również pomocne w uczeniu się w pełni nadzorowanym, uczeniu częściowo nadzorowanym i uczeniu ze wzmocnieniem.

Dwa bloki współzawodniczące w GAN to:

Generator: to splotowa sieć neuronowa, która sztucznie wytwarza dane wyjściowe podobne do rzeczywistych danych.

Dyskryminator: to dekonwolucyjna sieć neuronowa, która może identyfikować sztucznie stworzone wyjścia.

Kluczowe idee

Aby lepiej zrozumieć koncepcję GAN, szybko zrozumiemy kilka ważnych pokrewnych koncepcji.

Uczenie maszynowe (ML)

Uczenie maszynowe jest częścią sztucznej inteligencji (AI), która obejmuje uczenie się i budowanie modeli wykorzystujących dane w celu zwiększenia wydajności i dokładności podczas wykonywania zadań lub podejmowania decyzji lub prognoz.

Algorytmy ML tworzą modele na podstawie danych uczących, doskonaląc się dzięki ciągłemu uczeniu się. Są wykorzystywane w wielu dziedzinach, w tym wizji komputerowej, zautomatyzowanym podejmowaniu decyzji, filtrowaniu wiadomości e-mail, medycynie, bankowości, jakości danych, cyberbezpieczeństwie, rozpoznawaniu mowy, systemach rekomendacji i innych.

Model dyskryminujący

W uczeniu głębokim i uczeniu maszynowym model rozróżniający działa jak klasyfikator, który rozróżnia zestaw poziomów lub dwie klasy.

Na przykład rozróżnianie różnych owoców lub zwierząt.

Model generatywny

W modelach generatywnych, losowe próbki są brane pod uwagę w celu stworzenia nowych realistycznych obrazów. Uczy się na podstawie prawdziwych obrazów niektórych obiektów lub żywych istot, aby wygenerować własne realistyczne, ale naśladowane pomysły. Te modele są dwojakiego rodzaju:

Autokodery wariacyjne: wykorzystują kodery i dekodery, które są oddzielnymi sieciami neuronowymi. Działa to, ponieważ dany realistyczny obraz przechodzi przez koder, aby przedstawić te obrazy jako wektory w przestrzeni utajonej.

Następnie dekoder jest używany do wykonania tych interpretacji w celu uzyskania realistycznych kopii tych obrazów. Początkowo jakość obrazu może być niska, ale poprawi się, gdy dekoder stanie się w pełni funkcjonalny i można zignorować koder.

Generacyjne sieci kontradyktoryjne (GAN): Jak omówiono powyżej, GAN to głęboka sieć neuronowa zdolna do generowania nowych, podobnych danych z dostarczonych danych wejściowych. Podlega on nienadzorowanemu uczeniu maszynowemu, które jest jednym z rodzajów uczenia maszynowego omówionych poniżej.

Nadzorowana nauka

W szkoleniu nadzorowanym maszyna jest szkolona przy użyciu dobrze oznaczonych danych. Oznacza to, że niektóre dane zostaną już oznaczone poprawną odpowiedzią. Tutaj maszyna otrzymuje pewne dane lub przykłady, aby umożliwić algorytmowi nadzorowanego uczenia się przeanalizowanie danych treningowych i uzyskanie dokładnych wyników z tych oznaczonych danych.

Nauka nienadzorowana

Uczenie nienadzorowane polega na trenowaniu maszyny za pomocą danych, które nie są oznaczone ani sklasyfikowane. Pozwala algorytmowi uczenia maszynowego pracować na tych danych bez wskazówek. W tego typu uczeniu się zadaniem maszyny jest kategoryzowanie nieposortowanych danych na podstawie wzorców, podobieństw i różnic bez wcześniejszego uczenia danych.

Tak więc GAN są powiązane z wykonywaniem nienadzorowanego uczenia się w ML. Ma dwa modele, które mogą automatycznie odkrywać i uczyć się wzorców na podstawie danych wejściowych. Te dwa modele to generator i dyskryminator.

Zrozummy je trochę bardziej.

Części GAN

Termin „przeciwnik” jest zawarty w GAN, ponieważ składa się z dwóch części – współzawodniczącego generatora i mianownika. Ma to na celu przechwytywanie, analizowanie i replikowanie wariacji danych w zestawie danych. Lepiej zrozumiemy te dwie części GAN.

Generator

Generator to sieć neuronowa zdolna do uczenia się i generowania fałszywych punktów danych, takich jak obrazy i dźwięk, które wyglądają realistycznie. Jest używany w treningu i poprawia się wraz z ciągłą nauką.

Dane generowane przez generator są wykorzystywane jako negatywny przykład dla drugiej części – mianownika, który zobaczymy dalej. Generator pobiera losowy wektor o stałej długości jako dane wejściowe w celu wytworzenia próbki wyjściowej. Ma na celu przedstawienie wyników przed dyskryminatorem, aby mógł sklasyfikować, czy jest prawdziwy, czy fałszywy.

Generator jest szkolony z następujących komponentów:

  • Zaszumione wektory wejściowe
  • Sieć generatorów przekształcająca losowe dane wejściowe w instancję danych
  • Sieć dyskryminacyjna do klasyfikacji generowanych danych
  • Utrata generatora w celu ukarania generatora, ponieważ nie oszuka dyskryminatora

Generator działa jak złodziej, replikując i tworząc realistyczne dane, aby oszukać dyskryminator. Ma na celu ominięcie kilku przeprowadzonych kontroli. Chociaż może strasznie zawieść na początkowych etapach, wciąż się poprawia, dopóki nie wygeneruje wielu realistycznych danych wysokiej jakości i może uniknąć testów. Po osiągnięciu tej umiejętności możesz korzystać tylko z generatora bez konieczności stosowania osobnego dyskryminatora.

Dyskryminator

Dyskryminator to również sieć neuronowa, która potrafi odróżnić fałszywy i prawdziwy obraz lub inne typy danych. Podobnie jak generator, odgrywa kluczową rolę w fazie treningu.

Działa jak policja, aby złapać złodzieja (fałszywe dane przez generator). Ma na celu wykrywanie fałszywych obrazów i nieprawidłowości w instancji danych.

Jak wspomniano wcześniej, generator uczy się i poprawia, aby osiągnąć punkt, w którym staje się samowystarczalny, aby tworzyć wysokiej jakości obrazy, które nie wymagają dyskryminatora. Gdy wysokiej jakości dane z generatora przechodzą przez dyskryminator, nie jest on już w stanie odróżnić obrazu rzeczywistego od fałszywego. Więc dobrze jest iść tylko z generatorem.

Jak działa GAN?

W generatywnej sieci kontradyktoryjnej (GAN) trzy rzeczy obejmują:

  • Model generatywny opisujący sposób generowania danych.
  • Ustawienie kontradyktoryjne, w którym trenowany jest model.
  • Głębokie sieci neuronowe jako algorytmy AI do treningu.

Dwie sieci neuronowe GAN – generator i dyskryminator – są wykorzystywane do prowadzenia gry kontradyktoryjnej. Generator pobiera dane wejściowe, takie jak pliki audio, obrazy itp., aby wygenerować podobną instancję danych, podczas gdy dyskryminator sprawdza autentyczność tej instancji danych. Ten ostatni określi, czy przejrzane wystąpienie danych jest prawdziwe, czy nie.

Na przykład chcesz zweryfikować, czy dany obraz jest prawdziwy czy fałszywy. Możesz użyć ręcznie wygenerowanych danych wejściowych do zasilania generatora. Jako wynik utworzy nowe, zreplikowane obrazy.

Robiąc to, generator dąży do tego, aby wszystkie generowane obrazy były uważane za autentyczne, mimo że są fałszywe. Chce stworzyć zadowalające wyniki, aby kłamać i unikać złapania.

Następnie dane wyjściowe trafią do dyskryminatora wraz z zestawem obrazów z rzeczywistych danych w celu wykrycia, czy te obrazy są autentyczne, czy nie. Działa niekorzystnie na generator, bez względu na to, jak bardzo próbuje naśladować; dyskryminator pomoże odróżnić dane faktyczne od fałszywych.

Dyskryminator weźmie zarówno fałszywe, jak i rzeczywiste dane, aby zwrócić prawdopodobieństwo 0 lub 1. Tutaj 1 oznacza autentyczność, a 0 oznacza fałszywe.

W tym procesie występują dwie pętle sprzężenia zwrotnego:

  • Generator łączy się z pętlą sprzężenia zwrotnego z dyskryminatorem
  • Dyskryminator dołącza do kolejnej pętli sprzężenia zwrotnego z zestawem rzeczywistych obrazów

Trening GAN działa, ponieważ zarówno generator, jak i dyskryminator są w trakcie treningu. Generator nieustannie uczy się, przekazując fałszywe dane wejściowe, podczas gdy dyskryminator nauczy się poprawiać wykrywanie. Tutaj oba są dynamiczne.

Dyskryminator to splotna sieć zdolna do kategoryzowania dostarczanych do niej obrazów. Działa jako klasyfikator dwumianowy do oznaczania obrazów jako fałszywych lub prawdziwych.

Z drugiej strony generator jest jak odwrócona sieć splotowa pobierająca losowe próbki danych w celu wytworzenia obrazów. Ale dyskryminator weryfikuje dane za pomocą technik downsamplingu, takich jak max-pooling.

Obie sieci próbują zoptymalizować przeciwną i inną funkcję straty lub celu w grze przeciwnika. Poniesione przez nich straty pozwalają im jeszcze mocniej napierać na siebie.

Rodzaje GAN

Sieci generatywnych przeciwników są różnych typów w zależności od implementacji. Oto główne aktywne typy GAN:

  • Warunkowy GAN (CGAN): Jest to technika głębokiego uczenia się, która obejmuje określone parametry warunkowe, które pomagają odróżnić dane rzeczywiste od fałszywych. Zawiera również dodatkowy parametr – „y” w fazie generatora, aby wytworzyć odpowiednie dane. Ponadto do tych danych wejściowych dodawane są etykiety, które są podawane do dyskryminatora, aby umożliwić mu zweryfikowanie, czy dane są autentyczne, czy fałszywe.
  • Vanilla GAN: Jest to prosty typ GAN, w którym dyskryminator i generator są prostszymi i wielowarstwowymi perceptronami. Jego algorytmy są proste, optymalizując równanie matematyczne za pomocą stochastycznego spadku gradientu.
  • Głęboko splotowy GAN (DCGAN): Jest popularny i uważany za najbardziej udaną implementację GAN. DCGAN składa się z ConvNets, a nie z wielowarstwowych perceptronów. Te sieci ConvNet są stosowane bez użycia technik, takich jak max-pooling lub pełne łączenie warstw.
  • Super Resolution GAN (SRGAN): Jest to implementacja GAN, która wykorzystuje głęboką sieć neuronową wraz z siecią przeciwnika, aby pomóc w tworzeniu obrazów wysokiej jakości. SRGAN jest szczególnie przydatny w efektywnym skalowaniu oryginalnych obrazów o niskiej rozdzielczości, aby poprawić ich szczegóły i zminimalizować błędy.
  • Piramida Laplace’a GAN (LAPGAN): Jest to odwracalna i liniowa reprezentacja, która zawiera wiele obrazów pasmowoprzepustowych, które są umieszczone w odległości ośmiu od siebie z resztami o niskiej częstotliwości. LAPGAN wykorzystuje kilka sieci dyskryminatorów i generatorów oraz wiele poziomów piramid Laplace’a.

LAPGAN jest szeroko stosowany, ponieważ zapewnia najwyższą jakość obrazu. Te obrazy są najpierw próbkowane w dół na każdej warstwie piramidy, a następnie skalowane w górę na każdej warstwie, gdzie pomysły otrzymują trochę szumu, dopóki nie osiągną oryginalnego rozmiaru.

Zastosowania GAN

Sieci generatywnych przeciwników są wykorzystywane w różnych dziedzinach, takich jak:

Nauki ścisłe

Sieci GAN mogą zapewnić dokładny i szybszy sposób modelowania powstawania wysokoenergetycznych dżetów i przeprowadzania eksperymentów fizycznych. Sieci te można również przeszkolić w celu szacowania wąskich gardeł w przeprowadzaniu symulacji dla fizyki cząstek, które zużywają duże zasoby.

GAN mogą przyspieszyć symulację i poprawić wierność symulacji. Ponadto GAN mogą pomóc w badaniu ciemnej materii, symulując soczewkowanie grawitacyjne i ulepszając obrazy astronomiczne.

Gry wideo

Świat gier wideo również wykorzystał GAN do skalowania w górę 2-wymiarowych danych o niskiej rozdzielczości używanych w starszych grach wideo. Pomoże Ci odtworzyć takie dane w rozdzielczości 4k lub nawet wyższej poprzez trening obrazu. Następnie możesz próbkować dane lub obrazy, aby były odpowiednie dla rzeczywistej rozdzielczości gry wideo.

Zapewnij odpowiednie szkolenie swoich modeli GAN. Mogą oferować ostrzejsze i wyraźniejsze obrazy 2D o imponującej jakości w porównaniu z danymi natywnymi, zachowując przy tym szczegóły rzeczywistego obrazu, takie jak kolory.

Gry wideo wykorzystujące GAN obejmują Resident Evil Remake, Final Fantasy VIII i IX oraz wiele innych.

Sztuka i moda

Możesz użyć GAN do generowania sztuki, na przykład do tworzenia obrazów osób, które nigdy nie istniały, fotografii w farbie, tworzenia obrazów nierealnych modelek i wielu innych. Jest również używany w rysunkach generujących wirtualne cienie i szkice.

Reklama

Korzystanie z GAN do tworzenia i produkcji reklam pozwoli zaoszczędzić czas i zasoby. Jak widać powyżej, jeśli chcesz sprzedać swoją biżuterię, możesz stworzyć wyimaginowany model wyglądający jak prawdziwy człowiek za pomocą GAN.

W ten sposób możesz sprawić, by modelka założyła Twoją biżuterię i zaprezentowała ją swoim klientom. Oszczędzi ci to zatrudniania modelki i płacenia za nią. Możesz nawet wyeliminować dodatkowe wydatki, takie jak opłacenie transportu, wynajem studia, zorganizowanie fotografów, wizażystów itp.

To znacznie pomoże, jeśli jesteś rozwijającą się firmą i nie możesz sobie pozwolić na zatrudnienie modelki lub stworzenie infrastruktury do sesji reklamowych.

Synteza dźwięku

Możesz tworzyć pliki audio z zestawu klipów audio za pomocą GAN. Nazywa się to również dźwiękiem generatywnym. Proszę nie mylić tego z głosami Amazon Alexa, Apple Siri lub innymi głosami AI, w których fragmenty głosu są dobrze szyte i produkowane na żądanie.

Zamiast tego dźwięk generatywny wykorzystuje sieci neuronowe do badania właściwości statystycznych źródła dźwięku. Następnie bezpośrednio odtwarza te właściwości w danym kontekście. Tutaj modelowanie przedstawia sposób, w jaki mowa zmienia się po każdej milisekundzie.

Transfer nauki

Zaawansowane badania uczenia transferu wykorzystują GAN do dopasowywania najnowszych przestrzeni funkcji, takich jak głębokie uczenie ze wzmocnieniem. W tym celu osadzenia źródła i zamierzone zadanie są podawane dyskryminatorowi w celu określenia kontekstu. Następnie wynik jest wstecznie propagowany przez koder. W ten sposób model wciąż się uczy.

Inne zastosowania GAN obejmują:

  • Diagnoza całkowitej lub częściowej utraty wzroku poprzez wykrywanie obrazów jaskry
  • Wizualizuj wzornictwo przemysłowe, wystrój wnętrz, elementy odzieży, buty, torby i nie tylko
  • zrekonstruować kryminalistyczne rysy twarzy osoby chorej
  • tworzyć modele 3D przedmiotu z obrazu, tworzyć nowe obiekty jako chmurę punktów 3D, modelować wzory ruchu w filmie
  • Zaprezentuj wygląd osoby w zmieniającym się wieku
  • Rozszerzanie danych, takie jak ulepszanie klasyfikatora DNN
  • Narysuj brakujący element na mapie, popraw widoki ulic, przenieś style mapowania i nie tylko
  • Twórz obrazy, wymieniaj system wyszukiwania obrazów itp.
  • Generuj wejścia sterujące do nieliniowego systemu dynamicznego za pomocą wariacji GAN
  • Przeanalizuj wpływ zmian klimatycznych na dom
  • Stwórz twarz osoby, biorąc jej głos jako dane wejściowe
  • Stwórz nowe cząsteczki dla kilku celów białkowych w raku, zwłóknieniu i zapaleniu
  • Animuj gify ze zwykłego obrazu

Zastosowań sieci GAN w różnych obszarach jest znacznie więcej, a ich wykorzystanie stale się rozszerza. Istnieje jednak wiele przypadków jego niewłaściwego użycia. Obrazy ludzi oparte na GAN były wykorzystywane w złowrogich przypadkach, takich jak tworzenie fałszywych filmów i zdjęć.

GAN można również wykorzystać do tworzenia realistycznych zdjęć i profili osób w mediach społecznościowych, które nigdy nie istniały na ziemi. Inne dotyczące nadużyć GNA to tworzenie fałszywej pornografii bez zgody wyróżnionych osób, dystrybucja fałszywych filmów wideo kandydatów politycznych i tak dalej.

Chociaż GNA mogą być dobrodziejstwem w wielu dziedzinach, ich niewłaściwe użycie może być również katastrofalne. W związku z tym należy wyegzekwować odpowiednie wytyczne dotyczące jego stosowania.

Wniosek

GAN to jeden z niezwykłych przykładów nowoczesnej technologii. Zapewnia unikalny i lepszy sposób generowania danych i wspomagania takich funkcji, jak diagnoza wizualna, synteza obrazów, badania, powiększanie danych, sztuka i nauka oraz wiele innych.

Możesz być także zainteresowany platformami uczenia maszynowego z niskim kodem i bez kodu do tworzenia innowacyjnych aplikacji.