Künstliches neuronales Netz: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Komoluna verschob die Seite Künstliches neurales Netz nach Künstliches neuronales Netz)
K
 
Zeile 1: Zeile 1:
{{Unvollständig}}
+
{{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 fast jede beliebige mathematische Funktion beschreiben.<br>
+
[[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.
  
In diesem Artikel werden sogenannte "Feed-forward" Netze und Additionsneuronen mit sigmoider Funktion behandelt. 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==
+
*Vorteile
*Komplexe Handlungsweisen
+
**Komplexe Handlungsweisen
*Lernfähigkeit
+
**Lernfähigkeit
==Nachteile==
+
*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 mal der Wichtung der jeweiligen Verbindung: {{INLINE_CODE|activation = C[i].Sender.Transfer * C[i].Weight}}
+
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

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