HerrKI mit seinem RoboterHerrKI KI verstehen · nachbauen · anwenden ⭐ 0 XP

Multi-Class Klassifikation

Mehrere Kategorien unterscheiden: Softmax und One-Hot-Encoding.

👋 HerrKI hier — heute: Apfel, Banane oder Orange?

Kennst du die Obst-Waagen im Supermarkt, die von selbst erkennen, was du aufgelegt hast? Oder deine Foto-App, die Bilder in „Essen“, „Tiere“, „Strand“ sortiert? Das ist die Königsdisziplin nach dem Ja/Nein aus dem letzten Kapitel: Multi-Class-Klassifikation — eine Entscheidung zwischen VIELEN Möglichkeiten.

🎯 Das nimmst du mit:
  • Warum ein einzelnes Sigmoid bei 3+ Klassen nicht mehr reicht
  • Wie Softmax die Ausgabe in eine Wahrscheinlichkeits-Verteilung verwandelt (Summe immer 100 %)
  • Wie Kategorien selbst zu Tensoren werden: One-Hot-Encoding
  • Der passende Fehler-Messer dazu: Categorical Crossentropy

🧅 Runter zum Tensor: Wie wird „Banane“ zu Zahlen?

Zwei Übersetzungen musst du sehen — dann ist der Rest Routine. Wir nehmen die rote, 8 cm große, 180 g schwere Frucht, die unten im Vorhersage-Formular voreingestellt ist:

1. Der Input ist wie immer ein Feature-Tensor [5]. Farbe kennst du schon als Zahlen aus „Bilder als Tensoren“ (RGB 0–255):

Größe Gewicht Rot Grün Blau [ 8 , 180 , 220 , 50 , 50 ]

2. Das Label — hier passiert der Aha-Moment: „Apfel“ kann das Netz nicht rechnen. Also bekommt jede Klasse ihren eigenen Platz im Tensor, und genau EINE Stelle ist heiß (one hot):

Apfel Banane Orange Apfel = [ 1 , 0 , 0 ] Banane = [ 0 , 1 , 0 ] Orange = [ 0 , 0 , 1 ]

(Im Modul unten kommt noch die Traube dazu — dann sind es eben vier Plätze statt drei.)

💡 Und die Antwort des Netzes? Ein Tensor derselben Form — aber mit Wahrscheinlichkeiten. Die letzte Schicht spuckt erst drei rohe Punktzahlen aus, dann macht Softmax daraus eine Verteilung — hier für unseren roten Achtzentimeter:
Rohe Punkte: Apfel 2.50 Banane 1.25 Orange 0.55 e-Funktion: e^2.50 = 12.18 e^1.25 = 3.49 e^0.55 = 1.73 Summe = 17.41 Teilen: 12.18 / 17.41 = 0.70 ← 70 % Apfel 3.49 / 17.41 = 0.20 ← 20 % Banane 1.73 / 17.41 = 0.10 ← 10 % Orange 1.00 ← immer genau 100 %

Softmax drückt also alle Ausgaben auf 0–1 UND zwingt ihre Summe auf genau 1,0 — die Klassen konkurrieren um die 100 %. Gewonnen hat der höchste Wert. Sigmoid war die Ein-Personen-Wahl, Softmax ist die Abstimmung. Und die Categorical Crossentropy schaut sich davon nur die eine Zahl an der heißen Stelle des Labels [1, 0, 0] an:

Fehler = −ln(0.70) = 0.36 // 70 % auf den richtigen Apfel: billig Fehler = −ln(0.05) = 3.00 // nur 5 % auf den Apfel, forsch daneben: 8× teurer

📊 Trainingsdaten

Das Netz lernt aus 28 Beispiel-Früchten (7 je Sorte). Wirf einen Blick auf die RGB-Spalten: Kannst du die Orangen schon an den Zahlen erkennen, bevor die Farbe daneben steht?

Nr. 📏 Größe (cm) ⚖️ Gewicht (g) 🔴 Rot 🟢 Grün 🔵 Blau Farbe Kategorie

🎓 Training starten

⚙️ Hyperparameter

Als Fehler-Messer arbeitet jetzt die Categorical Crossentropy: Sie bestraft das Netz umso härter, je selbstsicherer es auf die falsche Klasse tippt — ein zögerliches „33/33/33“ tut weniger weh als ein forsches „95 % Banane“, wenn es ein Apfel war.

🔮 Früchte klassifizieren

Bau dir dein eigenes Obst! Stell Größe, Gewicht und Farbe ein und schau, wie sich die Softmax-Verteilung entscheidet. Spannend wird's an den Grenzen: Was passiert bei einer grünen, apfelgroßen Frucht — und wie sicher ist sich das Netz dann noch?

🧠 Kurzer Check — hast du es?

1. Deine Klassen sind [Apfel, Banane, Orange]. Wie sieht das One-Hot-Label für „Banane" aus?
2. Softmax gibt [0,70 · 0,20 · 0,10] aus. Was gilt bei Softmax IMMER?
3. Warum „bestraft" die Crossentropy ein Modell besonders hart, das selbstsicher falsch liegt?
🧐 Bevor du weiterziehst, eine unbequeme Frage: Dein Netz trifft hier vielleicht 100 % — auf Früchten, die es schon kennt. Aber würde es auch die Orange vom Wochenmarkt erkennen, die es nie gesehen hat? Wie man das ehrlich prüft, ist Thema des nächsten Kapitels: „Trainieren, prüfen, bestehen“.