Im ersten Teil der Serie zu den künstlichen neuronalen Netzen wurden die Grundlagen der Informationsverarbeitung im Gehirn, die Funktionsweise eines Neurons und das elektronische Äquivalent dazu – das künstliche Neuron – erklärt. Heute wollen wir sehen, wie mit Hilfe der künstlichen Neuronen ebenfalls eine Informationsverarbeitung realisiert werden kann.

Zuerst einmal (und mehr oder weniger unabhängig von dem, was noch folgt) wollen wir aber zeigen, dass ein künstliches neuronales Netz ebenso mächtig ist wie ein beliebiger moderner Computer, das heißt, die gleichen Dinge berechnen kann. Dazu ist es nötig zu wissen, wie Computer grundsätzlich überhaupt arbeiten, das heißt, wie sie einen Strom von Informationen verarbeiten können. Alte Hasen können jetzt einfach weiterlesen, allen anderen empfehle ich meine Artikelserie zum Thema “Wie Rechner rechnen“.

Die Basis der Informationsverarbeitung im Computer stellen die logischen Operationen dar, allen voran die Basisverknüpfungen UND, ODER und NICHT. Mit Ihrer Hilfe lässt sich jede beliebige Verknüpfung von binären Zahlen darstellen; ein System, welches diese Operationen beherrscht und über einen Speicher verfügt, ist –  was die Rechenfähigkeit angeht – ebenso mächtig wie ein handelsüblicher Computer. Ein KNN könnte nun genau dafür benutzt werden; in der Praxis hat das zwar keinen großen Nutzen (immerhin haben wir ja normale Computer), ist aber dennoch interessant, weswegen ich es auch im Folgenden vorstellen möchte. Also immer im Hinterkopf behalten: für die tatsächliche Anwendung künstlicher neuronaler Netze spielt dieser Artikel nur eine untergeordnete Rolle; zum Verständnis der Funktionsweise ist er aber geeignet.

Noch eine Anmerkung, bevor es losgeht: wenn ich im weiteren Verlauf von “Neuronen” rede, so sind damit in der Regel “künstliche Neuronen” gemeint.

Als erstes wollen wir die drei oben genannten Basisverknüpfungen UND, ODER und NICHT mit Hilfe künstlicher Neuronen darstellen. Zur Erinnerung hier noch einmal die Verknüpfungstabelle (in der Reihenfolge NICHT, UND, ODER):

Aus dem letzten Teil wissen wir, dass jedes künstliche Neuron über eine Menge von gewichteten Eingabekanälen, einem Schwellwert, einer Aktivierungsfunktion und natürlich dem Ausgabekanal besteht. Zur Realisierung der NICHT-Funktion wird daher ein Neuron mit einer Eingabe und für die UND- und ODER-Funktion jeweils ein Neuron mit 2 Eingaben benötigt. Für alle drei Neuronen soll gelten, dass sie als Aktivierungsfunktion eine einfache Sprungfunktion verwenden, die beim Überschreiten eines bestimmten Schwellwertes den Wert 1, ansonsten den Wert 0 erzeugt.

Die Neuronen für die UND- und ODER-Funktion lassen sich somit auch ganz einfach beschreiben; die Eingabegewichte werden dazu für alle Eingaben auf den Wert 1 gesetzt und als Schwellwert für das UND-Neuron der Wert 2 und für das ODER-Neuron der Wert 1 gewählt. Wenn wir kurz nachrechnen, erschließt sich dieses Vorgehen auch sofort:

Zur Berechnung des Ausgabewertes eines künstlichen Neurons werden alle Eingaben mit ihrem Gewicht multipliziert, aufaddiert und als Argument für die Aktivierungsfunktion verwendet; erreicht oder überschreitet der Wert des Arguments den Schwellwert, so wird bei einer Sprungfunktion der höhere Wert (hier: 1), ansonsten der niedrigere (hier: 0) erzeugt (und ja, eine Sprungfunktion kann auch umgekehrt funktionieren).

Für unser ODER-Neuron bedeutet das, dass der Schwellwert 1 erreicht wird, sobald mindestens eine der beiden Eingaben den Wert 1 aufweist (da das Gewicht ebenfalls 1 ist, hat es keine weitere Auswirkung). Das Neuron feuert also, wenn wenigstens eine der Eingaben 1 ist, womit es genau der ODER-Funktion entspricht. Analog dazu feuert das UND-Neuron erst, wenn an beiden Eingabekanälen der Wert 1 anlegt, da nur so der Schwellwert von 2 erreicht wird.

Das NICHT-Neuron wird nun nach dem gleichen Gedankengang umgesetzt; allerdings benötigen wir hier als Gewicht für die einzige Eingabe den Wert -1 und nutzen als Schwellwert 0. Die Überlegung dahinter ist einfach: erhält das Neuron eine 1 als Eingabewert, so wird diese mit dem Gewicht von -1 multipliziert; das Ergebnis (ebenfalls -1) ist natürlich kleiner als 0, wodurch das Neuron nicht feuert. Bei einer Eingabe von 0 allerdings wird der Wert von 0 in die Aktivierungsfunktion gegeben, wodurch gerade der Schwellwert erreicht wird und das Neuron feuert.

1 / 2 / Auf einer Seite lesen

Kommentare (6)

  1. #1 HF
    April 6, 2012

    “Einen großen Sinn hat das natürlich nicht, da es ja Computer schon gibt und es nicht allzu viel bringt, sie durch ein künstliches Netz nachzubauen;…”
    In den Anfängen sah man in der Möglichkeit, mit Modellneuronen die Operationen “Und”,”Oder”,”Nicht” und “Speichern” zu realisieren, ein wichtiges Teilergebnis. Ist es “natürlich”, dass mit diesen Operation bei der Mustererkennung wenig auszurichten ist, oder ist es nicht vielmehr eine lange, bittere Erfahrung gewesen? Woher weiss man, dass es es kein Netzwerk aus 10^7 Gattern gibt, das die Erkennung eines beliebigen “A” auf einem Raster von 16×16 Pixeln erledigt? Die Zahl der möglichen Muster ist riesig, aber die Zahl der möglichen Gatternetzwerke ist noch viel, viel größer. Dass kein Weg bekannt ist, ein solchen Netzwerk zu konstruieren, beweist doch nicht, dass es unmöglich ist.

  2. #2 Marcus Frenkel
    April 7, 2012

    Die Aussage bezog sich ja nicht auf die Umsetzung der logischen Operationen mit KNNs im Allgemeinen, sondern auf den Nachbau eines von-Neumann-Rechners mittels eines KNN im Speziellen.

  3. #3 Coppergrün
    April 20, 2012

    Man kann auch einen Computer aus Sand bauen, aus Lego oder aus Telefonzellen und Kleinkindern mit Pinseln. Sagt das denn überhaupt irgendetwas aus? Interessant ist doch wie die Protokolle des Gehirns arbeiten. Und die Protokolle basieren meiner Meinung nach nicht auf einer Ansammlung von “Verundungs-Gattern”.

  4. #4 Marcus Frenkel
    April 20, 2012

    Deswegen ja auch der letzte Absatz im Artikel. Künstliche Neuronen werden nicht auf die hier beschriebene Art verwendet; könnten aber und dieser Artikel ist einfach ein Beispiel dafür, wie die Neuronen im Allgemeinen funktionieren.

  5. #5 Coppergrün
    April 20, 2012

    es verdeutlicht aber doch relativ gut, wie derartige Netze im Prinzip funktionieren.

    -> funktionieren könnten

    Verdeutlicht das denn nicht eher das, was wir daraus machen können? Speichern die Neuronen wirklich binäre Informationen oder deuten wir die Funktion so um das wir uns darunter etwas vorstellen können? Wenn nicht, macht es keinen Sinn unser primitives Modell von binären Computern darauf abzubilden.

    Interessant ist es natürlich trotzdem.

  6. #6 Marcus Frenkel
    April 20, 2012

    es verdeutlicht aber doch relativ gut, wie derartige Netze im Prinzip funktionieren.

    Streiche “Netze” – primär waren “Neuronen” gemeint. Wurde korrigiert.