Generowanie grafiki poprzez GAN
Niewiele ponad rok temu Alec Radford (bazując na pracy Iana Goodfellowa) opublikował pracę, która zmieniła sposób myślenia o tworzeniu modeli generatywnych i samo uczenie się maszyn. Nowy system został nazwany Głębokim Splotem Sprzecznych Sieci Generatywnych (ang. Deep Convolutional Generative Adversarial Networks, w skrócie DCGANs).
DCGANs są w stanie wytworzyć oryginalne, wyglądające jak zdjęcia obrazy poprzez wykorzystanie połączenia dwóch sztucznych głębokich sieci neuronowych, które ze sobą konkurują.
Naukowcy zajmujący się sztuczną inteligencją są mocno zainteresowani modelami generatywnymi, ponieważ mogą one stanowić krok milowy na drodze do zbudowania systemów SI, które byłyby w stanie pobierać surowe dane i przetwarzać je ze zrozumieniem w sposób automatyczny.
Aby stworzyć DCGAN, budujemy dwie głębokie sztuczne sieci neuronowe. Następnie konfigurujemy je tak, żeby ze sobą konkurowały, bez końca próbując się nawzajem pokonać. Podczas tego procesu każda z sieci staje się mocniejsza.
Wyobraźmy sobie, że pierwsza z tych sieci neuronowych to świeżo upieczony policjant, który uczy się, jak rozpoznawać sfałszowane pieniądze. Zadaniem tej sieci jest patrzeć na obraz i stwierdzać, czy zawiera on prawdziwe banknoty.
Ponieważ patrzymy na obiekty na obrazach, możemy wykorzystać do tego standardowy splot sieci neuronowych. Podstawowa idea polega na tym, że sieć neuronowa, która pobiera obraz, przepuszcza go przez wiele warstw, które kolejno rozpoznają coraz bardziej zaawansowane elementy obrazu, a następnie przetwarzają je na konkretną informację − w tym przypadku na informację o tym, czy dany banknot jest prawdziwy czy sfałszowany.
Ta pierwsza sieć neuronowa jest nazywana siecią rozróżniającą:

Teraz wyobraźmy sobie, że druga sieć neuronowa to świeżo upieczony fałszerz, który uczy się, jak podrabiać pieniądze. W tej drugiej sieci neuronowej odwracamy warstwy, żeby cały proces przebiegał na odwrót. W związku z tym zamiast pobierać obraz i generować informacje, system pobiera informacje i generuje obraz.
Ta druga sieć neuronowa jest nazywana siecią generującą:

Mamy zatem policjanta (sieć rozróżniającą) szukającego podrobionych pieniędzy i fałszerza (sieć generującą), który te pieniądze produkuje. Niech zatem zaczną ze sobą walczyć!
W pierwszej rundzie sieć generująca stworzy bardzo kiepskie podróbki, które niewiele będą miały wspólnego z prawdziwymi pieniędzmi, ponieważ nie będzie miała pojęcia o tym, jak powinny wyglądać banknoty:
Na tym etapie sieć rozróżniająca sprawuje się równie kiepsko, jeśli chodzi o rozpoznawanie pieniędzy, więc nie dostrzeże różnicy:

W tym momencie wkraczamy i mówimy sieci rozróżniającej, że dany banknot jest podróbką. Następnie pokazujemy jej prawdziwy banknot i pokazujemy różnicę pomiędzy nim a podróbką. Sieć rozróżniająca szuka nowych szczegółów, aby nauczyć się odróżniać banknot prawdziwy od fałszywego.
Na przykład sieć rozróżniająca może zauważyć, że na prawdziwym banknocie jest obraz osoby, a na fałszywym nie ma. Wykorzystując tę informację, sieć rozróżniająca uczy się, jak odróżniać prawdziwy banknot od podrobionego. Tym razem udaje się nieco lepiej:

Przechodzimy teraz do rundy drugiej. Mówimy sieci generującej, że stworzone przez nią obrazy banknotów zaczęły być nagle odrzucane i klasyfikowane jako podróbki, więc musi się lepiej postarać. Dodatkowo mówimy jej, że sieć rozróżniająca upewnia się teraz, czy na banknocie jest obrazy twarzy, więc najlepszym sposobem na wprowadzenie jej w błąd jest umieszczenie twarzy na podróbce:

Podrobione banknoty znowu zostają uznane za prawdziwe. Teraz sieć rozróżniająca musi ponownie przyjrzeć się prawdziwemu banknotowi i znaleźć nowy sposób na odróżnienie go od fałszywego banknotu.
Proces ten jest powtarzany tysiące razy, aż zarówno sieć rozróżniająca, jak i generująca staną się ekspertami w swoich dziedzinach. W końcu sieć generująca tworzy niemal idealną podróbkę, a sieć rozróżniająca zauważa najmniejsze niedociągnięcia niczym doświadczony detektyw.
Kiedy już obydwie sieci będą wyszkolone do poziomu pozwalającego na tworzenie fałszywych obrazów, które będą w stanie zmylić człowieka, będziemy mogli wykorzystywać te obrazy do dowolnych celów. Właśnie na podobnej zasadzie działają opisane we wstępie rozwiązania.
Idea modeli generatywnych jak ten, który opisałem, jest dla mnie fascynująca. Nie mogę się doczekać dnia, w którym będzie można w ten sposób produkować nieskończoną ilość grafik komputerowych. Kiedy jednak rozmawiam o tym z innymi osobami, czasem słyszę: „Czy to wszystko? To jest takie podstawowe!”.
Z pewnością na chwilę obecną kwestia modeli generatywnych jest gorącym tematem. Systemy GAN już zostały okrzyknięte przyszłością sztucznej inteligencji, choć słyną z tego, że wolno się uczą i są w stanie generować jedynie małe obrazy. Prawda jest taka, że póki co najlepsze modele potrafią jedynie wygenerować obrazek wielkości znaczka pocztowego, na którym widnieje na przykład zmutowany pies.
Jednak kilka lat temu nawet to nie było możliwe! Szaleliśmy na widok wygenerowanych automatycznie obrazów, które wyglądały tak:

To jest rower! Uwierzcie mi!
Technologia idzie do przodu z dnia na dzień. Oto praca, w której wykorzystano GAN do postarzania twarzy ludzi.

