Kurs:Maschinelles Lernen/Grundidee der Neuronalen Netze

Aus Wikiversity

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

Idee[Bearbeiten]

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.