Vorherige Seite: K3 - Klassifikation mittels Support Vector Machines
Nächste Seite: K4 - Neuronale Netze trainieren

Bisher wurden Vorhersagen oder Entscheidungsregeln durch das Lösen von Optimierungsproblemen behandelt. Stattdessen könnte aber der Frage nachgegangen werden, wie menschliches Lernen bzw. Denken möglich ist und sich von entsprechenden Beispielen aus der Natur inpsirieren zu lassen. Es kann dann versucht werden, die gewonnen Erkenntnisse in ein Modell umzusetzen, dass sich im Computer implementieren lässt.

So kann zum Beispiel ein sehr vereinfachtes Modell eines Neurons betrachtet werden. Dieses verfügt über Dendrite die Signale einsammeln und an das Soma weiterleiten. Dort werden diese verarbeitet. Das Axon leitet dann ein Signal weiter, wenn eine bestimmte Schwelle von den Signalen im Soma überschritten wurde. Daraus wurde um 1957 herum das Perzepton von Frank Rosenblatt entwickelt.

Ein solches Perzeptron verfügt über   Dendrite, die jeweils eine Zahl   als Eingabe entgegen nehmen und an das Soma weiterleiten. Das Eingabeobjekt des Perzeptrons ist damit ein Vektor  . Im Soma werden diese mit Gewichten   und   zu einer neuen Ausgabe

 

weiter verarbeitet. Hierfür wird wie üblich   betrachtet. Das Axon verfügt über eine Aktivierungsfunktion

 

bei der es sich Beispielsweise um die Sigmoid-Funktion handeln kann.

Aufbau von Netzen

Bearbeiten

In biologischen Systemen finden die Denkprozesse nicht in isolierten Neuronen statt sondern durch die Vernetzung dieser untereinander. Aus diesem Grund erscheint es sinnvoll das Modell dahingehend auszuweiten, dass es mehrere Neuronen (sprich mehrere Somata mit je einem Axon) gibt, welche neue Ausgabewerte   generieren. Da jedes dieser Somata mit eigenen Gewichten bedacht ist, würde sich für deren Ausgabe der Ausdruck

 

ergeben. Wodurch sich   solcher nebeneinander angeordneter Neuronen durch einen Vektor   und eine Gewichtsmatrix   beschreiben lassen. Die schlussendliche Ausgabe der Axonen geschieht erneut durch das auswerten von Aktivierungsfunktionen. Typischerweise wird für alle Axonen die selbe Aktivierungsfunktion

 

verwendet. Manchmal werden auch etwas salopp Ausdrücke wie   geschrieben, womit eine komponentenweise Auswertung der Sigmoidfunktion gemeint ist.

Eine solche Anordnung von   Neuronen nebeneinander wird als eine Schicht bezeichnet. Die Anzahl   ist die Breite dieser Schicht. Es ist nun möglich die entstandene Ausgabe als eine neue Eingabe für eine weitere Schicht zu verwenden. Auf diese Weise können mehrere Schichten hintereinander gesetzt werden. Die Anzahl der Schichten   wird als Tiefe eines Neuronalen Netzes bezeichnet.

Mathematische Beschreibung

Bearbeiten

In einem Neuronalen Netz mit   Schichten, kann jede Schicht mit   durch eine Funktion

 

mit der Aktivierungsfunktion

 

der Gewichtematrix   und dem Verzerrungsvektor   beschrieben werden. Da die Vektoren von Schicht zu Schicht nach vorne weiter gereicht werden, wird von einem Forward Pass gesprochen. Ein solches Netzt wird als vorwärtsgerichtetes Neuronales Netz bezeichnet. Eine jede Ausgabe einer Schicht kann durch

 

beschrieben werden. Häufig ist es praktisch zusätzlich die Größe

 

zu definieren und den Zusammenhang

 

zu verwenden.

Ist die Anzahl der Schichten   so wird von Deep Learning gesprochen.

Allgemeine Bemerkungen zu Neuronalen Netzen

Bearbeiten
  • Es zeigt sich, dass es sinnvoll ist, Neuronale Netze eher in die Tiefe als in die Breite zu entwerfen.
  • Der spezielle Aufbau eines Neuronalen Netzes wird als Architektur bezeichnet. Die Wahl von bspw. Tiefe und Breite sind dann Hyperparameter des vorliegenden Modells
  • Bei geeigneter Architektur muss kein Feature Engineering betrieben werden, da das Neuronale Netze dieses quasi "von selbst" durchführt.
  • Die nicht linearen Aktivierungsfunktionen der Axone sind unerlässlich, da sonst alles auf eine einzige Schicht kollabiert.
  • Es gibt eine Vielzahl verwendeter Aktivierungsfunktionen, die bspw. auf dem Wikipedia-Beitrag zu künstlichen Neuronen eingesehen werden können.