Was sind die Schwächen von GANs?
dem generator reicht es auch nur ein einziges bild zu generieren, dass den diskriminator überlistet, das führt zu einer geringen varianz
—> Mode collapse
das führt dann auch zum mode collapse cycle, der generator produziert das gleiche bild immer und immer weider während em training, was zu discriminator overfitting führt
Welche Probleme können beim Training von GANs auftreten?
Training ist sehr kompliziert
sobald entweder generator oder discriminator dem anderen überlegen ist ist sinvolles training unmöglich
balance muss also konstand gegeben sein
original loss führt zu vanishing gradient
oft macht man discriminator schwächer als generator weil schwerer echt aussehende bilder zu erzeugen, als die unterscheidung zu treffen
Wie funktioniert die Minimax-Funktion im Kontext von GANs?
für training machen wir gradient ascent beim discriminator und gradient decent beim generator
Problem in der praxis ist wir haben vanishing gradient wenn der discriminator perfekt unterscheiden kann.
lösung ist non saturating heuristic.
was ist problem bei non saturating heuristic
führt zu exploding gradient - wir haben dann kein zeilstrebiges lernen sondern starke sprünge
Was ist der Unterschied zwischen einem GAN und einem CycleGAN?
cycle gan verwendet img2img ansatz, hier möchte ich bilder von einer domände in die andere überführen, als inpit gebe ich nichtmehr random noise sondern bilder aus der domäne x
zum beispiel von x zu y wobei x pferde und y zebras sind
problem ist bilder können sehr unterschiedlich aussehen
Lösung ist cycle consistency loss
ich trainiere 2 Gans transferiere erst von x nach y und dann wieder zurück, diese beiden bilder sollen dann nah beieinander sein und umgekehrt
Was sind die Stärken und Schwächen von VAEs im Vergleich zu GANs?
Wie funktionieren VAEs im Allgemeinen?
Was messen der Inception Score (IS) und die Fréchet Inception Distance (FID)?
IS: ich nehme einen cnn Klassifikator der mir sagt wie gut ein generiertes bild ist. Er sollte die bilder richtig klassifizieren könnnen sollen. ich möchte eine hohe kullback leibler divergenz zwischen den generierten bildern haben weil ich dann weiss dass diverse klassen generiert werden können. Zudem soll eine klasse immer eine hohe wahscheinlichkeit haben.
Hocher inception score=besser
Schwächen: bilder die klassen haben die nicht in image net sind passen nicht . ein generator der overfittet und immer das gleiche bild generiert für eine klasse schließt trotzdem gut ab. Vergleicht nicht generierte bilde und echte bilder
FID: Ähnlichkeitsmaß zweier verteilungen
Vergleiche dann Reale und generierte bilder und wenn es ähnlich ist dann sollte es gut sein. interessanterweise funktioniert das nicht. Deswegen mache ich das mit den gelernten freatures vom pretrained cnn (inception net)
Wie funktionieren Diffusion Models im Allgemeinen?
ich beginne mit gussschem rauschen und dann gkreiere ich eine neuronales netz, dass dieses rauchn in ein bilf umwandeln kann, beim forward process wird einfach rauschen hinzugefügt, beim reverse process wird rauschen entfernt
Was ist der Forward-Schritt bei Diffusion Models und wie funktioniert er?
ich nehme großen. datensatz an bildern unddann füge ich stept by step rauschen hinzu, häufig 1000 zeitschritte
am ende sollte es nichtmehr zu unterscheiden sein von purem rauschen
am anfang sollte wenig rauschen hinzugefügt werden und am ende mehr
Was ist der Backward-Schritt bei Diffusion Models und wie funktioniert er?
ich will lernen den forward step rückgängig zu machen, hierfür verwendet man häufig unet style gnn
ich lerne einfach die differenz zwischen xt und xt-1
Wie kann man Diffusion Models konditionieren, um bestimmte Bilder (z.B. Katze statt Hund) zu generieren?
Classifier guided Diffusion:
ich trainiere cnn classifier der klassen vorhersagt bezüglich eines verauschten bildes
dann nehme ich gradienten dieses klassifikators um das duffusion model dort hin zu führen
dann wird das modell in der regel auch bilder dieser klasse generieren
Classifier free guided diffusion, mit unet architektur lernt modell sich selbst zu guiden
Die problematik ist, dassDas Modellieren von komplexen Verteilungen über hoch-dimensionale Zufallsvariablen ist schwierig, da es eine enorme Menge an Daten und Rechenressourcen erfordert, um die Verteilungen präzise zu schätzen. Latent-Variable-Modelle lösen dieses Problem, indem sie die hoch-dimensionale Datenstruktur durch niedrig-dimensionale latente Variablen approximieren, wodurch die Modellierung und Berechnung effizienter und handhabbarer wird. das modellieren sehr komplec ist.
Decoder, Ablauf: ich ziehe z aus der prior verteilung und verwenden den decoder um ein neues sample zu erzeugen2
ich nehme einen cnn Klassifikator der mir sagt wie gut ein generiertes bild ist. Er sollte die bilder richtig klassifizieren könnnen sollen. ich möchte eine hohe kullback leibler divergenz zwischen den generierten bildern haben weil ich dann weiss dass diverse klassen generiert werden können. Zudem soll eine klasse immer eine hohe wahscheinlichkeit haben.
0,5
Eingabe ist einfach ein unverrauschtes bild, dann verrausche ich das stück für stück, label ist das unverrauschte bild
unet architektur
Mean squared Error
größer als 1
funktioniert besser
Einen Generator und einen Discriminator
Der generator möchte bilder generieren die möglichst echt aussehen während der discriminator zwischen echten und gefälschten bildern unterscheiden soll
der diskriminator versucht seienn rewart zu maximieren und er generator versuch den reward des discriminators zu minimieren
GAN
+ generieren sehr hochwertige und realistische bilder
- training oft sehr instabil und shwierig zu optimieren
VAE
+stabiler und einfacher zu trainieren als gans
-bilder sind häufig weniger realistisch
Die Schwierigkeit beim Modellieren von hochdimensionalen Wahrscheinlichkeitsverteilungen, wie bei Bildern, besteht darin, dass diese Verteilungen extrem komplex sind und eine enorme Menge an Daten und Rechenleistung erfordern, um präzise geschätzt und verarbeitet zu werden.
Ein Vorteil von GANs gegenüber VAEs bezüglich der Ausgabe ist, dass GANs typischerweise schärfere und realistischere Bilder erzeugen. Dies liegt daran, dass der Generator in einem GAN durch den Diskriminator gezwungen wird, hochdetaillierte und überzeugende Bilder zu produzieren, um den Diskriminator zu täuschen, während VAEs dazu neigen, glattere und weniger detaillierte Bilder zu erzeugen, da sie die Bilder durch eine probabilistische Verteilung rekonstruieren.
Vorangegangene frage: was ist die schwierigkeit bei z.b. bilder mit hochdimensionalen warhscheinlichkeitsverteilungen modellieren
Inception score: ich nehme einen cnn Klassifikator der mir sagt wie gut ein generiertes bild ist. Er sollte die bilder richtig klassifizieren könnnen sollen. ich möchte eine hohe kullback leibler divergenz zwischen den generierten bildern haben weil ich dann weiss dass diverse klassen generiert werden können. Zudem soll eine klasse immer eine hohe wahscheinlichkeit haben.
1. Sampling aus der latenten Verteilung: Ziehe Stichproben aus der latenten Verteilung z , die in der Regel eine multivariate Normalverteilung \mathcal{N}(0, I) ist.
2. Generieren neuer Daten: Gib die gesampelten latenten Variablen z in den Decoder des VAEs ein, der daraus neue Daten x generiert.
VAEs bestehen aus einem encoder und decoder, wobei der encoder die eingabedaten transformiert und der decoder diese dann rekonstruiert.
Gans bestehen aus generator und discriminator, generator erzeugt, discriminator bewertet bilder
die wahrscheinlichkeit für echte daten und falsche daten gleich ist
und der diskriminator immer 50 50 sagen muss dass ein bild echt oder falsch ist
Graadient ist nicht berrechenbar
reparametrisierungstrick:
dem Rekonstruktionsfehler und dem dem Regularisierungsgehler
der rekonstruktionsgehler stellt sicher dass daten gut rekonstruiert werden, wohingegen der regularisierungsfehler dafür sorrgt dass das modell gut generaliseirt
Variational Autoencoder (VAE)
Nach dem Training eines VAEs können neue Daten generiert werden, indem aus der latenten Verteilung \mathcal{N}(0, I) Stichproben gezogen werden. Diese latenten Variablen werden dann durch den Decoder des VAE geleitet, um neue, ähnliche Daten zu erzeugen.
Nach dem Training eines GANs können neue Daten generiert werden, indem zufälliger Rauschvektor z aus einer Standardnormalverteilung \mathcal{N}(0, I) gezogen wird. Dieser Rauschvektor wird durch den Generator des GAN geleitet, der daraus neue, realistische Daten erzeugt.
Kl divergenz kann die varianz in einer klasse nciht berücksichtigen
Alternative ist : Frechet Inception Distance
gradient nicht berechenbar, reparametrisierungstrick
Regularisierungsfehler
x0 ist ursprüngliches bild
x0 ist immernohc ursrpüngliches bild
ein Gan
Classifier Guided Diffusion nutzt einen zusätzlichen Klassifikator während des Diffusionsprozesses, um die generierten Bilder zu steuern. Der Klassifikator beeinflusst den Rückwärtsdiffusionsprozess, indem er den Gradienten des Klassifikators verwendet, um die Verteilung der generierten Bilder in Richtung der gewünschten Klasse zu lenken. Dies verbessert die Qualität und Steuerbarkeit der generierten Bilder.
Importance Sampling: die verteilung des samlples auf relevante regionenen fokussieren.
Versteckte (latente) Zufallsvariablen: Latente Zufallsvariablen sind Variablen, die nicht direkt beobachtbar sind, sondern durch beobachtbare Daten und Modelle abgeleitet oder geschätzt werden müssen.
Beobachtbare (observable) Zufallsvariablen: Beobachtbare Zufallsvariablen sind Variablen, die direkt gemessen oder beobachtet werden können und die als Daten in einem Modell verwendet werden.
dass man nur noch ein bild pro klasse generiert
Der markierte Teil der Formel ist nicht berechenbar, weil die Sampling-Operation innerhalb der Erwartungswertberechnung eine Zufallskomponente beinhaltet.
Lösung ist reparametrisiertung
Der linke term ist : Rekonstruktionsfehler
Der Rechte term ist Generalisierungsfehler
dass der rekonsturktionsfehler des elbo nicht berechenbar ist weil sie sampling operation innerhalb der erwartungsberechnung eine zufallskomponente beinhaltet
Metrik: Frechet interception score
misst die distanz zwischen den verteilungen der echten bilder und der vom generator erzeugten bilde.
Niedrige Fid deutet darauf hin dass die erzeugten bilder ähnlich sind
Warum ist die Ground Truth Datenverteilung bei Bildern besonders schwierig zu approximieren?
Die Ground-Truth-Datenverteilung bei Bildern ist besonders schwierig zu approximieren, weil Bilder hochdimensionale und komplexe Strukturen haben, die eine enorme Vielfalt an möglichen Kombinationen und Details umfassen. Diese Vielfalt erfordert Modelle, die in der Lage sind, subtile und vielfältige Muster zu erfassen, was sowohl hohe Rechenleistung als auch große Mengen an Trainingsdaten erfordert.
Wie funktioniert ein Variational Autoencoder (VAE)?
1. Encoder:
• Der Encoder nimmt ein Eingabebild und komprimiert es in eine kleinere, latente Repräsentation.
• Diese latente Repräsentation besteht aus Mittelwert (\mu) und Standardabweichung (\sigma), die eine Verteilung definieren.
2. Sampling:
• Aus der Verteilung, die durch \mu und \sigma definiert ist, wird ein Punkt (latente Variable z) gesampelt.
• Der Reparametrisierungstrick wird verwendet, um dieses Sampling differenzierbar zu machen.
3. Decoder:
• Der Decoder nimmt die gesampelte latente Variable z und versucht, das ursprüngliche Eingabebild daraus zu rekonstruieren.
4. Training:
• Während des Trainings wird der VAE so optimiert, dass er zwei Ziele erreicht:
1. Das rekonstruierte Bild soll dem Originalbild möglichst ähnlich sein (Rekonstruktionsfehler minimieren).
2. Die latente Repräsentation soll der Standardnormalverteilung \mathcal{N}(0, 1) ähneln (Regularisierungsfehler minimieren).
Last changed4 months ago