Neuronale Netze


Die ersten Neuronalen Netze wurden von Pitts und McCulloch im Jahr 1943 entwickelt. Später (1951) baute Marvin Minsky den Stochastic Neural Analog Reeinforcement Computer (SNARC), der 40 Neuronen besaß. Ein Neuron ist eine Threshold Logic Unit (TLU) und wird in der BEAM Robotik-Szene als nv-neuron bezeichnet. Hauptsächlich dienen neuronale Netze der Funktionsapproximation, wobei die Funktionen mehrdimensial sind:

f(x,y,z)=a b

Dabei gibt es drei Eingangswerte (x,y,z) und zwei Ausgangswerte (a,b). Grafisch könnte man diese Beispielfunktion in einem dreidimensionalen Koordinatensystem darstellen… Allerdings nur mit Farben. Etwas besser geht es mit nur zwei Eingangsvariablen:

x a
y b

Hierbei ist links der Neuronen-Eingangsvektor (x,y) und rechts die Ausgangsschicht (a,b). In mathematischer Notation würde man schreiben:

a(x,y)=unbekannte Funktion
b(x,y)=unbekannte Funktion

Jedes Ausgangsneuron representiert also eine Funktion. Funktion1 heißt a(x,y) und Funktion2 heißt b(x,y).

Um die gewünschte Funktion zu bestimmen gibt es Approximationsverfahren, beispielsweise könnte man versuchen:

a(x,y)=2x+3y
b(x,y)=x+y

Anhand dieser könnte man überprüfen ob zu gegeben x/y die richtigen Ausgangsvektoren a/b berechnet werden. Falls es Näherungsprobleme gibt, wählt man eine andere Funktion:

a(x,y)=3x+7-y
b(x,y)=sin(x)*tan(y)

Dies sieht ein wenig den Gleichungssystemen aus der Sekundarstufe II ähnlich. Allerdings geht es nicht um die Bestimmung von x und y, sondern um das Finden der Funktionen welche eine Vektormatrix (x,y|a,b) möglichst genau abbildet.
Lernverfahren bei Neuronalen Netzen verwenden hierzu Gewichte und Verknüpfungen. Dadurch erhält man ein Grundgerüst der Funktion welche anschließend nur noch die richtigen Parameter benötigt. Anstatt also alle Funktionstypen wie Summe, Sinus, Mal usw. zuzulassen wird folgendes vorgegeben:

a(x,y)=(w1*x+w2*y)+(w5*x+w6*y)
b(x,y)=(w3*x+w4*y)+(w7*x+w8*y)

In diesem Beispiel wird mit zwei versteckten Schichten gearbeitet: (..)+(..). Insgesamt gibt es 8 Gewichte w1..w8. Ist ein Gewicht w=0 dann existiert keine Verbindung von einer Neuronenschicht zu nächsten.
Die Aufgabe des Lernalgorithmus (z.b. Backpropagation) besteht nun darin die Werte w1..w8 zu bestimmen. Eine Lösungsmöglichkeit könnte sein:

a(x,y)=(2x-5y)+(0x+1y)
b(x,y)=(3x+0y)+(2x-4y)

Nach der Theorie der Künstlichen Intelligenz besteht auch das menschliche Gehirn aus solchen Funktionsgerüsten. Lernen ist hierbei die richtige Parameterwahl w1 bis w8.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s