Künstliches neuronales Netz

Aus DGL Wiki
Wechseln zu: Navigation, Suche
Hinweis: Dieser Artikel wird gerade Offline bearbeitet!

Bitte haben Sie etwas Geduld und nehmen Sie keine Änderungen vor, bis der Artikel hochgeladen wurde.

(weitere Artikel)
WIP Offline.jpg

Was ist ein "Künstliches neuronales Netz/Netz"

Ein neuronales Netz mit nur einer versteckten Schicht

Ein künstliches neuronales Netz (in diesem Artikel "das Netz" oder "ANN" für "artificial neural net") ist einem biologischen Gehirn(deinem Denkdings) nachempfunden, und kann somit auch komplexere Probleme lösen. Mathematische Funktion ist hier nicht nur als "echte" Funktion sondern als Gleichnis für allerlei mathematische Probleme zu sehen, z.B:

  • Eine KI-Steuerung für NPCs um komplexe Verhaltensweisen zu simulieren
  • Verschiedenste Mustererkennungen
  • Funktionen die nicht mit einer Formel beschrieben werden können (XOR-Gate)

In diesem Artikel werden sogenannte "Feed-forward" Netze und Additionsneuronen mit sigmoider Funktion behandelt(siehe Bild). Feed-forward heißt, dass die Informationen im Netz immer nur in eine Richtung weitergereicht werden. Das bedeutet, dass das Netz sich nichts merken kann und seine Outputs zu 100% auf den Inputs basieren.

Das Netz besteht aus 3 Typen von Schichten:

Typ Funktion
Inputschicht Die Transferwerte werden manuell festgelegt. Die Neuronen in dieser Schicht haben keine eingehenden Verbindungen.
Versteckte Schicht Von diesem Schichttyp können beliebig viele Hintereinandergeschaltet werden. Die versteckten Schichten sollten weder von außen gesehen, noch modifiziert werden.
Ausgabeschicht Diese Schicht besitzt nur eingehende Verbindungen, da ihre Transferwerte direkt vom Programm ausgelesen und je nach Verwendungszweck des Netzes verwertet werden.

Vor/Nachteile

  • Vorteile
    • Komplexe Handlungsweisen
    • Lernfähigkeit
  • Nachteile

Funktionsweise

Das Netz

Das Netz besteht aus mehreren Neuronen, die miteinander verbunden sind. Jede Verbindung besitzt eine Wichtung, die den Einfluss des Senderneurons auf das Zielneuron bestimmt.

Das Neuron

Ein Neuron

Ein einzelnes Neuron kann man als mathematische Funktion definieren, da immer mehrere Werte in ein Output umgewandelt werden. Im Verlauf der Berechnung werden 2 Variablen und eine Konstante benötigt:

Der Aktivierungswert

Ergibt sich aus der Summe der Transferwerte der verbundenen Senderneuronen multipliziert mit der Wichtung der jeweiligen Verbindung:

activation := 0;
for i:=0 to High(Connections) do
 activation := activation + Connections[i].Sender.Transfer * Connections[i].Weight

Der Transferwert

Meist eine Sigmoidfunktion an die der Aktivierungswert übergeben wird:

Transfer := 1 / (1 + exp(-activation)) + Bias;

Der Bias

Dieser Wert wird nur verändert, wenn das Netz lernen soll. Im "normalen" Gebrauch bleibt der Bias konstant und dient der Verschiebung des Transferwerts