Künstliches neuronales Netz
Bitte haben Sie etwas Geduld und nehmen Sie keine Änderungen vor, bis der Artikel hochgeladen wurde. |
Inhaltsverzeichnis
Was ist ein "Künstliches neuronales Netz/Netz"
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
- keine exakten Ergebnisse(nur Annäherung)
- siehe Wikipedia
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 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