Autoencoder für Repräsentationslernen
Encoder-Decoder-Architektur, Bottleneck, Rekonstruktionsverlust, Anwendungen in der Anomalieerkennung.
Autoencoder für Repräsentationslernen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein Autoencoder?
Ein Autoencoder lernt, Daten in einen kleinen Code zu komprimieren und anschließend wieder zu rekonstruieren. Er besteht aus zwei Hälften: einem Encoder, der komprimiert, und einem Decoder, der rekonstruiert. Die Verengung in der Mitte zwingt ihn, das Wesentliche zu lernen.
import torch
import torch.nn as nnDie Bottleneck-Idee
Die schmale mittlere Schicht ist der Bottleneck oder latente Code. Indem alle Informationen durch wenige Zahlen geleitet werden, muss das Netz Rauschen verwerfen und die wesentliche Struktur der Daten beibehalten.
Den Encoder aufbauen
Bei Bildern mit 28x28 Pixeln (784 Pixel) verkleinert der Encoder die Eingabe Schritt für Schritt: von 784 über 256 zu einem 64-dimensionalen latenten Code. Auf jede Linear-Schicht folgt eine ReLU-Nichtlinearität.
encoder = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Linear(256, 64)
)Den Decoder erstellen
Der Decoder spiegelt den Encoder wider und erweitert den 64-dimensionalen Code wieder auf 784 Pixel. Eine abschließende Sigmoid-Funktion begrenzt die Ausgaben auf [0,1], damit sie zu den normalisierten Pixelwerten passen.
decoder = nn.Sequential(
nn.Linear(64, 256),
nn.ReLU(),
nn.Linear(256, 784),
nn.Sigmoid()
)Der vollständige Autoencoder
Verbinden Sie Encoder und Decoder zu einem Modul. Der Forward-Pass kodiert zunächst die Eingabe und dekodiert sie anschließend. Das Ergebnis ist eine Rekonstruktion mit derselben Form wie die Eingabe.
class AutoEncoder(nn.Module):
def __init__(self, enc, dec):
super().__init__()
self.enc, self.dec = enc, dec
def forward(self, x):
z = self.enc(x)
return self.dec(z)Rekonstruktionsverlust (MSE)
Das Trainingsziel ist die Eingabe selbst. Der mittlere quadratische Fehler misst Pixel für Pixel, wie stark sich die Rekonstruktion vom Original unterscheidet. Durch seine Minimierung lernt das Modell eine möglichst originalgetreue Komprimierung.
criterion = nn.MSELoss()
x_flat = x.view(x.size(0), -1)
recon = model(x_flat)
loss = criterion(recon, x_flat)Den Autoencoder trainieren
Das Training erfolgt unüberwacht: Es gibt keine Labels, sondern nur Eingaben. Die Schleife besteht wie üblich aus zero_grad, forward, backward und step, aber der Verlust vergleicht die Ausgabe mit der Eingabe.
optimizer.zero_grad()
recon = model(x_flat)
loss = criterion(recon, x_flat)
loss.backward()
optimizer.step()Der latente Raum
Nach dem Training bildet der Encoder jede Eingabe auf einen Punkt im latenten Raum ab. Ähnliche Eingaben landen nahe beieinander, sodass dieser 64-dimensionale Code eine erlernte, kompakte Darstellung der Daten ist.
z = model.enc(x_flat)
print(z.shape) # [batch, 64]Visualisierung mit t-SNE
Der 64-dimensionale latente Raum ist schwer zu visualisieren. t-SNE projiziert ihn für die Darstellung auf zwei Dimensionen. Die Cluster in der Darstellung zeigen, dass der Autoencoder ähnliche Objekte gruppiert hat, ohne jemals Labels zu sehen.
from sklearn.manifold import TSNE
codes = model.enc(all_data).detach().numpy()
proj = TSNE(n_components=2).fit_transform(codes)
# scatter plot proj colored by true labelAnomalieerkennung
Ein auf normalen Daten trainierter Autoencoder rekonstruiert diese gut, hat aber Schwierigkeiten mit ihm unbekannten Anomalien. Ein hoher Rekonstruktionsfehler kennzeichnet einen Ausreißer und ermöglicht so eine leistungsfähige unüberwachte Anomalieerkennung.
errors = ((model(data) - data) ** 2).mean(dim=1)
anomalies = errors > thresholdWarum Repräsentationslernen?
Der eigentliche Gewinn ist der latente Code: ein erlernter Feature-Vektor, den Sie für Clustering, Visualisierung und Anomalieerkennung oder als Eingabe für ein anderes Modell verwenden können – und das alles ohne Labels.
Kurzer Test
Testen Sie Ihr Verständnis von Autoencodern.
Zusammenfassung: Autoencoder
Sie haben einen Encoder (784 zu 256 zu 64) und einen dazu passenden Decoder erstellt und ohne Labels mit dem MSE-Rekonstruktionsverlust trainiert. Sie haben den latenten Code für das Repräsentationslernen verwendet, ihn mit t-SNE visualisiert und Anomalien anhand eines hohen Rekonstruktionsfehlers erkannt.
Häufig gestellte Fragen
Ist die Lektion „Autoencoder für Repräsentationslernen“ kostenlos?
Ja — der vollständige Text von „Autoencoder für Repräsentationslernen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Autoencoder für Repräsentationslernen“?
Encoder-Decoder-Architektur, Bottleneck, Rekonstruktionsverlust, Anwendungen in der Anomalieerkennung. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Autoencoder für Repräsentationslernen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Autoencoder für Repräsentationslernen
- Variational Autoencoder (VAE)
- GANs: Generator und Diskriminator
- Bedingte GANs und Style Transfer