Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Textklassifikation mit Logistischer Regression und MLP: Ein umfassender Leitfaden für CS584

Lerne, wie du Textparagraphen mit Logistischer Regression und Multilayer-Perceptron klassifizierst – von der Datenvorverarbeitung bis zur Gradientenanalyse. Inklusive aktueller Beispiele aus NLP und KI-Trends.

Textklassifikation Logistische Regression MLP CS584 Gradientenabstieg Mini-Batch SGD TF-IDF Word2Vec Skip-Gram Negative Sampling K-Nearest Neighbors Kreuzvalidierung Recall Precision KI-Trends 2026 NLP Python

Einführung in die Textklassifikation mit CS584

Die Textklassifikation ist eine Kernaufgabe des maschinellen Lernens und wird in zahlreichen Anwendungen eingesetzt – von der Spam-Erkennung bis zur Analyse von Kundenbewertungen. In diesem Tutorial lernst du, wie du Paragraphen von drei berühmten Autoren – Fjodor Dostojewski, Arthur Conan Doyle und Jane Austen – automatisch klassifizieren kannst. Dabei baust du eigene Klassifikatoren von Grund auf, ohne auf vorgefertigte Bibliotheken für Gradientenabstieg zurückzugreifen. Dies entspricht typischen Aufgaben in Kursen wie CS584 und vermittelt dir ein tiefes Verständnis für die zugrundeliegenden Algorithmen.

Datenvorverarbeitung und Feature-Extraktion

Der erste Schritt ist die Datenvorverarbeitung: Entferne Satzzeichen, irrelevante Symbole, URLs und Zahlen. Teile jedes Dokument in einzelne Paragraphen auf – jeder Paragraph wird zu einem Beispiel. Berichte die Gesamtzahl der Beispiele pro Kategorie. Anschließend erfolgt der Data Split in Trainings- und Testdaten. Für die Feature-Extraktion erstellst du ein Vokabular basierend auf den Trainingsdaten und berechnest TF-IDF-Merkmale. Diese Merkmale repräsentieren die Wichtigkeit von Wörtern in einem Paragraphen relativ zum gesamten Korpus.

Praktischer Tipp: Nutze Regular Expressions für die Bereinigung

Ein einfaches Python-Skript mit re.sub(r'[^\w\s]', '', text) entfernt die meisten Satzzeichen. Vergiss nicht, auch Zahlen und URLs zu entfernen, da sie für die Autorenklassifikation meist irrelevant sind.

Logistische Regression mit L2-Regularisierung

Die Logistische Regression ist ein grundlegendes Modell für die Mehrklassenklassifikation. Die Kostenfunktion J mit L2-Regularisierung lautet:

J = - (1/N) * Σ_i Σ_k y_ik * log(exp(f_k) / Σ_c exp(f_c)) + λ * Σ_j w_kj²

Hierbei ist f_k die lineare Kombination der Gewichte w_k mit den Merkmalen. Die Regularisierung hilft, Überanpassung zu vermeiden, indem große Gewichte bestraft werden.

Gradientenherleitung

Die Ableitung von J nach w_k ergibt sich aus der Kettenregel. Für den Softmax-Teil erhält man:

∂J/∂w_k = - (1/N) * Σ_i x_i * (y_ik - p_k) + 2λ * w_k

wobei p_k die vorhergesagte Wahrscheinlichkeit für Klasse k ist. Diese Ableitung wird im Gradientenabstieg verwendet.

Mini-Batch- und Stochastischer Gradientenabstieg

Implementiere den Mini-Batch-Gradientenabstieg, bei dem der Gradient über einen Teil der Daten berechnet wird, und den stochastischen Gradientenabstieg (SGD), der nach jedem Beispiel aktualisiert. Zeichne die Verlustkurven und vergleiche die Konvergenzgeschwindigkeit. Typischerweise ist SGD schneller, aber unruhiger, während Mini-Batch einen Kompromiss bietet.

Multilayer Perceptron (MLP) mit Backpropagation

Ein MLP mit einer versteckten Schicht kann komplexere Zusammenhänge lernen. Die Netzwerkstruktur besteht aus einer Eingabeschicht (Anzahl der TF-IDF-Merkmale), einer versteckten Schicht (z.B. 100 Neuronen) und einer Ausgabeschicht (3 Neuronen für die Autoren). Verwende die ReLU-Aktivierung für die versteckte Schicht und Softmax für die Ausgabe. Der Optimierer ist wieder SGD oder Adam. Die Verlustfunktion ist die Kreuzentropie.

Training und Validierung

Teile die Trainingsdaten in Trainings- und Validierungssets auf. Zeichne den Trainings- und Validierungsverlust alle 100 Epochen. Führe eine Kreuzvalidierung durch, um die besten Hyperparameter zu wählen: den Regularisierungsparameter λ für die Logistische Regression und die Anzahl der Neuronen in der versteckten Schicht für das MLP. Berichte Recall und Precision für jede Kategorie auf dem Test- und Validierungsset.

Vergleich der Klassifikatoren

Die Logistische Regression ist einfacher und interpretierbarer, während das MLP durch die nichtlineare Aktivierung komplexere Muster lernen kann. In der Praxis kann das MLP eine höhere Genauigkeit erzielen, benötigt aber mehr Daten und Rechenzeit. Die Wahl hängt von der Aufgabenkomplexität und den verfügbaren Ressourcen ab.

Trend-Beispiel: Textklassifikation in KI-Apps

Aktuelle KI-Trends wie ChatGPT oder Grammarly nutzen ähnliche Techniken, um Text zu analysieren. Stell dir vor, du entwickelst eine App, die automatisch erkennt, ob ein Text von einem bestimmten Autor stammt – das ist genau das, was du hier implementierst. Solche Modelle werden auch in der Sentimentanalyse oder Spam-Erkennung eingesetzt.

Softmax und Sigmoid: Mathematische Grundlagen

Die Softmax-Funktion wandelt Logits in Wahrscheinlichkeiten um. Eine wichtige Eigenschaft ist die Invarianz gegenüber konstanten Verschiebungen: softmax(x) = softmax(x + c). Dies wird genutzt, um numerische Stabilität zu gewährleisten, indem das Maximum von x subtrahiert wird. Die Sigmoid-Funktion σ(x) = 1/(1+e^{-x}) hat die Ableitung σ'(x) = σ(x)*(1-σ(x)). Diese Ableitung wird in der Backpropagation benötigt.

Word2Vec und Skip-Gram-Modell

Das Skip-Gram-Modell lernt Wortvektoren, indem es den Kontext eines Wortes vorhersagt. Die Kostenfunktion ist die Kreuzentropie oder die Negative-Sampling-Loss-Funktion. Die Gradienten für den Zentrumsvektor v_c und die Ausgabevektoren u_w werden hergeleitet. Bei Negative Sampling wird die Wahrscheinlichkeit maximiert, dass der korrekte Kontext auftritt, und minimiert für zufällige Stichproben.

Implementierung in Python

Nutze Bibliotheken wie NumPy für die Matrixoperationen. Implementiere die Normalisierung von Zeilen, die Softmax-Kosten und die Negative-Sampling-Kosten. Teste deine Implementierung mit den bereitgestellten Testfällen.

K-Nearest Neighbors zur Analyse

Der k-NN-Algorithmus findet die k nächsten Nachbarn eines Vektors basierend auf der Kosinus-Ähnlichkeit. Dies kann verwendet werden, um ähnliche Wörter oder Paragraphen zu finden. Gib 10 Beispiele aus, die die Funktionsweise veranschaulichen.

Fazit

In diesem Tutorial hast du gelernt, wie man Textdaten vorverarbeitet, Merkmale extrahiert und zwei Klassifikatoren – Logistische Regression und MLP – von Grund auf implementiert. Die mathematischen Herleitungen der Gradienten vertiefen dein Verständnis für die Optimierung. Mit diesen Fähigkeiten kannst du komplexe NLP-Aufgaben bewältigen und bist bestens auf Prüfungen wie CS584 vorbereitet.