Neuronale Netze

Die künstlichen neuronalen Netze (KNN) sind eine Abstraktion der Informationsverarbeitung, die im Gehirn und im Nervensystem der Menschen und der Tiere verläuft. Dabei werden die physiologischen Vorgänge nicht nachgebildet, sondern nur versucht, die Architektur der massiv parallelen Informationsverarbeitung des Gehirns nachzubauen.
Die KNN bestehen aus mehreren miteinander verknüften Neuronen, die in verschienenen Schichten organisiert werden. Zwischen diesen Neuronenschichten findet eben der Informationsaustausch statt. Die Anzahl der Schichten und der Neuronen innerhalb einer Schicht kann je nach Eingabe variieren. Man unterscheidet zwischen drei verschiedenen Arten von Schichten.

  • Eingabeschicht
  • Sie erhält die Eingabe und leitet sie in das Netz weiter.
  • Verdeckte(n) Schicht(en)
  • Sie dient/dienen zur Informationsverarbeitung innerhalb des neuronalen Netzes.
  • Ausgabeschicht
  • Sie gibt die Ausgabe des Netzes nach aussen.

Um die Funktionsweise der neuronalen Netze (NN) verstehen zu können und ein erfolgreiches Lernen durchführen zu können, muss man zuerst die Struktur eines künstlichen Neurons als Hauptbaustein der NN kennenlernen. Ein Neuron kann durch einige Basiselemente beschrieben werden.

  • Eingabewerte
  • In diesem Fall sind die Eingabewerte die einzelnen Pixels der Bilder. Ein schwarzes Pixel wird durch 0 und ein weißes durch 1 präsentiert.

  • Gewichte
  • Die Gewichte des Neurons bestimmen den Grad des Einflusses, den die Eingaben des in der Berechnung der späteren Netzaktivität einnehmen.

  • Netzaktivität
  • Die Übertragungsfunktion ? berechnet anhand der Gewichte die Netzaktivität des Neurons.

  • Aktivierungsfunktion
  • Sie bestimmt das Lernverhalten der Neuronen.
    • Lineare Funktion
    • m = Steigung der Funktion
      b = "Achsenabschnitt" der Funktion

    • Schwellenwert- oder Treppenfunktion
    • Sigmoidfunktion
    • a = Steigungsmass für die Sigmoidfunktion

  • Ausgabe
  • Das Ergebnis der Aktivierungsfunktion bezeichnet man als Ausgabe des künstlichen Neurons.

Der prinzipelle Aufbau eines künstlichen Neurons wird wie folgt darsgestellt.

Das Lernen an sich wird zumeist als Gewichtsveränderung zwischen den einzelnen Einheiten (Neuronen) definiert. In diesem Zusammenhang hängt die Erfolgsrate des Lernprozesses vor allem von der Lernsverfahren und von der verwendeten Lernregeln ab. Diese Lernverfahren bringen ein neuronales Netz dazu, für bestimmte Eingabemuster zugehörige Ausgabemuster zu erzeugen. Dies geschieht auf drei verschiedene Wege- überwachtes, unüberwachtes und bestärkendes Lernen.
Beim überwachten Lernen hat man einen "Lehrer", der genau vorgibt, wie die Ausgabe aussehen soll. Beim bestärkenden dagegen ist ein "Kritiker", der zum Schluss "mitteilt",ob die produzierte Ausgabe korrekt oder falsch gewesen ist. Das unüberwachte Lernen hingegen erfolgt ausschließlich nur durch Eingabe der zu lernenden Muster, d.h. es wird keine Ausgabe vorgegeben.
Als Ansatz für die konkrete Problemstellung habe ich das überwachte Lernverfahren und die Backpropagation-Lernregel angewendet.

Backpropagation

Zum Lösen des OCR-Problems im Rahmen des Projekts habe ich Feedforward Netze definiert und dabei die Backpropagation-Lernregel verwendet. Die Feedforward Netze sind NN, welche keine Zyklen enthalten. Man unterscheidet singlelayer und multilayer Netze. Im Gegensatz zu den multilayer feedforward Netze haben die singlelayer NN nur Eingabe- und Ausgabeschicht
Die Backpropagation ist ein verbreitetes überwachtes Verfahren für das Einlernen von künstlichen neuronalen Netze, d.h es muss dazu ein externer Lehrer existieren, der zu jedem Zeitpunkt der Eingabe die gewünschte Ausgabe kennt.
Ich habe ein mehrschichtiges Feedforward-Netz benutzt, das die Backpropagation-Lernregel zur Modifikation der Gewichte einsetzt. Ausserdem habe ich die Sigmoid-Aktivierungsfunktion wegen ihrer günstigen Eigenschaften (z.B Differenzierbarkeit) verwendet wird. Sie ist auch im Prinzip die am häufigsten angewendete Funktion.

Der Backpropagation-Algorithmus läuft in folgenden Phasen:

  • Forward pass
  • Die Eingabe wird angelegt und vorwärts propagiert bis die Ausgabeschicht erreicht wird und die Ausgabe ermittelt wird.

  • Fehlerbestimmung
  • Der "Lehrer" vergleicht die im forward pass ermittelten Ausgabe mit der vordefinierten Ausgabe. Die Differenz der beiden Werte wird als Fehler des Netzes definiert. Wenn er einen vorgegebenen Wert nicht überschreitet folgt der nächste Schritt.

  • Backward pass
  • Hier erfolgt die Modifizierung der Gewichte nach und nach in entgegengesetzte Richtungbis zur Erreichung der Eingabeschicht. Dies garantiert bei einem erneuten Anlegen der Eingabe eine Annäherung an die gewünschte Ausgabe.
Der ganze Vorgang wird mehrfach wiederholt, bis der Gesamtfehler entweder klein genug ausfällt oder die zuvor festgelegte maximale Anzahl von Wiederholungen erreicht worden ist.

Abb. Schematische Darstellung der Backpropagation