Künstliches neuronales Netz: Unterschied zwischen den Versionen
K (Komoluna verschob die Seite Künstliches neurales Netz nach Künstliches neuronales Netz) |
K |
||
Zeile 1: | Zeile 1: | ||
− | {{ | + | {{Offline}} |
=Was ist ein "Künstliches neuronales Netz/Netz"= | =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 | + | [[Bild:Artificial_neural_network.png|mini|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: | 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 | *Eine KI-Steuerung für NPCs um komplexe Verhaltensweisen zu simulieren | ||
*Verschiedenste Mustererkennungen | *Verschiedenste Mustererkennungen | ||
*Funktionen die nicht mit einer Formel beschrieben werden können (XOR-Gate) | *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: | |
+ | {| {{Prettytable_B1}}} | ||
+ | !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= | =Vor/Nachteile= | ||
− | + | *Vorteile | |
− | *Komplexe Handlungsweisen | + | **Komplexe Handlungsweisen |
− | *Lernfähigkeit | + | **Lernfähigkeit |
− | + | *Nachteile | |
− | *keine exakten Ergebnisse(nur Annäherung) | + | **keine exakten Ergebnisse(nur Annäherung) |
+ | **[http://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz#Allgemeine_Probleme siehe Wikipedia] | ||
=Funktionsweise= | =Funktionsweise= | ||
==Das Netz== | ==Das Netz== | ||
Zeile 20: | Zeile 36: | ||
Jede Verbindung besitzt eine Wichtung, die den Einfluss des Senderneurons auf das Zielneuron bestimmt. | Jede Verbindung besitzt eine Wichtung, die den Einfluss des Senderneurons auf das Zielneuron bestimmt. | ||
==Das Neuron== | ==Das Neuron== | ||
+ | [[Bild:ArtificialNeuronModel_deutsch.png|mini|Ein Neuron]] | ||
Ein einzelnes Neuron kann man als mathematische Funktion definieren, da immer mehrere Werte in ein Output umgewandelt werden. | 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 benötigt: | + | Im Verlauf der Berechnung werden 2 Variablen und eine Konstante benötigt: |
===Der Aktivierungswert=== | ===Der Aktivierungswert=== | ||
− | Ergibt sich aus der Summe der Transferwerte der verbundenen Senderneuronen | + | Ergibt sich aus der Summe der Transferwerte der verbundenen Senderneuronen multipliziert mit der Wichtung der jeweiligen Verbindung: |
+ | <source lang="pascal">activation := 0; | ||
+ | for i:=0 to High(Connections) do | ||
+ | activation := activation + Connections[i].Sender.Transfer * Connections[i].Weight</source> | ||
+ | ===Der Transferwert=== | ||
+ | Meist eine [http://de.wikipedia.org/wiki/Sigmoidfunktion Sigmoidfunktion] an die der Aktivierungswert übergeben wird: | ||
+ | <source lang="pascal">Transfer := 1 / (1 + exp(-activation)) + Bias;</source> | ||
+ | ===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 |
Aktuelle Version vom 2. März 2015, 20:45 Uhr
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