Kurs:Maschinelles Lernen/Grundidee der Neuronalen Netze

Aus testwiki
Version vom 29. April 2024, 12:06 Uhr von imported>Bert Niehaus (Bert Niehaus verschob die Seite Kurs:Maschinelles Lernen (SoSe 2024)/Grundidee der Neuronalen Netze nach Kurs:Maschinelles Lernen/Grundidee der Neuronalen Netze)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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

Idee

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 d Dendrite, die jeweils eine Zahl x als Eingabe entgegen nehmen und an das Soma weiterleiten. Das Eingabeobjekt des Perzeptrons ist damit ein Vektor xd. Im Soma werden diese mit Gewichten wd und w0 zu einer neuen Ausgabe

z=w0+wx=i=0dwixi

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

ϕ:,zϕ(z)

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

Aufbau von Netzen

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 yi generieren. Da jedes dieser Somata mit eigenen Gewichten bedacht ist, würde sich für deren Ausgabe der Ausdruck

zi=w0,i+wix=w0,i+j=1dwijxj=w0,i+(W_x)i

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

ϕ:dndn

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

Eine solche Anordnung von dn Neuronen nebeneinander wird als eine Schicht bezeichnet. Die Anzahl dn 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 L wird als Tiefe eines Neuronalen Netzes bezeichnet.

Mathematische Beschreibung

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

Sl:dl1dl,xSl(x)=ϕl(W_(l)x+w0(l))

mit der Aktivierungsfunktion

ϕl:dldl,

der Gewichtematrix W_(l) und dem Verzerrungsvektor w0(l) 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

x(l)=Sl(x(l1))

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

zl=W_(l)x(l1)+w0(l)

zu definieren und den Zusammenhang

x(l)=ϕl(zl)

zu verwenden.

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

Allgemeine Bemerkungen zu Neuronalen Netzen

  • 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.