Jak używać GAN do ekstrakcji funkcji bez nadzoru z obrazów?

11

Zrozumiałem, jak działa GAN, podczas gdy dwie sieci (generatywna i dyskryminacyjna) konkurują ze sobą. Zbudowałem DCGAN (GAN z dyskryminatorem splotowym i generatorem dekonwolucji), który teraz z powodzeniem generuje ręcznie pisane cyfry podobne do tych w zestawie danych MNIST.

Dużo czytałem o aplikacjach GAN do wyodrębniania funkcji z obrazów. Jak wykorzystać wyszkolony model GAN ​​(w zestawie danych MNIST) do wyodrębnienia funkcji z ręcznie zapisanych obrazów digist MNIST?

exAres
źródło
W celu wyodrębnienia funkcji otrzymuję rozmiar funkcji 128 * 120 (tj. 64 + 32 + 16 + 8) = 15360. Jestem pewien, że czegoś mi brakuje. Mam inne pytanie dotyczące wyboru wektora cech. Czy powinienem brać pod uwagę wagi (conv2d + batchnorm + aktywacja) czy tylko wagi conv2d podczas wydobywania funkcji?
Tanmoy Dam

Odpowiedzi:

5

Zazwyczaj do wyodrębnienia funkcji można użyć górnej warstwy sieci przed wyjściem. Intuicja polega na tym, że funkcje te można rozdzielić liniowo, ponieważ górna warstwa jest tylko regresją logistyczną.

W przypadku sieci GAN można korzystać z funkcji dyskryminatora. Funkcje te mają dawać prawdopodobieństwo, jeśli dane wejściowe pochodzą ze zbioru danych szkoleniowych „prawdziwe obrazy”. W dokumencie DCGAN Radforda wykorzystują wszystkie splotowe warstwy dyskryminatora i uruchamiają funkcje maksymalnego wyciągania warstw pulujących dla CIFAR-10.

Aby ocenić jakość reprezentacji wyuczonych przez DCGAN dla nadzorowanych zadań, trenujemy na Imagenet-1k, a następnie wykorzystujemy cechy splotowe dyskryminatora ze wszystkich warstw, maksymalizując reprezentację każdej warstwy w celu uzyskania siatki przestrzennej 4 × 4. Cechy te są następnie spłaszczane i łączone z utworzeniem wektora wymiarowego 28672, a na nich trenowany jest znormalizowany liniowy klasyfikator L2-SVM.

Kenny
źródło
1

Odpowiedź Kenny'ego jest poprawna - jeśli używasz splotowego D , wyjście warstw przed gęstym może służyć jako cechy. Moją intuicją jest to, że będzie działać lepiej dla AC-GAN (lub podobnych architektur, które sprawiają, że D klasyfikuje dane wejściowe oprócz ustalania, czy są fałszywe, czy prawdziwe).

Jest to podejście zwane Bigan który dodaje Encoder komponentu zdolnego do mapy generowane i szkoleniowe próbki do utajonego dystrybucyjnej Z użytego do generatora „Initialize”. Autorzy pokazują, że można go skutecznie wykorzystać jako zestaw funkcji do nauki transferu i innych zadań.

Michaił Jurasow
źródło
0

ponieważ GAN składa się z dwóch części - generatora i dyskryminatora, istnieją dwa sposoby wykorzystania GAN jako ekstraktora funkcji:

  1. Sposób oparty na generatorze przedstawiony przez Michaiła Jurasowa.
  2. Sposób oparty na dyskryminacji przedstawiony przez Kenny'ego.

Drugi sposób jest bardziej kontrowersyjny. Niektóre badania [1] uważały, że intuicyjnie, ponieważ celem dyskryminatora jest odróżnienie wygenerowanych próbek od próbek rzeczywistych, skupi się on tylko na różnicy między tymi dwoma rodzajami próbek. Ale sensowna jest różnica między rzeczywistymi próbkami, którymi są próbki wykorzystywane w dalszych zadaniach.

Próbowałem to przestudiować i odkryłem, że wyodrębnioną cechę można podzielić na dwie ortogonalne podprzestrzenie. Pierwsza przestrzeń przyczynia się do zadania dyskryminatora, a druga jest od niej wolna. Ponieważ w większości przypadków cechami odróżniającymi rzeczywiste próbki od generowanych są szumy, druga przestrzeń cech będzie wolna od szumów. Z tej perspektywy, chociaż zadanie dyskryminatora nie skupi się na różnicy między rzeczywistymi próbkami, które są przydatne w dalszych zadaniach, funkcje bezszumowe zawarte w drugiej podprzestrzeni będą działać.

[1] Jost Tobias Springenberg. Uczenie się bez nadzoru i częściowo pod nadzorem z kategorycznymi generatywnymi sieciami przeciwnymi. arXiv: 1511.06390 [cs, stat], kwiecień 2016. Przedruk arXiv. arXiv: 1511.06390 [stat.ML]. Ithaca, NY: Cornell University Library.

Mao Xin
źródło