====== 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? ++++