Neuronale Netze (NN)


(Contents)(Previous)(Next)

Neuronale Netze beinhalten den Versuch, eine gehirnähnliche Struktur in einem Computerprogramm nachzubilden. Dabei wird normalerweise weniger die Evolution des Gehirns als dessen Lernfähigkeit simuliert. Neuronale Netze sind für Parameteroptimierungsaufgaben ähnlich schlecht geeignet wie EP und GP. Sie arbeiten im wesentlichen auf (simulierten) elektronischen Schaltungen mit n Eingängen und m Ausgängen. Dabei sind die Ein- und Ausgänge nicht direkt, sondern indirekt über mehrere versteckte Schichten (hidden layers) verknüpft.

width="400"

Figur: Einfache „Feed-Forward" NN mit zwei versteckten Schichten, 13 Neuronen.

Jede Schicht enthält eine Anzahl Neuronen, welche ihre Eingangsinformationen aus den Ausgängen der vorgelagerten Schicht (feed forward) beziehen. Jedes Neuron ist eine primitive Schaltung, welche jedem Eingangszustand einen Ausgangszustand zuordnet. Die Signale, welche von Neuron zu Neuron bzw. von Schicht zu Schicht weitergeleitet werden, werden üblicherweise mit Gewichtsfaktoren multipliziert, welche die Lernfähigkeit der gesamten Struktur ermöglichen. Das Finden passender Gewichte ist die Hauptaufgabe bei NN und kann natürlich als Optimierungsaufgabe aufgefasst werden. Meist wird zunächst in jedem Neuron die gewichtete Summe seiner Eingangssignale gebildet und das Resultat an eine Aktivierungsfunktion weitergeleitet. Diese stellt sicher, dass das Ausgangssignal sich in gewissen Grenzen hält und leitet diese an die nächste Schicht von Neuronen weiter.

Nachdem die Architektur eines neuronalen Netzes definiert ist, werden die passenden Gewichte so optimiert, dass das Netz eine oder mehrere gestellte Aufgaben mit bekanntem Resultat möglichst gut löst. Dies ist die Trainingsphase. Anschliessend wird das Netz zur Lösung von Problemen in Betrieb genommen. Im Training soll das Netz sowohl so stabil wie möglich, als auch so elastisch wie möglich werden. Ein untertrainiertes Netz ist üblicherweise nicht in der Lage, alle Trainingswerte richtig zu erzeugen, ein übertrainiertes Netz gibt hingegen diese Werte sehr genau wieder, liefert hingegen falsche Werte welche nicht trainiert wurden.

Entspricht jedes Neuron einer elementaren Funktion oder Operation wie bei GP, so werden die Ähnlichkeit aber auch die Unterschiede dieser Methoden rasch deutlich. Gleichzeitig findet man sofoert viele Ideen zur Verallgemeinerung neronaler Netze.

Übungsaufgabe: Schlage ein einfaches NN mit möglichst wenig Schichten vor, welches die Funktion f(x)=0.43*x3-1.3*x nachbilden kann. Wie lässt sich diese Aufgabe mit einem Standard Feed Forward Netz und wie mit einem verallgemeinerten Netz lösen? Ist die Gewichtsverteilung eindeutig? Wie könnte ein passender GP Baum aussehen?

Übungsaufgabe: Suche nach einfachen Möglichkeiten zur Bestimmung der Gewichte.

Übungsaufgabe: Schlage NN mit komplizierterer Struktur vor.

Übungsaufgabe: Wie können NN und GP kombiniert werden?


(Contents)(Previous)(Next)