Czy możemy wygenerować ogromny zestaw danych za pomocą Generatywnych sieci przeciwników

14

Mam do czynienia z problemem, w którym nie mogłem znaleźć wystarczającej ilości danych (obrazów), aby móc zasilić moją głęboką sieć neuronową w celu szkolenia.

Tak zainspirował mnie artykuł Generative Adversarial Text to Image Synthesis opublikowany przez Scotta Reeda i in. w sprawie generatywnych sieci przeciwnych.

Byłem ciekawy, czy mogę użyć dostępnego małego zestawu danych jako danych wejściowych do modelu GAN i wygenerować znacznie większy zestaw danych do obsługi głębszych modeli sieciowych?

Czy to będzie wystarczająco dobre?

Alwyn Mathew
źródło
Czy możemy używać GAN do zestawów danych innych niż obrazkowe?
Mohamed EL-KADDOURY
@ MohamedEL-KADDOURY tak oczywiście, z dźwiękiem arxiv.org/abs/1802.04208 , z tekstem arxiv.org/abs/1801.07736 itp.
Alwyn Mathew

Odpowiedzi:

9

Jest mało prawdopodobne, aby znacznie wykraczało poza bezpośrednie działania związane z gromadzeniem danych.

Jakość obecnych wyjść GAN (od 2017 r.) Nie będzie wystarczająco wysoka. Obrazy tworzone przez GAN są zwykle małe i mogą zawierać nietypowe / niejednoznaczne szczegóły i dziwne zniekształcenia. W dokumencie, który połączyłeś, obrazy generowane przez system ze zdania mają wiarygodne bloki koloru, biorąc pod uwagę przedmiot, ale bez zdania, które określa, czego się spodziewać, większość z nich nie jest rozpoznawalna jako żaden konkretny temat.

Sieci GAN o mniej ambitnym celu niż generowanie obrazów ze zdań (co pomimo mojej powyższej krytyki, naprawdę niezwykły wyczyn IMO) powinny wytwarzać obrazy bardziej realistyczne. Ale ich zakres będzie mniejszy i prawdopodobnie nie będzie zawierać pożądanego typu obrazu. Ponadto zazwyczaj rozmiar wyjściowy jest niewielki, np. 64 x 64 lub 128 x 128 *, i nadal istnieje wystarczająco dużo zniekształceń i niejednoznaczności, że oryginalne zdjęcia z prawdziwej ziemi byłyby zdecydowanie lepsze.

Sam GAN jest ograniczony dostępną biblioteką szkoleniową - nie będzie dobrze, jeśli spróbujesz wygenerować obrazy poza zakresem jego danych szkoleniowych. Wyniki przedstawione w artykule badawczym skupiają się oczywiście na dziedzinie dostarczonej przez dane szkoleniowe. Ale nie możesz po prostu wprowadzić żadnego zdania do tego modelu i oczekiwać rezultatu, który byłby przydatny w innym miejscu.

Jeśli znajdziesz GAN, który został przeszkolony w zakresie odpowiedniego zestawu danych dla twojego problemu, najprawdopodobniej lepiej będzie spróbować źródła tych samych danych bezpośrednio dla twojego projektu.

Jeśli napotykasz problem z ograniczonymi prawdami naziemnymi, być może lepszym podejściem do korzystania z GAN byłoby użycie wstępnie wyszkolonego klasyfikatora, takiego jak VGG-19 lub Inception v5, zastąpienie kilku ostatnich w pełni połączonych warstw i dobrze dostosuj go do swoich danych. Oto przykład zrobienia tego przy użyciu biblioteki Keras w Pythonie - inne przykłady można znaleźć w wynikach wyszukiwania takich jak „dopracowanie klasyfikatora obrazów CNN”.


* Najnowocześniejsze sieci GAN poprawiły się, odkąd opublikowałem tę odpowiedź. Zespół badawczy z Nvidii odniósł niezwykły sukces, tworząc 1024 x 1024 fotorealistycznych obrazów . Nie zmienia to jednak innych punktów mojej odpowiedzi. Sieci GAN nie są wiarygodnym źródłem obrazów do zadań klasyfikacji obrazów, z wyjątkiem może zadań podrzędnych tego, na czym GAN został już przeszkolony i jest w stanie generować warunkowo (a może bardziej ogólnie, aby dostarczyć dane źródłowe dla „innych” kategorii w klasyfikatory).

Neil Slater
źródło
3

Mam dokładnie ten sam problem z nazwą DNN, którą obecnie buduję. Wzięcie mojego zestawu danych i synteza nowych danych za pomocą GAN wydaje się świetnym pomysłem. Ale sam GAN nauczy się wyprowadzać obrazy tylko z taką samą wariancją obrazu i standardowymi odchyleniami, jak wyuczono w zestawie szkoleniowym. Zatem nowo wygenerowane dane będą po prostu reprezentować więcej kombinacji tego samego rozkładu próbek. Pomoże to Twojemu NN lepiej trenować na tej samej dystrybucji, dlatego może prowadzić do większego przećwiczenia.

Michael Bawol
źródło
3

Z czysto teoretycznego punktu widzenia nie jest to możliwe.

Dany zestaw danych szkoleniowych reprezentuje pewną ilość informacji o strukturze określonej przestrzeni. Jeśli trenujesz GAN na tym zbiorze danych, będzie się on uczył tylko z informacji reprezentowanych przez ten zestaw danych. Dane zsyntetyzowane przez GAN nigdy nie mogą pochodzić z większej przestrzeni niż oryginalne dane, z prostego powodu: Skąd ta informacja powinna pochodzić? Jeśli nie było go w oryginalnym zestawie danych, to nie może również znajdować się w zsyntetyzowanych danych z GAN.

Jeśli trenujesz sieć neuronową w zakresie zbieżności w zbiorze danych, ta sieć neuronowa nauczy się dowolnej struktury zawierającej ten zbiór danych. Wszelkie sztuczne dane treningowe zsyntetyzowane przez GAN nie dodadzą żadnych nowych informacji. Ten pomysł powinien być prosty.

Alex
źródło
2

W rzeczywistości jest to możliwe, aby rozszerzyć mały zestaw danych o GAN, aby go ulepszyć, a także zwiększy wydajność sieci klasyfikacyjnych, jak można przeczytać tutaj https://arxiv.org/pdf/1803.01229.pdf . Sieci GAN są w stanie nauczyć się np. Kształtów pośrednich, które nie są uwzględnione w pierwotnym zestawie danych, ale nadal są prawidłowe. Tak więc syntetyczne obrazy rzeczywiście mogą poprawić rozmiar zestawu danych i poprawić dokładność klasyfikacji CNN.

Jens K.
źródło