Baustein Neuron

Im vorausgehenden einführenden Abschnitt über das Neuron wurde das Neuron so analysiert, daß die Neuronfunktion $neuron$ in drei Teilfunktionen zerlegt wurde. Die erste Teilfunktion war die $net_{i}-$Funktion gewesen (siehe 3.1). Die Teilfunktion $net_{j}$ integriert die Werte, die von sendenden Neuronen $i \in {1,...,k}$ stammen:

\begin{eqnarray*}
net_{j} & = & \sum_{i} o_{i}w_{ij}
\end{eqnarray*}


Mathematisch kann man diesen Sachverhalt auch so darstellen, daß man sagt, daß die Axone von k-vielen sendenden Neuronen mit ihren Aktivierungswerten $o_{i}$ einen Vektor v bilden, und die Gewichte zu jedem Inputwert bilden einen weiteren Vektor w. Die Summe der Einzelprodukte kann dann als Skalarprodukt (oder inneres Produkt) dieser beiden Vektoren aufgefaßt werden, also


$\displaystyle \textbf{v}$ $\textstyle =$ $\displaystyle [o_{1}, o_{2}, \cdots, o_{k}]$ (6.1)
$\displaystyle \textbf{w}$ $\textstyle =$ $\displaystyle [w_{1j}, w_{2j}, \cdots, w_{kj}]$ (6.2)
$\displaystyle net_{j}$ $\textstyle =$ $\displaystyle vecprod(\textbf{v},\textbf{w})$ (6.3)

(Für die scilab-Funktion vecprod() siehe die Scilab-Anhänge.)

Die 'Nähe/Ähnlichkeit' von zwei Vektoren kann man aber auch über die Projektion des einen Vektors v auf den anderen Vektor w mit der Funktion $vecprojL()$ darstellen oder durch den Winkel $\theta$ (hier dargestellt in Grad) mit der Funktion $cosvec()$ (für beide Funktionen siehe die Scilab-Anhänge).

Wir betrachten jetzt ein Beispiel mit einem empfangenden Neuron $n_{j}$ sowie k-vielen sendenden Neuronen $n_{i}, i \in k$. Die Outputwerte sind als $o_{i}$ gegeben und die Gewichte als $w_{ij}$ (vgl. Bild 6.1).

Figure 6.1: Neuron j empfängt Outputwerte von k-vielen Neuronen
\includegraphics[width=3.0in]{axon-weights-neuron.eps}

Für ein kleines Experiment nehmen wir folgende Beispielwerte an: der Inpuvektor sei $\textbf{v} = [1,-1,-1,1]$. Als Gewicht variieren wir den Gewichtsvektor w und berechnen beide Vektoren mit den drei oben genannten Funktionen $vecprod(), vecprojL()$ sowie $cosvec()$ simultan zum Vergleich:

-- input -- -- --
-- $[1,-1,-1,1]$ -- -- --
Nr. w vecprod() vecprojL() cosvec()
1 $[1,-1,-1,1]$ 4 2 $0^{o}$
2 $[0.25,-1,-1,1]$ 3.25 1.8571429 $21.786789^{o}$
3 $[0.25,-1,-1,0.25]$ 2.5 1.7149859 $30.963757^{o}$
4 $[0.25,-0.25,-1,0.25]$ 1.75 1.6059101 $36.586776^{o}$
5 $[0.25,-0.25,-0.25,0.25]$ 1 2 $0^{o}$
6 $[0.25,0.25,-0.25,-0.25]$ 0 0 $90^{o}$
7 $[-0.25,0.25,0.25,-0.25]$ -1 -2 $180^{o}$

Diese Werte illustrieren die 'typischen' Fälle sehr schön: bei Nr.1 liegt völlige Übereinstimmung vor, d.h. Vektorprodukt und Vektorprojektion haben maximale Werte während der Unterscheidungswinkel Null 0 ist. Bei Nr.6 sind zwei von vier Dimensionen vorzeichenverkehrt, d.h. hier steht der Gewichtsvektor w orthogonal auf dem Aktivierungsvektor v; entsprechend sind das Vektorprodukt und die Vektorprojektion Null 0, aber der Unterscheidungswinkel $\theta$ liegt bei $90^{o}$. Schließlich, im Fall Nr.7 sind alle Dimensionen vorzeichenverkehrt, d.h. hier zeigt der Vektor in die entgegengesetzte Richtung, Vektorprodukt und Vektorprojektion werden negativ, der Unterscheidungswinkel $\theta$ beträgt $180^{o}$.

Gerd Doeben-Henisch 2013-01-17