Künstliches Neuron

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein künstliches Neuron bildet die Basis für das Modell der künstlichen neuronalen Netze, ein Modell aus der Neuroinformatik, das durch biologische neuronale Netze motiviert ist. Als konnektionistisches Modell bilden sie in einem Netzwerk aus künstlichen Neuronen ein künstliches neuronales Netz und können so beliebig komplexe Funktionen approximieren, Aufgaben erlernen und Probleme lösen, bei denen eine explizite Modellierung schwierig bis nicht durchzuführen ist. Beispiele sind die Gesichts- und Spracherkennung.

Als Modell aus dem biologischen Vorbild der Nervenzelle entstanden, kann es mehrere Eingaben verarbeiten und entsprechend über seine Aktivierung reagieren. Dazu werden die Eingaben gewichtet an eine Ausgabefunktion übergeben, welche die Neuronenaktivierung berechnet. Ihr Verhalten wird ihnen im Allgemeinen durch Einlernen unter Verwendung eines Lernverfahrens gegeben.

Geschichte[Bearbeiten]

Diagramm einer McCulloch-Pitts-Zelle nach Minsky

Die Anfänge der künstlichen Neuronen gehen auf Warren McCulloch und Walter Pitts im Jahr 1943 zurück. Sie zeigen an einem vereinfachten Modell eines Neuronalen Netzes, der McCulloch-Pitts-Zelle, dass diese logische und arithmetische Funktionen berechnen kann.

Neuronale Verbindungen des Nagetier-Hippocampus von Ramón y Cajal (1911)

Die Hebbsche Lernregel wird im Jahr 1949 von Donald Hebb beschrieben. Aufbauend auf der medizinischen Forschung von Santiago Ramón y Cajal, der bereits 1911 die Existenz von Synapsen nachgewiesen hat, werden nach dieser Regel wiederholt aktive Verbindungen zwischen Nervenzellen gestärkt. Die Verallgemeinerung dieser Regel wird auch in den heutigen Lernverfahren noch verwendet.

Eine wichtige Arbeit kommt im Jahre 1958 mit dem Konvergenztheorem über das Perzeptron heraus. Dort zeigt Frank Rosenblatt, dass es mit dem angegebenen Lernverfahren alle Lösungen einlernen kann, die mit diesem Modell repräsentierbar sind.

Jedoch zeigen die Kritiker Marvin Minsky und Seymour Papert 1969, dass ein einstufiges Perzeptron eine XOR-Verknüpfung nicht repräsentieren kann, weil die XOR-Funktion nicht linear separierbar (linear trennbar) ist, erst spätere Modelle können diesen Missstand beheben. Die so gezeigte Grenze in der Modellierung führt zunächst zu einem abnehmenden Interesse an der Erforschung der künstlichen neuronalen Netze sowie zu einer Streichung von Forschungsgeldern.

Ein Interesse an künstlichen Neuronalen Netzen kommt erst wieder auf, als John Hopfield die Hopfield-Netze 1985 bekannt macht und zeigt, dass sie in der Lage sind Optimierungsprobleme zu lösen, wie das Problem des Handlungsreisenden.[1] Ebenfalls führt die Arbeit zum Backpropagation-Verfahren von David E. Rumelhart, Geoffrey E. Hinton und Ronald J. Williams ab 1986 zu einer Wiederbelebung der Erforschung dieser Netze.

Heute werden solche Netze in vielen Forschungsbereichen verwendet.

Biologische Motivierung[Bearbeiten]

Schematische Darstellung einer Nervenzelle

Motiviert sind künstliche Neuronen durch die Nervenzellen der Säugetiere, die auf die Aufnahme und Verarbeitung von Signalen spezialisiert sind. Über Synapsen werden Signale elektrisch oder chemisch an andere Nervenzellen oder Effektorzellen (etwa zur Muskelkontraktion) weitergeleitet.

Eine Nervenzelle besteht aus dem Zellkörper, Axon und den Dendriten. Dendriten sind kurze Zellfortsätze, die stark verzweigt für die Aufnahme von Signalen anderer Nervenzellen oder Sinneszellen sorgen. Das Axon funktioniert als Signalausgang der Zelle und kann eine Länge bis 1 m erreichen. Der Übergang der Signale erfolgt an den Synapsen, welche erregend oder hemmend wirken können.

Die Dendriten der Nervenzelle leiten die eingehenden elektrischen Erregungen an den Zellkörper weiter. Erreicht die Erregung einen gewissen Grenzwert und übersteigt ihn, entlädt sich die Spannung und pflanzt sich über das Axon fort (Alles-oder-nichts-Gesetz).

Die Verschaltung dieser Nervenzellen bildet die Grundlage für die geistige Leistung des Gehirns. Das Zentralnervensystem des Menschen besteht nach Schätzungen aus 10^{10} bis 10^{12} Nervenzellen, die durchschnittlich 10.000 Verbindungen besitzen – das menschliche Gehirn kann also mehr als 10^{14} Verbindungen besitzen.[2][3] Das Aktionspotential im Axon kann sich mit einer Geschwindigkeit bis zu 100 m/s fortpflanzen.

Im Vergleich zu Logikgattern zeigt sich auch die Effizienz von Neuronen. Während Gatter im Nanosekunden-Bereich (10-9) schalten, unter einem Energieverbrauch von 10-6 Joule (Daten von 1991), reagieren Nervenzellen im Millisekunden-Bereich (10-3) und verbrauchen lediglich eine Energie von 10-16 Joule. Trotz der augenscheinlich geringeren Werte in der Verarbeitung durch Nervenzellen können rechnergestützte Systeme nicht an die Fähigkeiten biologischer Systeme heranreichen.

Die Leistung neuronaler Netze wird ebenfalls durch die 100-Schritt-Regel demonstriert: Die visuelle Erkennung beim Menschen findet in maximal 100 parallelen Verarbeitungsschritten statt – die meist sequentiell arbeitenden Rechner erbringen keine vergleichbare Leistung.

Die Vorteile und Eigenschaften von Nervenzellen motivieren das Modell der künstlichen Neuronen. Viele Modelle und Algorithmen zu künstlichen neuronalen Netzen entbehren dennoch einer direkt plausiblen, biologischen Motivierung. Dort findet sich diese nur im Grundgedanken der abstrakten Modellierung der Nervenzelle.

Modellierung[Bearbeiten]

Mit der Biologie als Vorbild wird nun durch eine passende Modellbildung eine für die Informationstechnik verwendbare Lösung gefunden. Durch eine grobe Verallgemeinerung wird das System vereinfacht – unter Erhaltung der wesentlichen Eigenschaften.

Die Synapsen der Nervenzelle werden hierbei durch die Addition gewichteter Eingaben abgebildet, die Aktivierung des Zellkerns durch eine Aktivierungsfunktion mit Schwellenwert. Die Verwendung eines Addierers und Schwellenwerts findet sich so schon in der McCulloch-Pitts-Zelle von 1943.

Bestandteile[Bearbeiten]

Darstellung eines künstlichen Neurons mit seinen Elementen
Lineare Trennung durch Trennebene für die Konjunktion

Ein künstliches Neuron j kann durch vier Basiselemente beschrieben werden:

  1. Wichtung: Die Gewichte w_{ij} bestimmen den Grad des Einflusses, den die Eingaben des Neurons in der Berechnung der späteren Aktivierung einnehmen. Abhängig von den Vorzeichen der Gewichte kann eine Eingabe hemmend (inhibitorisch) oder erregend (exzitatorisch) wirken. Ein Gewicht von 0 markiert eine nicht existente Verbindung zwischen zwei Knoten.
  2. Übertragungsfunktion: Die Übertragungsfunktion \Sigma berechnet anhand der Wichtung der Eingaben die Netzeingabe des Neurons.
  3. Aktivierungsfunktion: Die Ausgabe des Neurons wird schließlich durch die Aktivierungsfunktion \varphi bestimmt. Die Aktivierung wird beeinflusst durch die Netzeingabe aus der Übertragungsfunktion sowie einem Schwellenwert.
  4. Schwellenwert: Das Addieren eines Schwellenwerts \theta_j zur Netzeingabe verschiebt die gewichteten Eingaben. Die Bezeichnung bestimmt sich aus der Verwendung einer Schwellenwertfunktion als Aktivierungsfunktion, bei der das Neuron aktiviert wird, wenn der Schwellenwert überschritten ist. Die biologische Motivierung dabei ist das Schwellenpotential bei Nervenzellen. Mathematisch gesehen wird die Trennebene, die den Merkmalsraum auftrennt, durch einen Schwellenwert mit einer Translation verschoben.

Durch einen Verbindungsgraphen werden folgende Elemente festgelegt:

  1. Eingaben: Eingaben x_i können einerseits aus dem beobachteten Prozess resultieren, dessen Werte dem Neuron übergeben werden, oder wiederum aus den Ausgaben anderer Neuronen stammen. Sie werden auch so dargestellt: Symbol of a neuron acting as input.svg.
  2. Aktivierung oder Ausgabe: Das Ergebnis der Aktivierungsfunktion wird analog zur Nervenzelle als Aktivierung o_j des künstlichen Neurons j bezeichnet.

Mathematische Definition[Bearbeiten]

Das künstliche Neuron als Modell wird in der Literatur meist auf dem folgenden Weg eingeführt:

Zuerst wird die Netzeingabe \mbox{net}_{j} des künstlichen Neurons j durch

\mbox{net}_{j}=\sum^{n}_{i=1} x_{i} w_{ij}

definiert und damit die Aktivierung o_{j} durch

o_{j}=\varphi(\mbox{net}_{j} - \theta_j).

Dabei ist

n die Anzahl der Eingaben und
x_{i} die Eingabe i, die sowohl diskret als auch stetig sein kann.

on-Neuron[Bearbeiten]

Zwei funktional identische Neuronen, das linke ohne und das rechte mit „on“-Neuron oder Bias

Alternativ kann der Schwellenwert auch durch Hinzufügen eines weiteren Eingangs x_0, einem sogenannten on-Neuron oder auch Bias, dargestellt werden. Dieser hat den konstanten Wert x_0 = 1. Der Schwellenwert ist dann die Gewichtung dieses Eingangs w_{0j}=-\theta_j. Eine spezielle Behandlung des Schwellenwerts kann so entfallen und vereinfacht die Behandlung in den Lernregeln.

Zusätzlich zu den echten Eingängen wird nun der des on-Neurons mit einberechnet:

\mbox{net}_{j}=\sum^{n}_{i=0} x_{i} w_{ij}

Bei der Aktivierung o_{j} kann damit auf eine spezielle Behandlung des Schwellenwerts verzichtet werden:

o_{j}=\varphi(\mbox{net}_{j})

Aktivierungsfunktionen[Bearbeiten]

Schwellenwertfunktion
Stückweise lineare Funktion
Sigmoide Funktion mit Steigungsmaß
  • a = 5
  • sowie
  • a = 10

Als Aktivierungsfunktion \varphi können verschiedene Funktionstypen verwendet werden, abhängig von der verwendeten Netztopologie. Eine solche Funktion kann nicht-linear, zum Beispiel sigmoid, stückweise linear oder eine Sprungfunktion sein. Im Allgemeinen sind Aktivierungsfunktionen monoton steigend.

Lineare Aktivierungsfunktionen unterliegen einer starken Beschränkung, da eine Komposition linearen Funktionen durch arithmetische Umformungen durch eine einzige lineare Funktion dargestellt werden kann. Für mehrschichtige Verbindungsnetzwerke sind sie deswegen nicht geeignet und finden so nur in einfachen Modellen Anwendung.

Beispiele für grundlegende Aktivierungsfunktionen sind:

  • Schwellenwertfunktion: Die Schwellenwertfunktion (engl. hard limit), wie sie im Folgenden definiert ist, nimmt nur die Werte 0 und 1 an. Den Wert 1 für die Eingabe v \geq 0, sonst 0. Bei subtraktiver Verwendung eines Schwellenwerts \theta wird die Funktion nur aktiviert, wenn die zusätzliche Eingabe den Schwellenwert übersteigt. Ein Neuron mit einer solchen Funktion wird auch McCulloch-Pitts-Zelle genannt. Sie spiegelt die Alles-oder-nichts-Eigenschaft des Modells wider.

\varphi^{\mbox{hlim}}(v) = \begin{cases}
 1 & \mbox{wenn } v \geq 0 \\
  0 & \mbox{wenn } v < 0
 \end{cases}

Ein Neuron mit dieser Aktivierungsfunktion wird auch so dargestellt: Symbol of a neuron with a hardlimit activationfunction.svg

  • Stückweise lineare Funktion: Die hier verwendete stückweise lineare Funktion (engl. piecewise linear) bildet ein begrenztes Intervall linear ab, die äußeren Intervalle werden auf einen konstanten Wert abgebildet:

\varphi^{\mbox{pwl}}(v) = \begin{cases}
 1 & \mbox{wenn } v \geq \frac{1}{2} \\
 v + \frac{1}{2} & \mbox{wenn } -\frac{1}{2} < v < \frac{1}{2} \\
 0 & \mbox{wenn } v \leq -\frac{1}{2}
 \end{cases}

Ein Neuron mit der stückweise linearen Funktion als Aktivierungsfunktion wird auch folgendermaßen dargestellt: Symbol of a neuron with a piecewise linear activationfunction.svg

  • Sigmoidfunktion: Sigmoide Funktionen als Aktivierungsfunktion sind sehr häufig verwendete Abbildungen. Sie besitzen, wie hier definiert, ein variables Steigungsmaß a, das die Krümmung des Funktionsgrafen beeinflusst. Eine spezielle Eigenschaft ist ihre Differenzierbarkeit, die für einige Verfahren wie den Backpropagation-Algorithmus benötigt werden:

\varphi_a^{\mbox{sig}}(v) = \frac{1}{1 + \exp(-av)}.

Die Werte der obigen Funktionen liegen im Intervall [0,1]. Für das Intervall [-1,+1] lassen sich diese Funktionen entsprechend definieren.
Ein Neuron mit der Sigmoidfunktion wird auch so dargestellt: Symbol of a neuron with a sigmoid activationfunction.svg

Beispiele[Bearbeiten]

Darstellung boolescher Funktionen[Bearbeiten]

Mit künstlichen Neuronen lassen sich boolesche Funktionen darstellen. So können die drei Funktionen Konjunktion (and), Disjunktion (or) und Negation (not) unter Verwendung einer Schwellenwertfunktion \varphi^{\mbox{hlim}} wie folgt repräsentiert werden:

Konjunktion Disjunktion Negation
Und-Neuron.png
Neuron, das die Konjunktion repräsentiert
Oder-Neuron.png
Neuron, das die Disjunktion repräsentiert
Nicht-Neuron.png
Neuron, das die Negation repräsentiert

Für die Konjunktion zum Beispiel ist ersichtlich, dass nur für die booleschen Eingaben x_1 = 1 und x_2 = 1 die Aktivierung

o = \varphi^{\mbox{hlim}}((w_1 \cdot x_1 + w_2 \cdot x_2) - \theta) = \varphi^{\mbox{hlim}}((1,0 \cdot 1 + 1,0 \cdot 1) - 1,5) = \varphi^{\mbox{hlim}}(0,5) = 1

ergibt, sonst 0.

Einlernen eines Neurons[Bearbeiten]

Anders als im vorherigen Beispiel, bei dem die passenden Gewichtungen gewählt wurden, können Neuronen die zu repräsentierende Funktion erlernen. Die Gewichtungen und der Schwellenwert werden anfangs mit zufälligen Werten belegt und anschließend unter Verwendung eines „Versuch und Irrtum“-Lernalgorithmus angepasst.

Wertetabelle der logischen Konjunktion
x_1 x_2 x_1 \mbox{ and } x_2
0 0 0
0 1 0
1 0 0
1 1 1

Um die logische Konjunktion zu erlernen, kann die Perzeptron-Kriteriumsfunktion angewendet werden. Sie addiert die Werte fehlerhaft erkannter Eingaben auf die Gewichtung hinzu, um die Erkennung zu verbessern, bis möglichst alle Eingaben richtig klassifiziert werden. Die Aktivierungsfunktion ist hier analog zum vorherigen Beispiel die Schwellenwertfunktion \varphi^{\mbox{hlim}}.

Für das Lernverfahren wird die Lernrate, welche die Geschwindigkeit des Einlernens festlegt, mit \alpha=1 gewählt. Somit entfällt eine explizite Erwähnung.

Statt den Schwellenwert als solchen anzugeben, wird ein on-Neuron, also ein konstanter Eingang x_0=1 hinzugefügt. Der Schwellenwert wird durch die Gewichtung w_0=-\theta angegeben.

Um das Neuron auf die beiden möglichen Ausgaben 0 und 1 der Konjunktion zu trainieren, werden die Eingaben für die zugehörige Ausgabe 0 mit -1 multipliziert. Die Ausgabe ist durch diesen Schritt nur dann 0, wenn die betreffende Eingabe fehlerhaft klassifiziert wurde. Dieses Vorgehen vereinfacht die Betrachtung beim Einlernen und die spätere Gewichtungsanpassung. Danach sieht die Lerntabelle folgendermaßen aus:

Lerntabelle
Eingaben
x_0 x_1 x_2
-1 0 0
-1 0 -1
-1 -1 0
1 1 1

Der Eingang x_0 hat bei den Eingängen den Wert -1, bei denen das Neuron am Ende 0 ausgeben soll.

Für die Ausgangssituation werden die Gewichtungen zufällig gewählt:

Gewicht Anfänglicher Wert Bedeutung
w_0 (= -\theta) 0,1 Darstellung des Schwellenwerts
w_1 0,6 Gewichtung der ersten Eingabe x_1
w_2 -0,3 Gewichtung der zweiten Eingabe x_2

Zum Testen der Gewichtungen werden diese in ein Neuron mit drei Eingängen und dem Schwellenwert \theta=0 eingesetzt. Für die gewählten Gewichte sieht die Ausgabe wie folgt aus:

Ausgabe des Neurons mit zufälligen Gewichten
Eingaben Ausgabe
x_0 x_1 x_2
-1 0 0 0
-1 0 -1 1
-1 -1 0 0
1 1 1 1

Die erste und dritte Eingabe werden falsch berechnet und das Neuron gibt 0 aus. Nun findet die Perzeptron-Kriteriumsfunktion ihre Anwendung:

Durch die Addition mit den falsch erkannten Eingaben werden die zugehörigen Gewichte durch

w_i(t+1) = w_i(t) + \sum_{y \in \mathcal{Y}} y_i,

mit

\mathcal{Y}, Menge aller falsch erkannten Eingaben,
t, Zeitschritt und
y_i, i-te Komponente der Eingabe y angepasst. Das heißt, dass zum Gewicht n die Eingaben x_n hinzuaddiert werden, deren Ausgabe falsch berechnet wurde:
Gewichtsanpassung im ersten Schritt
Schritt Gewicht Vorheriger Wert Neuer Wert
1 w_0 0,1 w_0(1) = w_0(0) + (-1) + (-1) = -1,9
w_1 0,6 w_1(1) = w_1(0) + 0 + (-1) = -0,4
w_2 -0,3 w_2(1) = w_2(0) + 0 + 0 = -0,3
Überprüfung
Eingaben Ausgabe
x_0 x_1 x_2
-1 0 0 1
-1 0 -1 1
-1 -1 0 1
1 1 1 0

Die Überprüfung nach der Gewichtungsänderung zeigt, dass statt der ersten und dritten Eingabe nun die vierte Eingabe falsch klassifiziert wird. Die Ausführung eines weiteren Schrittes des Lernverfahrens verbessert die Erkennungsfunktion des Neurons:

Gewichtsanpassung im zweiten Schritt
Schritt Gewicht Vorheriger Wert Neuer Wert
2 w_0 -1,9 w_0(2) = w_0(1) + 1 = -0,9
w_1 -0,4 w_1(2) = w_1(1) + 1 = 0,6
w_2 -0,3 w_2(2) = w_2(1) + 1 = 0,7
Überprüfung
Eingaben Ausgabe
x_0 x_1 x_2
-1 0 0 1
-1 0 -1 1
-1 -1 0 1
1 1 1 1

Nun sieht man, dass das Neuron die vorgegebene Funktion erlernt hat und alle vier Eingaben richtig berechnet.

Unter Verwendung der Eingabe x_1 = 1 und x_2 = 1 und die Wahl von \theta = -w_0 folgt nun die Aktivierung:

\begin{matrix}
o &=& \varphi^{\mbox{hlim}}(w_0 * x_0 + w_1 * x_1 + w_2 * x_2)= \varphi^{\mbox{hlim}}((w_1 * x_1 + w_2 * x_2) - \theta) \\
&=& \varphi^{\mbox{hlim}}((0,6 * 1 + 0,7 * 1) - 0,9) = \varphi^{\mbox{hlim}}(0,4) = 1
\end{matrix}

Für die anderen drei Eingaben, die für das Einlernen mit -1 multipliziert wurden, ergibt sich nun der Wert 0. So folgt aus der Eingabe x_1 = 0 und x_2 = 1 die Aktivierung:

o = \varphi^{\mbox{hlim}}((0,6 * 0 + 0,7 * 1) - 0,9) = \varphi^{\mbox{hlim}}(-0,2) = 0.

Ohne bestimmte Gewichtungen vorzugeben hat das Neuron gelernt anhand der Vorgaben die Konjunktion wie im ersten Beispiel darzustellen.

Literatur[Bearbeiten]

Weblinks[Bearbeiten]

Quellen[Bearbeiten]

  1. J.J. Hopfield, D. Tank: Neural Computation of Decisions in Optimization Space. Biological Cybernetics, Nr. 52, S. 141–152, 1985.
  2. Patricia S. Churchland, Terrence J. Sejnowski: Grundlagen zur Neuroinformatik und Neurobiologie. Friedr. Vieweg & Sohn Verlagsgesellschaft, Braunschweig/Wiesbaden 1997, ISBN 3-528-05428-X
  3. Werner Kinnebrock: Neuronale Netze: Grundlagen, Anwendungen, Beispiele. R. Oldenbourg Verlag, München 1994, ISBN 3-486-22947-8
Dies ist ein als lesenswert ausgezeichneter Artikel.
Dieser Artikel wurde am 17. Juli 2006 in dieser Version in die Liste der lesenswerten Artikel aufgenommen.