Heim >Technologie-Peripheriegeräte >KI >Verständnis der Trainingsmethode von Autoencodern: Beginnend mit der Architekturerkundung
Verrauschte Daten sind eines der häufigsten Probleme beim maschinellen Lernen, und Autoencoder sind eine wirksame Möglichkeit, solche Probleme zu lösen. In diesem Artikel werden die Struktur und die korrekte Trainingsmethode von Autoencodern vorgestellt.
Ein Autoencoder ist ein unbeaufsichtigt lernendes künstliches neuronales Netzwerk, das zum Erlernen der Kodierung von Daten verwendet wird. Sein Ziel besteht darin, die Schlüsselmerkmale des Eingabebildes durch Training des Netzwerks zu erfassen und es in eine niedrigdimensionale Darstellung umzuwandeln, die häufig zur Verarbeitung zur Dimensionsreduzierung verwendet wird.
Autoencoder besteht aus 3 Teilen:
1. Encoder: Ein Modul, das die Eingabedaten des Trainings-Validierungs-Testsatzes in eine codierte Darstellung komprimiert, die normalerweise größer als die Eingabe ist Daten um mehrere Größenordnungen kleiner.
2. Engpass: Das Modul, das komprimierte Wissensrepräsentation enthält und daher der wichtigste Teil des Netzwerks ist.
3. Decoder: Ein Modul, das dem Netzwerk hilft, die Wissensdarstellung zu „dekomprimieren“ und die Daten aus ihrer codierten Form zu rekonstruieren. Die Ausgabe wird dann mit der Grundwahrheit verglichen.
Die gesamte Architektur sieht wie folgt aus:
Encoder
Der Encoder ist eine Reihe von Faltungsblöcken, gefolgt von einem Pooling-Modul komprimiert die Eingabe des Modells in einen kompakten Teil, den sogenannten Engpass.
Nach dem Engpass folgt der Decoder, der aus einer Reihe von Upsampling-Modulen besteht, um die komprimierten Merkmale wieder in Bildform zu bringen. Bei einem einfachen Autoencoder wird erwartet, dass die Ausgabe mit der rauschreduzierten Eingabe übereinstimmt.
Bei Variations-Autoencodern handelt es sich jedoch um ein völlig neues Bild, das aus den vom Modell als Eingabe bereitgestellten Informationen erstellt wird.
Engpass
Als wichtigster Teil des neuronalen Netzwerks begrenzt es den Informationsfluss vom Encoder zum Decoder und lässt nur die wichtigsten Informationen durch.
Da der Engpass darauf ausgelegt ist, die im Bild enthaltenen Funktionsinformationen zu erfassen, können wir sagen, dass der Engpass bei der Bildung der Wissensdarstellung der Eingabe hilft. Die Encoder-Decoder-Struktur hilft uns, mehr Informationen in Form von Daten aus dem Bild zu extrahieren und nützliche Korrelationen zwischen verschiedenen Eingaben im Netzwerk herzustellen.
Der Engpass einer komprimierten Darstellung der Eingabe verhindert außerdem, dass das neuronale Netzwerk die Eingabe speichert und die Daten überpasst. Je kleiner der Engpass ist, desto geringer ist das Risiko einer Überanpassung. Allerdings begrenzen sehr kleine Engpässe die Menge an Informationen, die gespeichert werden können, was die Wahrscheinlichkeit erhöht, dass wichtige Informationen aus der Pooling-Schicht des Encoders nach außen dringen.
Decoder
Der Decoder schließlich ist eine Reihe von Upsampling- und Faltungsblöcken, die zur Rekonstruktion der Ausgabe des Engpasses verwendet werden.
Da es sich bei der Eingabe in den Decoder um eine komprimierte Wissensdarstellung handelt, fungiert der Decoder als „Dekompressor“ und rekonstruiert das Bild aus seinen latenten Eigenschaften.
Nachdem wir die Ergebnisse und Beziehungen des Autoencoders verstanden haben, schauen wir uns an, wie man den Autoencoder richtig trainiert.
Es gibt 4 Hyperparameter, die vor dem Training des Autoencoders eingestellt werden müssen:
1. Codegröße
Die Codegröße oder Engpassgröße ist der wichtigste Hyperparameter für die Optimierung des Autoencoders. Die Engpassgröße bestimmt, wie viele Daten komprimiert werden müssen. Dies kann auch als Regularisierungsbegriff verwendet werden.
2. Anzahl der Schichten
Wie bei allen neuronalen Netzen ist die Tiefe des Encoders und Decoders ein wichtiger Hyperparameter für die Abstimmung von Autoencodern. Während höhere Tiefen die Komplexität des Modells erhöhen, erfolgt die Verarbeitung bei geringeren Tiefen schneller.
3. Anzahl der Knoten pro Schicht
Die Anzahl der Knoten pro Schicht definiert die Gewichtung, die wir für jede Schicht verwenden. Normalerweise nimmt die Anzahl der Knoten mit jeder nachfolgenden Schicht in einem Autoencoder ab, da die Eingabe in jede dieser Schichten über die Schichten hinweg kleiner wird.
4. Rekonstruktionsverlust
Die Verlustfunktion, die wir zum Trainieren des Autoencoders verwenden, hängt stark von den Eingabe- und Ausgabetypen ab, an die sich der Autoencoder anpassen soll. Wenn wir uns mit Bilddaten befassen, sind die beliebtesten Rekonstruktionsverlustfunktionen die MSE-Verlustfunktion und die L1-Verlustfunktion. Wir können auch binäre Kreuzentropie als Rekonstruktionsverlust verwenden, wenn Eingabe und Ausgabe im Bereich [0,1] liegen, wie im MNIST-Datensatz.
Das obige ist der detaillierte Inhalt vonVerständnis der Trainingsmethode von Autoencodern: Beginnend mit der Architekturerkundung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!