====== Perzeptron Aufgaben ======
===== Aufgabe: Klassifikation AND/OR und das XOR-Problem =====
Einfache (klassische) Perzeptron-Probleme wie das UND/ODER und das XOR-Problem werden im Abschnitt Lernalgorithmus behandelt ([[lernalgorithmus|siehe dort]]).
===== Aufgabe: Klassifikation von Iris setosa =====
//
Der **Iris-Datensatz** ist einer der bekanntesten Datensätze im Bereich maschinelles Lernen. Er enthält Messungen von drei verschiedenen Schwertlilienarten (**Iris setosa**, **Iris versicolor**, **Iris virginica**).
\\
Der Datensatz wurde ursprünglich **1936 von Ronald A. Fisher** veröffentlicht und ist frei verfügbar ([[https://de.wikipedia.org/wiki/Schwertlilien-Datensatz|Schwertlilien-Datensatz (Wikipedia)]]).
\\
Die Daten enthalten vier messbare Merkmale der Blüte, die als Eingabe für das neuronale Netz dienen, sowie den Namen der Art als Ausgabe.
//
Das Ziel dieser Aufgabe ist es, ein **einfaches Perzeptron** zu trainieren, das automatisch erkennt, ob eine gegebene Blume zur Art **Iris setosa** gehört oder nicht.
^ **Iris setosa** ^ **Iris versicolor** ^ **Iris virginica** ^
| {{ :inf:ki:resized_setosa.jpg?200 |}} |{{ :inf:ki:resized_versicolor.jpg?200 |}} | {{ :inf:ki:resized_virginica.jpg?200 |}} |
==== Datenformat (CSV) ====
Der Datensatz liegt als **CSV-Datei** vor, in der die Werte **mit Semikolon (`;`) getrennt** sind. Jede Zeile enthält die Messwerte einer Blume mit den folgenden Spalten:
* **Art** (Setosa, Versicolor oder Virginica)
* **Kelchblattlänge (cm)**
* **Kelchblattbreite (cm)**
* **Kronblattlänge (cm)**
* **Kronblattbreite (cm)**
**Download Iris-Datensatz als //gezippte// CSV-Datei.**
{{ :inf:ki:iris_datensatz.csv.zip |}}
==== Aufgabe ====
^ **Topologie des Netzwerks** ^
|{{ :inf:ki:iris-nn.png?200 |}}|
|Ein Perzeptron mit vier Eingangsneuronen (insgesamt fünf Gewichten) und einem Ausgangsneuron für die Klassifizierung der Art. |
- **Laden Sie den Datensatz** und bereiten Sie die Daten für das Training vor.
- **Teilen Sie den Datensatz** in **80% Trainingsdaten** und **20% Testdaten**.
- **Kodieren Sie das Problem als binäre Klassifikation**:
* **Setosa = 1**
* **Nicht-Setosa (Versicolor/Virginica) = 0**
- **Trainieren Sie das Modell** mit dem Trainingsdatensatz.
- **Bewerten Sie die Klassifikationsgenauigkeit** auf dem Testdatensatz.
Verwenden Sie die Schwellenwertfunktion als Aktivierungsfunktion.
Die Schwelle kann als 5. Eingabeneuron mit dem konstanten Input **1** moduliert werden.
==== Analyse ====
++++ Perzeptron lernen |
Wir untersuchen jetzt genauer, warum das Perzeptron in der Lage ist, diese Aufgabe zu lernen.
=== Streudiagramm ===
Erstellen Sie eine grafische Darstellung, um die Funktionsweise des Perzeptrons zu veranschaulichen.
* Wählen Sie **zwei Merkmale** des Datensatzes aus (**Kronblattlänge und Kronblattbreite**).
* Erstellen Sie ein **Streudiagramm**, in dem:
* Die **Datenpunkte für Setosa** in einer Farbe dargestellt werden.
* Die **Datenpunkte für Nicht-Setosa** in einer anderen Farbe dargestellt werden.
Betrachten Sie den Graphen: **Was fällt auf?**
=== Entscheidungsgrenze ===
Jetzt untersuchen wir, wie das Perzeptron gelernt hat, das Problem zu klassifizieren.
Das Perzeptron berechnet eine gewichtete Summe der Eingaben und entscheidet nach einer Schwellenwertfunktion:
$$ y =
\begin{cases}
1, & \text{falls } w_1 x_1 + w_2 x_2 + b \geq 0 \\
0, & \text{sonst}
\end{cases}
$$
Hier sind:
* \( x_1 \) = Kronblattlänge
* \( x_2 \) = Kronblattbreite
* \( w_1, w_2 \) = Gewichte, die das Perzeptron gelernt hat
* \( b \) = Bias (wird durch das fünfte Eingangsneuron mit Wert 1 gesteuert)
Die **Entscheidungsgrenze** tritt genau dann auf, wenn die gewichtete Summe **gleich Null** ist:
$$ w_1 x_1 + w_2 x_2 + b = 0 $$
* Zeigen Sie, dass dies **äquivalent zu einer Geradengleichung** der Form \( y = mx + b \) ist, und zeichnen Sie die Gerade in das Diagramm ein.
* Wiederholen Sie das Lernen und vergleichen Sie die Diagramme.
Diskutieren Sie das Ergebnis.
++++
++++ Zusatzaufgabe: 3D-Visualisierung |
Erstellen Sie eine **3D-Darstellung**, um zu untersuchen, wie das Perzeptron die Klassifikation vornimmt.
* Verwenden Sie die folgenden drei Merkmale als Achsen:
* **Kronblattlänge (x-Achse)**
* **Kronblattbreite (y-Achse)**
* **Kelchblattlänge (z-Achse)**
* Erstellen Sie ein **3D-Streudiagramm**, in dem:
* Die **Datenpunkte für Setosa** in einer Farbe dargestellt werden.
* Die **Datenpunkte für Nicht-Setosa** in einer anderen Farbe dargestellt werden.
* Ermitteln Sie die **Entscheidungsgrenze des Perzeptrons** und stellen Sie diese als **Ebene im 3D-Raum** dar.
Diskutieren Sie das Ergebnis:
* Trennen sich die Klassen im 3D-Raum eindeutig?
* Wie unterscheidet sich die Trennung von der 2D-Darstellung?
++++