faecher:informatik:oberstufe:machine_learning:mljs:perzeptron:start

Perzeptron

Es gibt zwei Gruppen:

  • Die Gehirn Gruppe kann nichts sehen und erhält Informationen von der Augen-Gruppe.
  • Die Augen Gruppe hat für jedes Merkmal nur zwei Möglichkeiten der Medlung an die Gehirn-Gruppe: Ja/Nein, bzw. 0 oder 1 - je nachdem, ob das Merkmal erfüllt ist, oder nicht.
  1. Hinter der Gehirn-Gruppe wird ein Trainings-Bild hochgehalten.
  2. Die Augen-Gruppe stellt für jedes sichtbare Merkmal das passende Stellschild auf.
  3. Die Gehirn-Gruppe schaut, was durch die Verbindungen bei ihnen ankommt: Die Ausprägung jedes Merkmals (0/1) multiplizieren sie mit der Anzahl der Wäscheklammern auf der Schnur und legen Chips in der passenden Anzahl und Farbe unter die Klammern.
  4. Die Gehirn-Gruppe zeigt Ergebnis: Wer mehr blaue als rote Chips hat, hält die blaue 0 hoch. Bei mehr roten als blauen Chips oder Gleichstand, wird die rote 1 gezeigt.

Man kann mit den dargestellten "Wäscheklammerverteilungen" beginnen - warum?

Du kannst das Wollfadenperzeptron auch ohne Wollfäden ausprobieren, um zu verstehen, wie es "lernt":

  • Du kannst die folierten Ausdrucke verwenden und die Gewichte als Zahlen in die blauen/roten Felder schreiben.
  • Oder du kannst das Bild/die PDF-Datei in deinem Tablet laden, um dort die Gewichte und die Ergebnisse für jedes Trainingsbild zu notieren.

Material

  • Lade dir die Trainingsbilder herunter und entpacke sie. Wähle jeweils 2 beliebige Bilder jeder Sportart aus und verschiebe sie in einen anderen Ordner, den du "test" nennst.
  • Nimm von den verbliebenen Bildern eines und "trainiere" das Perzeptron mit diesem Bild:
    • Die "Augen" analysieren das Bild und tragen auf der Eingabeseite die erkannten Merkmale mit 0/1 ein.
    • Das "Gehirn" betrachtet die Eingänge und berechnet jeweils den Wert Merkmal*Gewicht. Beim ersten Trainingsbild sind alle Gewichte 1.
    • Die "roten" Summen und die "blauen" Summen werden gebildet.
    • Wenn die blaue Summe größer ist als die rote, ist das Ergebnis "Blau" (falsch). Wenn die rote Summe größer ist oder bei Gleichstand ist das Ergebnis "Rot" (richtig).

Aus Fehlern lernen: Bei diesem Vorgang werden falsche Aussagen entstehen: Das Ergebnis für "Skifahren" ist "richtig", obwohl auf dem Bild ein Fußballer zu sehen war o.ä. Um zu "lernen", passen wir jetzt die Gewichte an, in der Hoffnung, dass die Erkennung sich dadurch verbessert, und das geht so:

  • War das Ergebnis "Rot" statt "Blau", dann werden alle Gewichte, durch die eine 1 angekommen ist, "blauer". D.h. die Gewichte der blaue Eingänge werden um eins vergrößert, bei roten Eingängen wird das Gewicht um eins verkleinert. (Dabei können auch negative Werte auftreten)
  • War das Ergebnis "Blau" statt "Rot", dann werden alle Gewichte, durch die eine 1 angekommen ist, "roter". D.h. die Gewichte der blaue Eingänge werden um eins verkleinert, bei roten Eingängen wird das Gewicht um eins vergrößert.
  • Bei den korrekten Ergebnissen werden die Gewichte nicht verändert.

Führe jetzt die Gewichtsanpassungen durch, notiere die neuen Gewichte an den Eingängen und trainiere das Netz mit dem nächsten Bild.

Wenn du alle Trainingsbilder verwendet hast, kannst du die so gefundenen Gewichte mit den Testbildern testen.

Etwas allgemeiner und formaler

Ein Perzeptron ist ein simuliertes Neuron:

Eingänge:

  • Mehrere durch die Gewichte $w_i$ gewichtete Einflussfaktoren $e_i$
  • Ein Schwellwert $s$ ("Bias")

Erregungspotential $p=s + e_1\cdot w_1 + e_2\cdot w_2 +e_2\cdot w_2 ... $

Das Erregungspotential geht in eine Aktivierungsfunktion, die festlegt, was am Ausgang a des künstlichen Neurons ausgegeben wird. Es gibt unterschiedliche Aktivierungsfunktionen:

Sprungfunktion Sigmoidfunktion reLU Funktion

Tierklassifikator

Hier findest du ein BlueJ-Projekt, mit dem Tiere anhand der beiden Eigenschaften "Gefährlichkeit" und "Lautstärke" klassifiziert werden können: Tierklassifikator.

Starte die JavaFX Anwendung in der Klasse "TierKlassifikatorFX" und untersuche ihre Funktionsweise. Beschreibe, was das Programm macht und wie es seine Ergebnisse anzeigt. Welche Bedeutung haben die Punkte am unteren Rand?

Untersuche die Klasse "Neuronen":

  • Wie funktionieren die Neuronen für die Zuordnungen der Tiere?
  • Was sind die Eingabewerte?
  • Was für eine Aktivierungsfunktion wird verwendet?

Untersuche die Klasse "TierklassifikatorFX":

  • An welcher Stelle wird bestimmt, wie groß das Bild eines Tiers gezeichnet werden soll? Welche Information wird dafür verwendet? Wie wird diese Größe im Programm ermittelt?
  • Ändere das Programm so, dass durch die Größe keine "Wahrscheinlichkeit für ein Tier" mehr repräsentiert wird, sondern eine klare Entscheidung getroffen wird, welches Tier angezeigt wird.

Zeichne das Neuronale Netz für das Klassifikationsprogramm mit Eingangs- und Ausgangsneuronen.

  • faecher/informatik/oberstufe/machine_learning/mljs/perzeptron/start.txt
  • Zuletzt geändert: 08.03.2025 15:52
  • von Michael Sedding