AI-For-Beginners/translations/de/lessons/4-ComputerVision/09-Autoencoders
leestott 464396d431 🌐 Update translations via Co-op Translator 2025-08-24 10:52:15 +00:00
..
README.md 🌐 Update translations via Co-op Translator 2025-08-24 10:52:15 +00:00

README.md

Autoencoder

Beim Training von CNNs besteht eines der Probleme darin, dass wir viele gelabelte Daten benötigen. Im Fall der Bildklassifikation müssen wir Bilder in verschiedene Klassen unterteilen, was manuell erfolgen muss.

Quiz vor der Vorlesung

Wir möchten jedoch möglicherweise rohe (nicht gelabelte) Daten verwenden, um CNN-Feature-Extraktoren zu trainieren, was als selbstüberwachtes Lernen bezeichnet wird. Anstelle von Labels verwenden wir Trainingsbilder sowohl als Netzwerkeingabe als auch als -ausgabe. Die Hauptidee des Autoencoders besteht darin, dass wir ein Encoder-Netzwerk haben, das das Eingabebild in einen latenten Raum umwandelt (normalerweise ist dies einfach ein Vektor mit kleinerer Größe), und dann ein Decoder-Netzwerk, dessen Ziel es ist, das ursprüngliche Bild zu rekonstruieren.

Ein Autoencoder ist "eine Art künstliches neuronales Netzwerk, das verwendet wird, um effiziente Kodierungen von nicht gelabelten Daten zu lernen."

Da wir einen Autoencoder trainieren, um so viele Informationen wie möglich aus dem ursprünglichen Bild für eine genaue Rekonstruktion zu erfassen, versucht das Netzwerk, die beste Einbettung der Eingabebilder zu finden, um die Bedeutung zu erfassen.

AutoEncoder Diagramm

Bild von Keras Blog

Szenarien für die Verwendung von Autoencodern

Obwohl die Rekonstruktion ursprünglicher Bilder an sich nicht nützlich erscheint, gibt es einige Szenarien, in denen Autoencoder besonders hilfreich sind:

  • Reduzierung der Dimension von Bildern zur Visualisierung oder Training von Bild-Einbettungen. Autoencoder liefern normalerweise bessere Ergebnisse als PCA, da sie die räumliche Natur von Bildern und hierarchische Merkmale berücksichtigen.
  • Rauschunterdrückung, d.h. das Entfernen von Rauschen aus dem Bild. Da Rauschen viele unnütze Informationen enthält, kann der Autoencoder nicht alles in den relativ kleinen latenten Raum einpassen und erfasst daher nur den wichtigen Teil des Bildes. Beim Training von Rauschunterdrückern beginnen wir mit den ursprünglichen Bildern und verwenden Bilder mit künstlich hinzugefügtem Rauschen als Eingabe für den Autoencoder.
  • Superauflösung, Erhöhung der Bildauflösung. Wir beginnen mit hochauflösenden Bildern und verwenden das Bild mit niedrigerer Auflösung als Eingabe für den Autoencoder.
  • Generative Modelle. Sobald wir den Autoencoder trainiert haben, kann der Decoder-Teil verwendet werden, um neue Objekte aus zufälligen latenten Vektoren zu erstellen.

Variationale Autoencoder (VAE)

Traditionelle Autoencoder reduzieren die Dimension der Eingabedaten auf irgendeine Weise und identifizieren die wichtigen Merkmale der Eingabebilder. Allerdings machen latente Vektoren oft wenig Sinn. Mit anderen Worten, wenn wir das MNIST-Dataset als Beispiel nehmen, ist es nicht einfach herauszufinden, welche Ziffern zu verschiedenen latenten Vektoren gehören, da nahe latente Vektoren nicht unbedingt denselben Ziffern entsprechen.

Um generative Modelle zu trainieren, ist es jedoch besser, ein Verständnis des latenten Raums zu haben. Diese Idee führt uns zu variationalen Autoencodern (VAE).

Ein VAE ist ein Autoencoder, der lernt, die statistische Verteilung der latenten Parameter vorherzusagen, die sogenannte latente Verteilung. Zum Beispiel möchten wir möglicherweise, dass latente Vektoren normal verteilt sind mit einem Mittelwert zmean und einer Standardabweichung zsigma (sowohl Mittelwert als auch Standardabweichung sind Vektoren einer bestimmten Dimensionalität d). Der Encoder im VAE lernt, diese Parameter vorherzusagen, und der Decoder nimmt dann einen zufälligen Vektor aus dieser Verteilung, um das Objekt zu rekonstruieren.

Zusammengefasst:

  • Aus dem Eingabevektor sagen wir z_mean und z_log_sigma voraus (anstatt die Standardabweichung selbst vorherzusagen, sagen wir deren Logarithmus voraus).
  • Wir entnehmen einen Vektor sample aus der Verteilung N(zmean,exp(zlog_sigma)).
  • Der Decoder versucht, das ursprüngliche Bild mithilfe von sample als Eingabevektor zu dekodieren.

Bild aus diesem Blogbeitrag von Isaak Dykeman

Variationale Autoencoder verwenden eine komplexe Verlustfunktion, die aus zwei Teilen besteht:

  • Rekonstruktionsverlust ist die Verlustfunktion, die zeigt, wie nah ein rekonstruiertes Bild am Ziel ist (es kann Mean Squared Error oder MSE sein). Es ist dieselbe Verlustfunktion wie bei normalen Autoencodern.
  • KL-Verlust, der sicherstellt, dass die Verteilung der latenten Variablen nahe an der Normalverteilung bleibt. Er basiert auf dem Konzept der Kullback-Leibler-Divergenz - einem Maß zur Schätzung der Ähnlichkeit zweier statistischer Verteilungen.

Ein wichtiger Vorteil von VAEs ist, dass sie es uns ermöglichen, relativ einfach neue Bilder zu generieren, da wir wissen, aus welcher Verteilung wir latente Vektoren entnehmen müssen. Wenn wir beispielsweise einen VAE mit einem 2D-latenten Vektor auf MNIST trainieren, können wir dann die Komponenten des latenten Vektors variieren, um verschiedene Ziffern zu erhalten:

vaemnist

Bild von Dmitry Soshnikov

Beobachten Sie, wie Bilder ineinander übergehen, wenn wir beginnen, latente Vektoren aus verschiedenen Bereichen des latenten Parameterraums zu entnehmen. Wir können diesen Raum auch in 2D visualisieren:

vaemnist cluster

Bild von Dmitry Soshnikov

✍️ Übungen: Autoencoder

Erfahren Sie mehr über Autoencoder in den entsprechenden Notebooks:

Eigenschaften von Autoencodern

  • Daten-spezifisch - sie funktionieren nur gut mit der Art von Bildern, auf denen sie trainiert wurden. Wenn wir beispielsweise ein Superauflösungsnetzwerk auf Blumen trainieren, wird es bei Porträts nicht gut funktionieren. Dies liegt daran, dass das Netzwerk ein hochauflösendes Bild erzeugen kann, indem es feine Details aus den Merkmalen des Trainingsdatensatzes entnimmt.
  • Verlustbehaftet - das rekonstruierte Bild ist nicht identisch mit dem ursprünglichen Bild. Die Art des Verlusts wird durch die Verlustfunktion definiert, die während des Trainings verwendet wird.
  • Funktioniert mit nicht gelabelten Daten

Quiz nach der Vorlesung

Fazit

In dieser Lektion haben Sie die verschiedenen Arten von Autoencodern kennengelernt, die einem KI-Wissenschaftler zur Verfügung stehen. Sie haben gelernt, wie man sie erstellt und wie man sie verwendet, um Bilder zu rekonstruieren. Sie haben auch den VAE kennengelernt und erfahren, wie man ihn verwendet, um neue Bilder zu generieren.

🚀 Herausforderung

In dieser Lektion haben Sie gelernt, wie man Autoencoder für Bilder verwendet. Aber sie können auch für Musik verwendet werden! Schauen Sie sich das MusicVAE-Projekt des Magenta-Projekts an, das Autoencoder verwendet, um Musik zu rekonstruieren. Machen Sie einige Experimente mit dieser Bibliothek, um zu sehen, was Sie erstellen können.

Quiz nach der Vorlesung

Überprüfung & Selbststudium

Lesen Sie zur Referenz mehr über Autoencoder in diesen Ressourcen:

Aufgabe

Am Ende dieses Notebooks mit TensorFlow finden Sie eine 'Aufgabe' - verwenden Sie diese als Ihre Aufgabe.

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.