Das Gehirn – Spiking Neural Network (SNN)

Ein Spiking Neural Network (SNN) das Wörter assoziiert

Bildung - Für Windows XP bis Windows 10 (32 und 64-bit)

Diese Seite ist eine Übersetzung der englischen Version. Die Programmoberfläche und alle Links auf dieser Seite sind in englischer Sprache. Eine vollständigere Wiedergabe findest Du evtl. auf der englischen Version dieser Seite.

Was es ist

Das Gehirn ist eine experimentelle Spiking Neural Network (SNN) Anwendung.

SNNs sind eine Simulation von Neuronen wie sie in der Natur vorkommen. Dies sollte nicht mit klassischen Backpropagation Netzwerken verwechselt werden, die für Mustererkennung, OCR usw. verwendet werden.

Ein Neuron besitzt viele Eingänge, die Synapsen, und einen Ausgang, das Axon. Viele Synapsen von anderen Neuronen sind wiederum mit dem Axon verbunden, wodurch ein komplexes Netzwerk entsteht.

Neuronen können feuern, sie beginnen zu spiken. Sie werden feuern, wenn ihr Eingangssignal über einem bestimmten Schwellenwert liegt. Wenn sie spiken, stimulieren sie dadurch andere verbundene Neuronen, die wiederum feuern werden, wenn deren Eingang über dem Schwellenwert liegt, und so weiter und so fort. Dieses Verhalten von Neuronen ist sehr gut untersucht, Andrew Huxley bekam dafür 1963 den Nobel Preis.

Unser menschliches Gehirn besitzt etwa 100 Milliarden Neuronen, jedes davon etwa 10.000 Synapsen.

Dies* ist das Jahrzehnt der Künstlichen Intelligenz

Einige große Forschungsprojekte laufen zur Zeit, das bemerkenswerteste ist sicherlich das Human Brain Project in der Schweiz. Dort plant man den Bau eines Zetta Flop Computers am Ende des Jahrzehnts irgendwann im Jahr 2023 *). Wenn Moores Gesetz dies erlaubt, was heute noch unmöglich ist.

*) Wir sprechen von einem Computer, der 20.000 mal schneller ist als der heute schnellste Super-Computer.

Solange kann ich nicht warten..

OK, lass uns einen ersten Eindruck gewinnen, wie ein Spiking Netzwerk in Aktion aussieht. Wie es aussieht, wenn einige zehntausend Neuronen zusammen funken, simuliert mit einem vereinfachten Neuronenmodell auf einem gewöhnlichen Personalcomputer. Dieses Projekt begann 2010, erste Veröffentlichung 2014.

Wie dieses Programm funktioniert

Mein Brainmodell

Modell

Mein vereinfachtes Neuronenmodell

In diesem Modell besitzt jedes Neuron 5 Kurven:

  • Ausgangssignal
  • Energie
  • Schwellenwert
  • (kurzfristige) Begeisterung
  • (mittelfristige) Stimulation
 

AUSGANGSSIGNAL ist die aktuelle Ausgabe. Der Zeitverlauf ist so gewählt, dass es etwa 5 verschiedene Ausgangswerte oder Ticks pro Spike gibt.

Das Neuron besitzt einen ENERGIE Level. Das ist vergleichbar mit einem Videospiel: Wenn Du zu oft feuerst, sinkt Deine Energie und Du benötigst etwas Zeit, bis sie sich wieder erholt hat (dies ist also zeitabhängig) und bevor Du erneut feuern kannst. Diese einfache Regelung beseitigt einige Probleme, die solch ein Netzwerk haben kann. Es verhindert Endlos-Schleifen die durch zirkuläre Referenzen verursacht werden können, und es verhindert "epileptische Anfälle", wie ich es nenne, wenn ale Neuronen gleichzeitig feuern, was durch Eigenresonanz geschehen kann, wenn sich das Ganze hochschaukelt.

Der SCHWELLENWERT bezeichnet die kleinste Stimulation die erforderlich ist, um ein Neuron feuern zu lassen. Dieser Wert passt sich durch den umgebenden Geräuschpegel selbst an und sinkt mit der Zeit wieder. Wenn Du Dich selbst in den Arm kneifst, tut das weh. Wenn Du das öfter machst, tut es jedesmal etwas weniger weh. Wenn Du eine Weile wartest, ist es wieder wie zu Beginn.

BEGEISTERUNG und STIMULATION sind bei diesem Thema Synonyme. Es gibt eine Funktion für die kurzfristige und eine für die mittelfristige Stimulation oder Begeisterung.

Die kurzzeitige Begeisterung wächst logarithmisch*: Zuerst bedarf es wenig Energie, um eine Begeisterung hervorzurufen. Später braucht es immer mehr Energie für noch mehr Begeisterung (wie beim Karussellfahren). Die Begeisterung beeinflusst das Ausgangssignal, dessen Kraft und dessen Anzahl von Spikes (sofern noch genügend Energie vorhanden ist).

Der STIMULUS-Wert wird mit jeder Stimulation leicht erhöht. Dadurch dass er sich sehr langsam verändert, zeichnet er auf, wie sehr das Neuron mittelfristig beteiligt war. Dies hält noch über Nacht an und beeinflusst die Selbstfeuerrate beim Träumen. Dadurch kann alles, was tagsüber erlebt wurde, im Traum noch einmal wiederholt werden, in verschiedenen Kombinationen mit den anderen Erlebnissen (was der erste Eindruck am Tag nicht bieten kann), sodass es davon lernen kann, indem es der Hebb'schen Lernregel folgend neue Verbindungen eingeht oder bestehende verstärkt.

Ich wüsste nicht was es sonst noch braucht,
um ein gutes Rechner-Hirn zu bauen.

Detlef Kroll, 2015

*) Implementierungs-Details: Die Berechnungen aller Funktionen (ausgenommen der Ausgabe) multiplizieren einen neuen Differenzwert mit dem vorigen Wert + einem konstanten Faktor, oder dessen Umkehrwert, was dann einer vereinfachten Berechnung von logarithmischem oder quadratischen Anwachsen entspricht.

**) Anmerkungen: Kurzfristig bedeutet: in Minuten. Mittelfristig meint: In Stunden oder Tagen. Langfristiges Verhalten (über Jahre) ist hier nicht modelliert.

 

Wenn das Programm läuft werden die Kurven für das aktivste Neuron angezeigt. In der Netzwerkansicht kannst Du durch Rechts-Klick ein Neuron auswählen. Durch Links-Klick kannst Du ein Neuron feuern lassen.

Traum-Modus

Dieses Gehirn kann träumen und wachen. Wähle die Checkbox Traummodus um es träumen zu lassen.

Auto-feuern

In der Natur feuert jedes Neuron gelegentlich von selbst. In diesem Programm macht es das nur im Traummodus. Du kannst die Selbstfeuerrate mit der entsprechenden Auswahlbox wählen oder das Selbstfeuern deaktivieren.

Die Hebb'sche Lernregel

WAS GEMEINSAM FEUERT, VERBINDET SICH

Donald Olding Hebb, 1949 in The Organization of Behavior

Wenn zwei Neuronen zur selben Zeit feuern, werden diese sich dadurch verbinden oder ihre Verbindung verstärken. Dies geschieht nicht gleich beim ersten Mal, sondern wenn sie mehrere Male gemeinsam feuern. In diesem Programm führt jedes Neuron dazu eine Liste von den besten Kandidaten, um neue Synapsen mit anderen Neuronen zu bilden, die einige Male gemeinsam gefeuert haben. Die neue Verbindung ist noch sehr dünn und liegt weit unter dem Schwellenwert. Aber sie wächst nach einiger Zeit, wann immer diese Neuronen wieder gemeinsam feuern.

Die Hebb'sche Lernregel und Selbstfeuern ist nur im Traummodus aktiviert.

Neuronen mit negativem Ausgangssignal

Dieses Modell fügt zu jedem Neuron ein weiteres mit negativem Ausgangssignal hinzu und verbindet beide. Meine Überlegungen führten in diese Richtung, dass dies erforderlich ist, um zwischen verschiedenen Mustern unterscheiden zu können. Dämpfung könnte in der Natur auch eine Funktion der Glia-Zellen sein, aber das ist nicht allgemein bekannt.

Der Berechnungs Kreislauf

In jeder Berechnungsrunde (Iteration) werden die folgenden Rechenschritte für jedes Neuron ausgeführt:

  1. Zuhören (den Eingang an den Synapsen prüfen und alle abhängigen Parameter berechnen)
  2. Feuern (wenn der Eingang über dem Schwellenwert liegt und das Neuron genug Energie zum Feuern besitzt)
  3. Verbinden, was gemeinsam feuert (neue Synapsen bilden oder bestehende verstärken, was im Programm als Gewichtung angezeigt wird)
 

Andere Merkmale

Es gibt keine überwachende höhere Instanz. Globale Daten werden überhaupt nicht verarbeitet und es gibt nichts, was das Verhalten übergeordnet beeinflusst.

Ganz einfach: Man bräuchte nämlich ein zweites Gehirn, um das zu tun.

Und im kleinen Bereich gibt es keinerlei Intelligenz bei den Neuronen. Das Neuron selbst ist nicht intelligent. Es reagiert nur und passt sich dabei selbständig an. Vergiss nicht: In der Natur ist es nur eine einzelne Zelle. Die sich gerne durch andere Zellen angezogen fühlt und sich gerne mit denen verbindet, die sie anziehend findet.*

*) Nebenbei: Genauso wie alles andere in diesem Universum. Einschliesslich aber nicht begrenzt auf die lebenden Dinge..

Emergenz nennt man ..

[..] die spontane Herausbildung von neuen Eigenschaften oder Strukturen eines Systems infolge des Zusammenspiels seiner Elemente.

Wikipedia

Was Du mit diesem Programm tun kannst

Experiment 1: Erstellen eines Gehirns aus einem Buch

Natürliche Sprachverarbeitung (NLP )

Es wäre schwer zu erkennen was jedes einzelne Neuron tut, wenn man die Neuronen einfach durchnummeriert. Daher ist mein Ansatz, ihnen Namen zugeben, welche Wörter sind. Die Wörter stammen aus Büchern, die als Eingabe verwendet werden, um daraus ein Gehirn zu erstellen. Zu deiesem Zweck besitzt das Programm NLP Funktionen.

(1) Wähle die NLP-Registerkarte, füge ein Buch vom Gutenberg Projekt dort über die Zwischenablage ein, und klicke auf Buch laufen lassen. Der Text muss in englischer Sprache sein. Das Programm wird dann zu jedem neuen Wort aus dem Buch ein neues Neuron erstellen, und diese Neuronen durch die Grammatik miteinander verbinden: Subjekt => Prädikat => Objekt

(2) Dann wechsle zur Netzwerk-Ansicht, gib dort einen Satz oder einzelne Wörter in das Eingabefeld ein und klicke auf Text eingeben. Viele Neuronen werden feuern und es sieht so aus, als wenn das ganze Netz kollabiert. Nach einer Weile beruhigt sich das Netz und alle Neuronen haben ihren Schwellenwert eingepegelt.

(3) Dann kannst Du in den Traummodus wechseln, indem Du die entsprechende Checkbox markierst. Die Neuronen beginnen, gelegentlich spontan zu feuern und dabei neue Verbindungen einzugehen.

(4) Wechsle zur Wortwolkenansicht, dort werden die Wörter für die aktivsten Neuronen angezeigt. Wenn Du die Maus einige Zeit nicht bewegst, wechselt das Programm zur Vollbildansicht und zeigt einen inspirierenden Bildschirmschoner während das Gehirn von dem Buch träumt.

(5) Stoppe und speicher das Gehirn. Das Programm verfügt über eine Autospeichern Funktion die aktiviert wird, sobald das Gehirn erstmals gespeichert wurde. Klicke dann wieder auf laufen um mit der Berechnung fortzufahren..

Beim Einlesen eines Buches fügt das Programm 4 mal soviele zusätzliche freie Neuronen hinzu, sodass es eine Chance hat, zu lernen.

Du kannst eine Beispieldatei hier herunterladen, welche 258 Stunden gelaufen ist.

Experiment 2: Verwende ein Gehirn, welches aus den häufigsten englischen Wörtern erstellt wurde, verbinde die Neuronen durch Wortbeugungen, dann durch Synonyme aus WordNet, dann durch alle beste Literatur, und füttere es durch zufällige Eingabe von Twitter

Nun, das meiste ist bereits durch die Überschrift gesagt 😉

Ich habe die 2+2gfreq Wortliste von wordlist.sourceforge.net verwendet. Die Häufigkeit der Wörter ist darin durch den Google Suchindex festgelegt. Diese Liste besitzt auch alle Beugungen und unregelmässige Verben usw., welche in einer zusätzlichen Neuronenschicht miteinander verbunden sind.

Dann verwendete ich WordNet um Synonyme in einer zusätzlichen Neuronenschicht miteinander zu verbinden.

Dann wurde einige gute Literatur über das Gehirn laufen gelassen, um die Wörter durch die Grammatik miteinander zu verbinden:

A Diversity of Creatures und Jungle Book von Rudyard Kipling, Alices Adventures in Wonderland, All Around the Moon, Around the World in 80 Days, Five Weeks in a Balloon, Eight Hundred Leagues on the Amazon von Jules Verne, The Bhagavad-Gita, The Bible, Divine Comedy, Don Quixote, Dubliners by James Joyce, Goethes Faust, Die Märchen der Brüder Grimm, Gulliver's Travels, Iliad und The Odyssey von Homer, Jungle Book, Kama Sutra, Moby Dick, Oliver Twist, Paradise Lost, Peter Pan, Shakespeare (komplettes Werk), Sherlock Holmes, The Adventures of Huckleberry Fin, The Communist Manifesto von Friedrich Engels und Karl Marx, The Notebooks von Leonardo Da Vinci, The Origin of Species by means of Natural Selection von Charles Darwin, The Three Musketeers von Alexandre Dumas, Thus Spake Zarathustra von Nietzsche, Treasure Island von Robert Louis Stevenson, War and Peace von Leo Tolstoi.

Download Du kannst das initialisierte Gehirn hier herunterladen.

Als nächstes benötigst Du einen Twitter Zugang. Logge Dich bei Twitter ein, gehe zum Entwicklerbereich und erstelle dort eine neue Anwendung. Du erhälst dann einen Customer-Key und ein Customer-Secret von Twitter, welches Du im Optionen-Dialog dieses Programms eingeben kannst. Sobald Du damit fertig bist, kannst Du das Gehirn wieder laufen lassen, den Traummodus aktivieren und dann die Twitter-Checkbox unter dem Texteingabefeld aktivieren. Das Programm nutzt nun die NLP-Funktionen, um alle 15 Sekunden die Neuronen durch die Tweets anzufeuern (es macht dazu eine Twitter-Suche nach 'news').

Bitte probier auch Optionen | Wortwolke jede 1 Sekunde mit mindestens 1 Wort anzeigen, um mehr Aktion zu sehen. Setze auch die Autofire-Rate auf OFF, denn dadurch könnten zu viele zufällige Verbindungen zu schnell entstehen. Aber wähle trotzdem die Autofire Checkbox.

Einige abschließende Vermutungen

1. Vermutung

Dies ist ein Prinzip welches überall in der Natur gefunden werden kann, von der kleinsten Schnecke bis zum menschlichen Gehirn. Daher kann die Funktion nicht auf einem ausgeklügelten Neuronenmodell beruhen, dieses wird bei jeder Gattung und Art anders sein. Man muss nur die wesentlichen Prinzipien dahinter verstehen und umsetzen. DAS EINZELNE NEURON IST NICHT INTELLIGENT.

2. Vermutung

Rechner können es besser. Die Biologie hat ein Verkabelungsproblem. Alle diese Axons brauchen eine Menge Platz. Im Rechner sind dies nur Speicheradressen.

3. Vermutung

Flugzeuge haben keine Federn. Wenn Du Technologie entwickelst, welche die Natur als Vorbild hat, musst Du die Natur nicht exakt nachahmen. Du musst die Prinzipien dahinter verstehen. Technologie kann dann besser sein als die Natur. Kein Vogel fliegt mit Überschall.

4. Vermutung

Hebb's Lernregel ist das Schlüsselprinzip, um etwas Sinnvolles mit Spiking Networks zu erreichen.

5. Vermutung

Ohne Dämpfung durch hemmende Neuronen (oder auf Synapsen-Ebene) kann es nicht funktionieren.

Warum Dämpfung unabdingbar ist

neuron pattern 1

Gegeben sind 6 Neuronen A, B, .. F. Wenn wir diese durch die Hebb'sche Lernregel lernen lassen, werden nach einiger Zeit alle mit allen verbunden sein. Dies kann nicht das Ziel sein. Nicht, wenn wir zwischen Muster 1 und Muster 2 unterscheiden wollen.

neuron pattern 2

Wenn wir 6 weitere Neuronen A', B', .. F' mit negativem Ausgang hinzufügen, und dabei A mit A', B mit B' und so weiter verbinden, dann können sich A' und B' mit C verbinden und auf diese Weise C durch ihren negativen Ausgang hemmen. Ebenso können D' und E' dann F hemmen. Auf diese Weise kann das Netzwerk Muster 1 gegen Muster 2 abgrenzen, und anders herum.

Experiment 3: Minimales Beispiel

Tiere und Farben. Werden sie verwechselt ?

 
  1. füge den obigen Text in das NLP Fenster ein und erstelle das Gehirn durch Run Book.
  2. gehe zu Optionen und setze Min. words to display = 2
  3. gehe zur Netzwerk Ansicht
  4. setze Traum-Modus
  5. setze Auto-Fire Rate auf very high oder sogar extremely high
  6. klicke auf Run
  7. gehe zur Wortwolken Ansicht

Wird das Gehirn Tiere und Farben durcheinanderbringen, wenn es durch die Hebb'sche Lernregel neue Synapsen bildet ?

Anmerkung: Das Programm kennt nicht die Bedeutung des Wortes not.

Was ist eigentlich Intelligenz ?

Für diesen Begriff gibt es keine allgemeinverbindliche Definition. Oft wird er mit kognitiven Fähigkeiten in Zusammenhang gebracht, welche wiederum im Zusammenhang mit Informationsverarbeitung bzw. "Erkennen", also Wahrnehmung steht und eng an die Psychologie angelehnt ist. Leider haben wir - selbst wenn wir sagen, dass wir heute im Informationszeitalter leben - auch für den Begriff Information keine allgemeine Definition. Nicht einmal ansatzweise.

Da die Informatik aber zweifelsfrei ein Teilgebiet der Mathematik ist und mit Psychologie herzlich wenig zu tun hat, wollen wir an dieser Stelle eine neue Definition für Intelligenz aus mathematischer Sicht wagen.

Das Stichwort für mich ist "Unterscheidungsvermögen" oder Urteilskraft. Unterscheidung nicht nur von physisch sichtbaren Dingen, sondern auch von abstrakten Konzepten. Bereits erstes ist von Species zu Species sehr unterschiedlich. Im Gegensatz zu Bienen können wir nicht im ultravioletten Bereich sehen, wir können nicht wie Fledermäuse Ultraschall wahrnehmen. Aber erklären Sie einmal einer Fledermaus den Unterschied zwischen Strukturalismus und Poststrukturalismus, womit wir bei den Konzepten wären.

Um Unterscheidungsvermögen mathematisch auszudrücken, helfen die "Laws of Form" von George Spencer-Brown. Bitte vergessen Sie dabei die Hirngespinste des "radikalen Konstruktivismus". Auch die Frankfurter Schule und Gödel-Escher-Bach lassen Sie besser links liegen. Und bitte erwähnen Sie in meiner Gegenwart nicht Kant. Vor allem nicht, wenn Sie nach 1972 geboren sind. Denn dann gehören Sie der Generation an, die Kant falsch verstanden hat und haben höchstwahrscheinlich Soziologie studiert. All das hilft uns hier überhaupt nicht weiter und ist nebenbei kompletter Unsinn. Ich hoffe, ich habe mich damit klar genug ausgedrückt, um Missverständnisse zu vermeiden.

Die Unterscheidung (distinctio, διάκρισις, διορισμός) ist eine Grundtätigkeit des Denkens. Sie besteht in der aktiven Feststellung bzw. Klarlegung von Unterschieden, Verschiedenheiten, Andersheiten. Sie ist eine Voraussetzung der Klassifikation und der Erkenntnis.

Wikipedia

Zurück zu Spencer-Brown und seinen Laws of Form. Dessen Symbolik und Algebra ist der einzige mir bekannte Ansatz in der Mathematik, um generell Systemverhalten beschreiben zu können und ist dadurch nicht nur im Kontext eines Intelligenzbegriffs wichtig.

Möglicherweise ist die Algebra der LoF bisher an unserem scheinbar unumwerflichen Verständnis der Logik, insbesondere der Bool'schen Algebra und des Logischen Kalküls gescheitert, eine größere Bekanntheit zu finden. Die Bool'sche Algebra wirkt mit ihren drei Operatoren "UND", "ODER", "EXKLUSIVES ODER" heute wie in Stein gemeisselt und ist sozusagen die "heilige Dreifaltigkeit der Informatik".

Wie anders würde aber das Logische Kalkül und dadurch auch die Algebra der LoF aussehen, wenn wir daneben noch ein "WEDER NOCH" zulassen. Was die Unterscheidung betrifft, ist alles, was unterschieden werden kann, ENTWEDER das eine, ODER das andere, oder nichts von beiden (WEDER NOCH).

Kroll'sche Algebra der Unterscheidung
Entweder, Oder, oder Weder Noch ? 😉

Ist dies noch Forschung oder ist das schon Kunst ?

Wenn Du das Programm im Vollbildmodus beobachtest, wirst Du das vielleicht entspannend und inspirierend finden.

Wenn Du ein Galerist oder ein Kurator einer Ausstellung bist, sagst Du vielleicht:
O MEIN GOTT, DAS IST DIE PERFEKTE COMPUTER-INSTALLATION FÜR DAS EINUNDZWANZIGSTE JAHRHUNDERT !
Du bist willkommen. Bitte vergiss nicht, mich zur Vernissage einzuladen 😉

Features

  • Native 64-bit auf 64-bit Systemen (läuft auch auf 32-bit Systemen)
  • Volle multi-core parallele Berechnung

Download "Das Gehirn"

Systemanforderungen

  • MS-Windows Desktop - Vista bis Windows 10
  • .NET Framework 4.0 (auf den meisten Computern bereits installiert)
  • 4 Gig RAM, Multi-Core System
~ 80.0 MB

Version 1.0.7, in englisch

Quellcode

Die vollen c# / VS 2013 Quellcodes sind auf Anfrage verfügbar.
Ich benötige Deine Bestätigung, das dies nur zu Bildungs- und Forschungszwecken eingesetzt wird.

Hören Sie auch den Soundtrack zu dieser Seite auf Soundcloud.

*) 'Das Gehirn' ist weder ein Produktname noch eine Marke. Es ist nur ein Arbeitstitel für dieses Forschungsprojekt und sollte nicht verwechselt werden mit Produktbezeichnungen oder Marken von Drittanbietern, die zufällig einen ähnlichen Namen gewählt haben.