Systemfunktion

Das System besteht in diesem Beispiel aus einem Netzwerk von Neuronen. Solch ein Netzwerk kann man verstehen als eine mathematische Struktur, die eine Menge von Neuronen $N$, Gewichten $W$ sowie Beziehungen $CON$ zwischen diesen Neuronen und Gewichten umfaßt sowie eine Operation $dyn$ über diesen Mengen. Als Formeln:


$\displaystyle ANN$ $\textstyle =$ $\displaystyle \langle N, W, CON, dyn\rangle$ (10.5)
$\displaystyle CON_{ANN}$ $\textstyle \subseteq$ $\displaystyle N_{ANN} \times W_{ANN} \times N_{ANN}$ (10.6)
$\displaystyle dyn_{ANN}$ $\textstyle :$ $\displaystyle CON_{ANN} \longmapsto CON_{ANN}$ (10.7)

Dieses Schema soll nun zu einem konkreten Netzwerk spezialisiert (instantiiert) werden, wie es im Bild 10.7 angezeigt wird.

Figure 10.7: Beispiel eines künstlichen neuronalen Netzwerkes mit 2 sensorischen und 2 binären Neuronen
\includegraphics[width=4.5in]{ann_bsp1.eps}

Für die Menge der Neuronen $N_{ANN}$ nehmen wir vier Neuronen an, zwei sensorische Neuronen $an_{sens.i}$ und zwei binäre Neuronen $an_{bin.i}$:


$\displaystyle N_{ANN}$ $\textstyle =$ $\displaystyle \{ an_{sens}, an_{sens.2}, an_{bin}, an_{bin.2} \}$ (10.8)

Dabei soll gelten, $\theta_{bin} = 1.5, \theta_{bin.2} = 0.5, $. Diese Neuronen verknüpfen wir mittels der Verknüpfungsrelation $CON_{ANN}$ wie folgt:


\begin{displaymath}
CON_{ANN} = \left\{ \begin{array}{r@{}l}
& \langle an_{sens...
...langle an_{bin}, -2, an_{bin.2}\rangle\\
\end{array} \right\}
\end{displaymath}

Jetzt fehlt nur noch die dynamische Abarbeitungsfunktion $dyn_{ANN}$. Hier lassen sich viele Varianten denken. Ein einfaches Beispiel wird durch den folgenden Algorithmus dargestellt (vgl. die Formel 10.10). Die Grundidee besteht darin, daß die Werte des neuronalen Netzes in diesem Fall von links nach rechts berechnet werden. Liegt ein Ausgangswert vor, wird die Berechnung wieder bei den Eingängen wiederholt. Ein Durchgang entspricht dann einem Zyklus innerhalb eines Prozesses bzw. einer Einheit auf einer abstrakten Zeitlinie.

Die Abarbeitungsfunktion $dyn_{ANN}$ wird zusammengesetzt aus mehreren Teilfunktionen. Die Teilfunktion $ take\_inputs$ beginnt bei den sensorischen Neuronen und bildet daraus eine erste Nachfolgermenge $Q$. Für jedes Element der Menge $Q$ wird dann jeweils die Neuronfunktion mit der Teilfunktion $compute\_each$ berechnet. Ausgehend von $Q$ werden mit der Funktion $successors$ wieder alle Nachfolger berechnet, also $Q = succ(Q)$ und für diese mit $compute\_each$ wieder alle Neuronfunktionen $neuron_{TYPE.i}$. Dann wird mit der Teilfunktion $ if\_out$ geprüft, ob die letzten Neuronen schon berechnet worden sind. Mit der Annahme, daß alle Ausgangsneuronen von den Inputneuronen aus alle die gleiche minimale Pfadlänge haben, kann die Berechnung der Menge $Q$ bei minimaler Pfadlänge $+1$ dann wieder von vorne beginnen, andernfalls muß sie bei der Teilfunktion $successors$ fortgesetzt werden.


$\displaystyle f_{xor}$ $\textstyle =$ $\displaystyle take\_inputs \otimes compute\_each \otimes successors \otimes if\_out$ (10.9)
$\displaystyle take\_inputs$ $\textstyle :$ $\displaystyle INP \longmapsto Q = INP$ (10.10)
$\displaystyle compute\_each$ $\textstyle :$ $\displaystyle neuron_{type.i} \in Q$ (10.11)
$\displaystyle successors$ $\textstyle :$ $\displaystyle Q \longmapsto succ(Q)$ (10.12)
$\displaystyle compute\_each$ $\textstyle :$ $\displaystyle neuron_{type.i} \in Q$ (10.13)
$\displaystyle if\_out$ $\textstyle :$ $\displaystyle YES: take\_inputs; NO: successors$ (10.14)

Für die Berechnung der einzelnen Neuronen benötigt man die Struktur dieser Neuronen. Für Eingangsneuronen -auch sensorische Neuronen genannt- gilt:


$\displaystyle AN_{sens}$ $\textstyle =$ $\displaystyle \langle INP, OUTP,\emptyset , \emptyset , neuron_{sens}\rangle$ (10.15)

Der Aktivierungszustand und der Schwellwert werden hier -stark vereinfachend- als leere Mengen $\emptyset$ angenommen, da der Ausgabewert ausschließlich vom Eingabewert abgängen soll:


$\displaystyle neuron_{sens}$ $\textstyle :$ $\displaystyle INP \longmapsto OUTP$ (10.16)

dabei wird angenommen, daß die Neuronfunktion $neuron_{sens}$ des sensorischen Neurons im Beispiel eine Identitätsfunktion ist, d.h.


$\displaystyle neuron_{sens}(INP)$ $\textstyle =$ $\displaystyle OUTP$ (10.17)

Im allgemeinen Fall kann die Funktion eines sensorischen Neurons natürlich erheblich komplexer strukturiert sein. Für die beiden binären Neuronen in der Zwischenschicht und in der Ausgangsschicht gelten folgende Zusammenhänge (siehe auch das Beispiel über binäre Neuronen):


$\displaystyle AN_{bin}$ $\textstyle =$ $\displaystyle \langle INP, OUTP ,\{ \theta\}, neuron_{bin}\rangle$ (10.18)
$\displaystyle neuron_{bin}$ $\textstyle =$ $\displaystyle net_{bin} \otimes act_{bin}$ (10.19)
$\displaystyle net_{bin}$ $\textstyle =$ $\displaystyle \sum_{i=1}^{2} W_{i}IN_{i}$ (10.20)
$\displaystyle act_{bin}$ $\textstyle =$ $\displaystyle \left\{
\begin{array}{r@{\quad :\quad}l}
1 & net_{j} \geq THETA   0 & sonst
\end{array}\right.$ (10.21)

Gerd Doeben-Henisch 2013-01-17