1000-dimensionaler Würfel: Ist es heute möglich, ein Rechenmodell des menschlichen Gedächtnisses zu erstellen?

Bild

Auf dem Weg zum Berkeley-Campus fuhr ich heute Morgen mit den Fingern über die Blätter eines duftenden Busches und atmete dann den vertrauten Geruch ein. Ich mache das jeden Tag und jeden Tag ist das erste Wort, das in meinem Kopf auftaucht und ihre Hand zur Begrüßung winkt, Salbei . Aber ich weiß, dass diese Pflanze kein Salbei ist, sondern Rosmarin, also befehle ich Salbei, sich zu beruhigen. Aber zu spät. Nach Rosmarin und Salbei kann ich das Auftreten von Petersilie und Thymian auf der Bühne nicht aufhalten. Danach erscheinen die ersten Noten der Melodie und des Gesichts auf dem Cover des Albums, und jetzt war ich Mitte der 1960er Jahre zurück und trug ein Hemd mit Gurken. Währenddessen bringt Rosmarin eine 13-minütige Lücke in Rose Mary Woods 'Gedächtnis hervor (obwohl ich jetzt nach Rücksprache mit dem kollektiven Gedächtnis weiß, dass es Rose Mary Woods und ein Raum von 18,5 Minuten sein sollte ). Von Watergate springe ich zu den Geschichten auf der Hauptseite. Dann bemerke ich in einem gepflegten Garten eine andere Pflanze mit flauschigen graugrünen Blättern. Dies ist auch kein Salbei, sondern ein Reiniger (Lammohr). Salbei bekommt jedoch endlich seinen Moment des Ruhms. Von Gräsern gehe ich zur Sage- Mathe-Software und dann zum Luftverteidigungssystem der 1950er Jahre namens SAGE , der halbautomatischen Bodenumgebung, die von dem größten jemals gebauten Computer verwaltet wurde.

In der Psychologie und Literatur werden solche mentalen Wanderungen als Bewusstseinsstrom bezeichnet (der Autor dieser Metapher ist William James). Aber ich würde eine andere Metapher wählen. Mein Bewusstsein fließt, soweit ich mich fühle, nicht reibungslos von einem Thema zum anderen, sondern flattert durch die Gedankenlandschaft, eher wie ein Schmetterling als ein Fluss, manchmal an eine Blume genagelt und dann an eine andere, manchmal von Böen mitgerissen, manchmal besucht immer wieder der gleiche Ort.

Um die Architektur meines eigenen Gedächtnisses zu erkunden, versuchte ich, gemächlicher mit freien Assoziationen zu experimentieren. Ich begann mit demselben Blumenrezept - Petersilie, Salbei, Rosmarin und Thymian -, aber für diese Übung schlenderte ich nicht durch die Gärten der Berkeley Hills. Ich saß am Tisch und machte mir Notizen. Das folgende Diagramm ist der beste Versuch, den gesamten Verlauf meiner Gedanken zu rekonstruieren.


Petersilie, Salbei, Rosmarin, Thymian - vier Kräuter sowie eine Zeile aus dem Lied Simon und Garfunkel.

Simon und Garfunkel - Paul Simon und Art Garfunkel, ein Duett von Sängern des Folk-Rock-Genres der 1960er und 70er Jahre.

Frau Robinson ist ein Lied von Simon und Garfunkel sowie eine Figur aus Mike Nichols 'Film "The Graduate".

"Wo bist du hingegangen, Joe DiMaggio?" - die Frage in "Frau Robinson. "

Simon and Schuster ist ein Verlag, der 1924 von Richard Simon und Max Schuster (ursprünglich für die Veröffentlichung von Kreuzworträtseln) gegründet wurde.

Jackie Robinson ist die legendäre Brooklyn Dodgers-Spielerin.

Robinson Crusoe - Daniel Defoe Roman über den Schiffbruch (1719).

Schweizer Robinsons Familie - Johan David Weiss Roman über Schiffbruch (1812).

Kräuter - aromatische Pflanzen

Herr Wizard ist eine Wissenschaftsshow für Kinder am Samstag aus den 1950er Jahren, die von Don Herbert moderiert wird.

Alpert - Trompeter Wappen von Alpert.

Plastics ist der Karriere-Ratschlag von The Graduate.

coo-coo-ca-choo - Zeile von „Mrs. Robinson. "

Frank Robinson ist in den 1970er Jahren Outfielder bei Baltimore Orioles.

Greig Nettles ist der dritte Baseballspieler der New York Yankees in den 1970er Jahren.

Dustin Hoffman ist ein Schauspieler, der in The Graduate spielte.

Abby Hoffman - "Yipee!"

Leominster ist eine Stadt in Massachusetts, die zur Wiege der Kunststoffherstellung in den USA geworden ist.

Brooks Robinson ist Baltimore Orioles 'dritter Baseballspieler in den 1970er Jahren.

Papillon ("The Moth") - ein Film von 1973, in dem Dustin Hoffman eine untergeordnete Rolle spielte; "Papillon" auf Französisch, "Schmetterling".

Nabokov - Vladimir Nabokov, ein in Russland geborener Schriftsteller und Entomologe, der Schmetterlinge studiert.

Schmetterling, Schmetterling, Mariposa, Farfalla - „Schmetterling“ in Englisch, Deutsch, Spanisch und Italienisch; es scheint, dass alle von ihnen (und auch das französische Wort) unabhängigen Ursprungs sind.

Wie der Schmetterling auf Russisch heißt - ich weiß nicht. Oder wusste nicht, wann diese Frage auftauchte.

"I am the Walrus" ist ein Beatles-Song von 1967, der auch die Phrase "coo-coo-ca-choo" enthält.

Carly Simon ist Sängerin. Keine Verbindung zu Paul Simon, sondern ist die Tochter von Richard Simon.

"Du bist so eitel" ist ein Lied von Carly Simon.

Das Top-Down-Diagramm stellt Themen in der Reihenfolge dar, in der sie im Gehirn angezeigt werden. Die Verbindungen zwischen den Knoten erzeugen jedoch keine einzige lineare Sequenz. Die Struktur ähnelt einem Baum mit kurzen Ketten aufeinanderfolgender Assoziationen, die mit einer scharfen Rückkehr zu einem früheren Knoten enden, als würde ich von einem gespannten Gummiband zurückgezogen. Solche Unterbrechungen sind in der Tabelle mit grünen Pfeilen markiert. Das rote X unten ist der Ort, an dem ich beschlossen habe, das Experiment abzuschließen.

Ich entschuldige mich bei denen, die nach 1990 geboren wurden. Viele der genannten Themen scheinen Ihnen veraltet oder mysteriös zu sein. Erklärungen werden unter der Grafik angezeigt, aber ich denke nicht, dass sie die Assoziationen klarer machen werden. Am Ende sind die Erinnerungen persönlich, sie leben im Kopf. Wenn Sie eine Sammlung von Ideen sammeln möchten, die für Ihre eigene Erfahrung relevant sind, müssen Sie nur Ihren eigenen Zeitplan für freie Assoziationen erstellen. Ich kann dies nur empfehlen: Möglicherweise stellen Sie fest, dass Sie nicht wussten, dass Sie etwas wissen.



Das Ziel meines täglichen Spaziergangs in Berkeley ist das Simons Institute und der Computational Theory Course, an dem ich an einem ein Semester dauernden Programm über Gehirn und Computer teilnehme. Eine solche Umgebung weckt Gedanken. Ich begann zu überlegen: Wie können wir ein Rechenmodell für den Prozess der freien Assoziation erstellen? Unter den verschiedenen Aufgaben, die zur Lösung durch künstliche Intelligenz vorgeschlagen werden, sieht diese recht einfach aus. Es besteht keine Notwendigkeit für eine tiefgreifende Rationalisierung. Alles, was wir simulieren müssen, ist nur Tagträumen und Wandern in den Wolken - das tut das Gehirn, wenn es nicht geladen ist. Es scheint, dass eine solche Aufgabe leicht zu lösen ist, nicht wahr?

Die erste Idee, die mir (zumindest in meinem Kopf) in Bezug auf die Architektur eines solchen Rechenmodells einfällt, ist die zufällige Bewegung entlang eines mathematischen Graphen oder Netzwerks. Netzwerkknoten sind im Speicher gespeicherte Elemente - Ideen, Fakten, Ereignisse - und Kommunikation sind verschiedene Arten von Assoziationen zwischen ihnen. Zum Beispiel kann ein Schmetterlingsknoten mit einer Motte, einer Raupe, einem Monarchen und einem Perlmutt sowie mit in meinem Zeitplan erwähnten Übergängen verbunden sein und möglicherweise weniger offensichtliche Verbindungen haben, zum Beispiel australisches Kriechen "," Shrimp "," Mohammed Ali "," Pellagra "," Choke " und " Bühnenangst " . Die Hostdatenstruktur enthält eine Liste von Zeigern auf alle diese verwandten Hosts. Zeiger können von 1 bis n nummeriert werden; Das Programm generiert in diesem Intervall eine Pseudozufallszahl und geht zum entsprechenden Knoten, in dem die gesamte Prozedur erneut gestartet wird.

Dieser Algorithmus spiegelt einige grundlegende Merkmale freier Assoziationen wider, von denen jedoch viele nicht berücksichtigt werden. Das Modell geht davon aus, dass alle Zielknoten gleich wahrscheinlich sind, was unplausibel erscheint. Um den Unterschied in den Wahrscheinlichkeiten zu berücksichtigen, können wir jede Kante fragen ich Gewicht w i und machen Sie dann die Wahrscheinlichkeiten proportional zu den Gewichten.

Noch komplizierter ist die Tatsache, dass Gewichte vom Kontext abhängen - von der jüngsten Geschichte menschlicher geistiger Aktivität. Wenn ich keine Kombination von Frau hätte Robinson und Jackie Robinson, würde ich an Joe Di Maggio denken? Und jetzt, wenn ich das schreibe, erinnert sich Joltin 'Joe (Spitzname Di Maggio) an Marilyn Monroe und dann an Arthur Miller, und wieder kann ich den Gedankengang nicht stoppen. Um diesen Effekt in einem Computermodell zu reproduzieren, ist ein Mechanismus zur dynamischen Regulierung der Wahrscheinlichkeiten ganzer Kategorien von Knoten erforderlich, abhängig davon, welche anderen Knoten kürzlich besucht wurden.

Sie sollten auch die Auswirkungen von Neuheiten anderer Art berücksichtigen. Im Modell sollte sich ein Gummiband befinden, das mich ständig zu Simon, Garfunkel und Mrs. zurückzieht. Robinson Wahrscheinlich sollte jede kürzlich besuchte Site zur Liste der Zieloptionen hinzugefügt werden, auch wenn sie in keiner Weise mit der aktuellen Site verbunden ist. Andererseits ist Sucht auch eine Möglichkeit: Zu oft werden erinnerte Gedanken langweilig, deshalb sollten sie im Modell unterdrückt werden.

Ein weiterer letzter Test: Einige Erinnerungen sind keine isolierten Fakten oder Ideen, sondern Teile der Geschichte. Sie haben eine narrative Struktur mit Ereignissen, die sich in chronologischer Reihenfolge entfalten. Für Knoten solcher episodischer Erinnerungen ist die nächste und möglicherweise vorherige Kante erforderlich. Eine solche Rippenkette vereint unser ganzes Leben, einschließlich allem, woran Sie sich erinnern.



Kann ein ähnliches Rechenmodell meine mentalen Irrfahrten reproduzieren? Das Sammeln von Daten für ein solches Modell ist ein ziemlich langwieriger Prozess, und das ist nicht überraschend, da ich ein Leben lang gebraucht habe, um meinen Schädel mit der Verflechtung von Kräutern, Wappen, Simons, Robinsons und Hoffmanns zu füllen. Viel mehr als die Datenmenge ist mir die Sorgfalt des Graph-Traversal-Algorithmus wichtig. Es ist sehr einfach zu sagen: „Wählen Sie einen Knoten gemäß der Menge der gewichteten Wahrscheinlichkeiten“, aber wenn ich mir die schmutzigen Details der Implementierung dieser Aktion anschaue, kann ich mir kaum vorstellen, dass so etwas im Gehirn passiert.

Hier ist der einfachste Algorithmus, den ich für die zufällig gewichtete Auswahl kenne. (Dies ist nicht der effizienteste dieser Algorithmen, aber die Methoden sind noch chaotischer. Keith Schwartz hat ein hervorragendes Tutorial und einen Überblick zu diesem Thema verfasst.) Angenommen, eine Datenstruktur, die einen Netzwerkknoten simuliert, enthält eine Liste von Links zu anderen Knoten und eine entsprechende Liste von Gewichten . Wie in der folgenden Abbildung gezeigt, generiert das Programm eine Reihe von akkumulierten Gewichtssummen: 0 , w 1 , w 1 + w 2 , w 1 + w 2 + w 3 , d o t s  . Der nächste Schritt besteht darin, diese Reihe zu normalisieren, indem jede Zahl durch die Gesamtsumme der Gewichte geteilt wird. Jetzt haben wir eine Reihe von Zahlen p i monoton von Null auf Eins ansteigen. Als nächstes wählt das Programm eine zufällige reelle Zahl aus x vom Intervall [ 0 , 1 ) ;; x muss in einem der normalisierten Intervalle liegen p i und dieser Wert ich definiert den nächsten auswählbaren Knoten.


Im Julia-Programmiersprachencode sieht die Knotenauswahlprozedur folgendermaßen aus:

function select_next(links, weights) total = sum(weights) cum_weights = cumsum(weights) probabilities = cum_weights / total x = rand() for i in 1:length(probabilities) if probabilities[i] >= x return i end end end 

Ich beschreibe diese langweiligen Details von akkumulierten Summen und Pseudozufallszahlen so langsam, um sie auf diese Weise hervorzuheben, dass dieser Graph-Traversal-Algorithmus nicht so einfach ist, wie es auf den ersten Blick scheint. Und wir haben das Thema der Änderung von Wahrscheinlichkeiten im laufenden Betrieb noch nicht berücksichtigt, obwohl unsere Aufmerksamkeit von Thema zu Thema schwebt.

Es ist noch schwieriger, den Lernprozess zu verstehen - das Hinzufügen neuer Knoten und Kanten zum Netzwerk. Ich beendete meine Sitzung der freien Assoziationen, als ich zu einer Frage kam, die ich nicht beantworten konnte: Wie heißt ein Schmetterling auf Russisch? Aber jetzt kann ich ihm antworten. Wenn ich das nächste Mal dieses Spiel spiele, werde ich das Wort Babochka zur Liste hinzufügen. In einem Rechenmodell ist das Einfügen eines Knotens für das Wort Babochka eine ziemlich einfache Aufgabe, aber unser neuer Knoten muss auch mit allen vorhandenen Schmetterlingsknoten verbunden sein. Darüber hinaus fügt Babochka selbst neue Rippen hinzu. Sie steht Babuschka (Großmutter) phonetisch nahe - eines von mehreren russischen Wörtern in meinem Wörterbuch. Das Suffix -ochka ist winzig , daher muss es mit der französischen -ette und der italienischen -ini verknüpft werden . Die wörtliche Bedeutung des Wortes Babochka ist "kleine Seele", was eine noch größere Anzahl von Assoziationen impliziert. Schließlich kann das Erlernen eines einzelnen neuen Wortes eine vollständige Neuindizierung des gesamten Wissensbaums erfordern.



Versuchen wir es mit einer anderen Methode. Vergessen Sie das zufällige Durchlaufen eines Netzwerks mit seinen Spaghetti von Zeigern auf Knoten. Lassen Sie uns stattdessen einfach alle ähnlichen Dinge in der Nachbarschaft aufbewahren. Aus Sicht der digitalen Computerspeicherbänke bedeutet dies, dass ähnliche Dinge an benachbarten Adressen gespeichert werden. Hier ist ein hypothetisches Gedächtnissegment, das sich auf das Konzept des Hundes konzentriert . Die benachbarten Orte sind mit anderen Worten besetzt, Konzepte und Kategorien, die am wahrscheinlichsten durch den Gedanken an einen Hund ( Hund ) verursacht werden: offensichtliche Katze (Katze) und Welpe (Welpe), verschiedene Hunderassen und mehrere spezifische Hunde (Skippy ist unser Familienhund, der es war in meiner Kindheit) sowie möglicherweise komplexere Assoziationen. Jeder Artikel hat eine digitale Adresse. Die Adresse hat keine tiefe Bedeutung, aber es ist wichtig, dass alle Speicherzellen der Reihe nach nummeriert sind.

die Adresseden Inhalt
19216805Gott
19216806der Hund, der nachts nicht bellte
19216807Skippy
19216808Lassie
19216809Eckzahn
19216810Katze
19216811Hund
19216812Welpe
19216813Wolf
19216814Höhlenkanem
19216815Basset Hound
19216816Weimaraner
19216817dogmatisch

Die Aufgabe, gemächlich durch dieses Array im Speicher zu wandern, kann recht einfach sein. Es kann Speicheradressen zufällig durchlaufen, aber der Vorteil wird kleinen Schritten gegeben. Zum Beispiel kann die nächste besuchte Adresse durch Abtasten aus einer Normalverteilung bestimmt werden, die auf dem aktuellen Ort zentriert ist. Hier ist der Code für Julia. (Die Funktion randn() gibt eine reelle Zufallszahl zurück, die aus einer Normalverteilung mit einem Durchschnittswert erhalten wurde  m u = 0 und Standardabweichung  s i g m a = 1 .)

 function gaussian_ramble(addr, sigma) r = randn() * sigma return addr + round(Int, r) end 

Ein solches Schema weist attraktive Merkmale auf. Es ist nicht erforderlich, alle möglichen Zielknoten zu tabellieren, bevor Sie einen von ihnen auswählen. Wahrscheinlichkeiten werden nicht als Zahlen gespeichert, sondern durch die Position im Array codiert und auch durch den Parameter moduliert  s i g m a Hiermit wird festgelegt, wie weit sich die Prozedur im Array bewegen möchte. Obwohl das Programm immer noch eine Arithmetik zum Abtasten aus der Normalverteilung ausführt, ist eine solche Funktion wahrscheinlich eine einfachere Lösung.

Trotzdem hat dieses Verfahren einen schrecklichen Fehler. Nachdem wir den Hund mit all seinen direkten Assoziationen umgeben hatten, ließen wir keinen Raum für ihre Assoziationen. Hundebegriffe sind in ihrem eigenen Kontext gut, aber was ist mit der Katze von der Liste? Wo bringen wir Kätzchen , Tiger , neun Leben und Felix hin ? In einem eindimensionalen Array gibt es keine Möglichkeit, jedes Speicherelement in eine geeignete Umgebung einzubetten.

Bewegen wir uns also in zwei Dimensionen! Indem wir die Adressen in zwei Komponenten unterteilen, definieren wir zwei orthogonale Achsen. Die erste Hälfte jeder Adresse wird zur Koordinate y und die zweite Koordinate x . Jetzt sind Hund und Katze immer noch enge Nachbarn, aber sie haben auch persönliche Räume, in denen sie mit ihren eigenen „Freunden“ spielen können.


Zwei Messungen reichen jedoch auch nicht aus. Wenn wir versuchen, alle Elemente im Zusammenhang mit The Cat in the Hat auszufüllen, kollidieren sie unweigerlich und stehen in Konflikt mit verwandten Elementen des Hundes, die in der Nacht nicht gebellt haben . Natürlich brauchen wir mehr Dimensionen - viel mehr.



Jetzt ist der richtige Moment, um zuzugeben - ich bin nicht der erste, der darüber nachdenkt, wie Erinnerungen in Erinnerung angeordnet werden können. Die Liste meiner Vorgänger kann mit Platon begonnen werden, der die Erinnerung mit einem Vogel verglich; Wir erkennen Erinnerungen an ihrem Gefieder, aber manchmal ist es für uns schwierig, sie zu bekommen, wenn sie in der Zelle unseres Schädels zu flattern beginnen. Der Jesuit Matteo Ricci aus dem 16. Jahrhundert schrieb über den „Palast der Erinnerung“, in dem wir auf der Suche nach Schätzen der Vergangenheit durch verschiedene Räume und Korridore wandern. Moderne Gedächtnistheorien sind normalerweise weniger einfallsreich, aber detaillierter und zielen auf den Übergang von der Metapher zum Mechanismus ab. Was mir persönlich am besten gefällt, ist das mathematische Modell, das Pentti Canerva in den 1980er Jahren erhalten hat und der jetzt am Redwood Center for Theoretical Neuroscience hier in Berkeley arbeitet. Er kam auf die Idee eines spärlich verteilten Speichers , den ich SDM nennen werde. Es wendet erfolgreich die erstaunliche Geometrie hochdimensionaler Räume an.

Stellen Sie sich einen dreidimensionalen Würfel vor. Wenn wir annehmen, dass die Länge der Seite gleich der Maßeinheit ist, können acht Vektoren durch Vektoren mit drei Binärziffern bezeichnet werden, beginnend mit 000 und Ende 111 . Wenn Sie an einem beliebigen Scheitelpunkt ein einzelnes Bit des Vektors ändern, gelangen Sie zum Scheitelpunkt, der der nächste Nachbar ist. Durch Ändern von zwei Bits gelangen wir zum nächsten Nachbarn, und das Ersetzen aller drei Bits führt zur gegenüberliegenden Ecke des Würfels - zum entferntesten Scheitelpunkt.


Ein vierdimensionaler Würfel funktioniert ähnlich - 16 Eckpunkte werden durch Vektoren angezeigt, die alle Kombinationen von Binärziffern enthalten, beginnend 0000 und Ende 1111 . Diese Beschreibung ist eigentlich verallgemeinert auf N. Dimensionen, in denen jeder Scheitelpunkt hat N. Bitkoordinatenvektor. Wenn wir den Abstand gemäß der Manhattan-Metrik messen - immer entlang der Ränder des Würfels und niemals entlang der Diagonale -, ist der Abstand zwischen zwei beliebigen Vektoren die Anzahl der Positionen, an denen sich zwei Koordinatenvektoren unterscheiden (dies wird auch als Hamming-Abstand bezeichnet). (Für das exklusive ODER wird normalerweise das Symbol verwendet, das manchmal als Brötchen bezeichnet wird. Es zeigt die XOR-Operation als binäres Additionsmodulo 2 an. Kanerva bevorzugt ∗ oder ⊗, da die Rolle von XOR beim hochdimensionalen Rechnen eher der Multiplikation als der Addition entspricht Ich habe mich entschlossen, diesen Widerspruch zu beseitigen, indem ich das Symbol & veebar; - eine alternative Methode zum Schreiben von XOR - verwende, die unter Logikern bekannt ist. Dies ist eine Modifikation des ∨ - Symbols einschließlich OR. Es ist praktisch, dass es auch ein XOR-Symbol in Julia-Programmen ist.) Somit die Einheit Die Entfernungsmessung ist ein Bit, und die Entfernungsberechnung ist eine Aufgabe für den binären exklusiven ODER-Operator (XOR, & veebar;), der uns einen Wert für verschiedene Bits gibt 1 und für identische Paare - der Wert 0 ::

 0 ⊻ 0 = 0 0 ⊻ 1 = 1 1 ⊻ 0 = 1 1 ⊻ 1 = 0 

Die Funktion auf Julia zum Messen des Abstands zwischen Eckpunkten wendet die XOR-Funktion auf zwei Koordinatenvektoren an und gibt die Menge als Ergebnis zurück 1 .

 function distance(u, v) w = u ⊻ v return count_ones(w) end 

Wann N. Wenn sie groß genug werden, erscheinen einige merkwürdige Eigenschaften N. -Würfel. Überlegen Sie 1000 -dimensionaler Würfel mit 2 1000 Spitzen. Wenn wir die beiden Eckpunkte zufällig auswählen, wie groß ist der erwartete Abstand zwischen ihnen? Dies ist zwar eine Frage zur Entfernung, aber wir können sie beantworten, ohne uns mit Geometrie zu befassen - dies ist nur die Aufgabe, die Positionen zu berechnen, an denen zwei binäre Vektoren unterschieden werden. Für Zufallsvektoren kann jedes Bit gleich wahrscheinlich gleich sein 0 oder 1 Daher wird erwartet, dass sich die Vektoren in der Hälfte der Bitpositionen unterscheiden. Im Fall von 1000 Bitvektor Standardabstand ist 500 Bits. Dieses Ergebnis überrascht uns nicht. Es ist jedoch anzumerken , dass alle Abstände zwischen den Vektoren eng um den Durchschnittswert von 500 akkumuliert sind.


Im Fall von 1000 -bit-Vektoren sind fast alle zufällig ausgewählten Paare in einem Abstand von 450 vorher 550 bisschen. In einer Stichprobe von einhundert Millionen zufälligen Paaren (siehe Grafik oben) ist keines näher als 400 etwas oder weiter als 600 bisschen. Nichts in unserem Leben im Raum mit niedriger Auflösung hat uns auf eine solche Anhäufung von Wahrscheinlichkeiten in der durchschnittlichen Entfernung vorbereitet. Hier auf der Erde können wir einen Ort finden, an dem wir völlig allein sein werden, wenn fast alle nur wenige tausend Kilometer von uns entfernt sind. Es gibt jedoch keine Möglichkeit, die Bevölkerung des Planeten so umzuverteilen, dass sich alle gleichzeitig in einem solchen Zustand befinden. Aber in 1000 -dimensionaler Raum die Situation ist genau das.

Unnötig zu sagen, es ist schwer vorstellbar 1000 -dimensionaler Würfel, aber wir können ein wenig intuitives Verständnis der Geometrie erhalten, zumindest am Beispiel von fünf Dimensionen. Unten finden Sie eine Tabelle aller Koordinaten der Eckpunkte in einem fünfdimensionalen Würfel mit Einheitsdimension, die gemäß dem Hamming-Abstand vom Startpunkt angeordnet sind 00 , 000 . Die meisten Peaks (20 von 32) befinden sich in mittleren Entfernungen - zwei oder drei Bits. Die Tabelle hätte an jedem anderen Scheitelpunkt, der als Ausgangspunkt genommen wird, dieselbe Form.


Ein ernsthafter Einwand gegen all diese Diskussionen. 1000 -Dimensionale Würfel sind, dass wir so etwas niemals bauen können; im Universum gibt es nicht genug Atome für die Struktur von 2 1000 Teile. Kanerva weist jedoch darauf hin, dass wir Leerzeichen benötigen, um nur die Elemente zu speichern, die wir speichern möchten. Wir können zum Beispiel Geräte für Stichproben entwerfen 10 8 Eckpunkte (von denen jeder hat 1000 -bit Adresse) und lassen Sie den Rest des Würfels mit einer gespenstischen, unfertigen Infrastruktur. Kanerva nennt eine solche Teilmenge der Eckpunkte, die in den "Hardware" -Hardzellen (Hard Locations) vorhanden sind . Viele von 10 8 zufällige feste Zellen weisen immer noch die gleiche komprimierte Abstandsverteilung auf wie ein voller Würfel; Dies ist genau das, was in der obigen Tabelle gezeigt wird.

Die relative Isolation jedes Scheitelpunkts in einem großen Würfel gibt uns einen Hinweis auf einen möglichen Vorteil eines spärlich verteilten Speichers: Das gespeicherte Element verfügt über genügend Platz und kann über einen großen Bereich verteilt werden, ohne seine Nachbarn zu stören. Dies ist wirklich eine herausragende Funktion von SDM, aber es gibt noch etwas anderes.



Im herkömmlichen Computerspeicher werden Adressen und gespeicherte Datenelemente eins zu eins zugeordnet. Adressen sind Ordnungszahlen eines festen Bereichs, sagen wir [ 0 , 2 64 ) . Jede Ganzzahl in diesem Bereich definiert eine einzelne separate Stelle im Speicher, und jede Stelle ist genau einer Adresse zugeordnet. Außerdem wird an jedem Ort jeweils nur ein Wert gespeichert. Beim Schreiben eines neuen Werts wird der alte überschrieben.

SDM verstößt gegen alle diese Regeln. Es hat einen riesigen Adressraum - nicht weniger 2 1000 - aber nur ein winziger, zufälliger Bruchteil dieser Orte existiert als physische Einheiten; Deshalb wird Speicher als spärlich bezeichnet . Eine einzelne Information wird nicht nur an einer Stelle im Speicher gespeichert. Viele Exemplare werden über das Gebiet verteilt - daher wird es verteilt . Darüber hinaus können in jeder separaten Adresse mehrere Datenelemente gleichzeitig gespeichert werden. Das heißt, Informationen werden über einen weiten Bereich verteilt und in einem Punkt zusammengefasst. Diese Architektur verwischt auch die Unterscheidung zwischen Speicheradressen und Speicherinhalten; In vielen Fällen wird das gespeicherte Bitmuster als eigene Adresse verwendet. Schließlich kann der Speicher auf eine teilweise oder ungefähre Adresse reagieren und findet sehr wahrscheinlich das richtige Element. Während traditioneller Speicher der "exakte Übereinstimmungsmechanismus" ist, ist SDM der "beste Übereinstimmungsmechanismus", der das Element zurückgibt, das dem angeforderten am ähnlichsten ist.

In ihrem 1988 erschienenen Buch liefert Kanerva eine detaillierte quantitative Analyse des spärlich verteilten Gedächtnisses mit 1000 Messungen und 1.000.000 feste Zellen. Feste Zellen werden zufällig aus dem gesamten Raum ausgewählt. 2 1000 mögliche Adressvektoren. Jede feste Zelle verfügt über Speicherplatz für mehrere 1000 Bitvektoren. Der Speicher als Ganzes ist für die Speicherung von mindestens ausgelegt 10.000 einzigartige Muster. Im Folgenden werde ich dieses Gedächtnis als kanonisches SDM-Modell betrachten, obwohl es nach den Maßstäben von Säugetieren nicht ausreicht, und in einer neueren Arbeit betonte Kanerva zumindest Vektoren mit 10.000 Messungen.

So funktioniert Speicher in einer einfachen Computerimplementierung. Der Befehl store(X) schreibt einen Vektor in den Speicher X. unter Berücksichtigung sowohl einer Adresse als auch eines Inhalts. Wert X. in allen festen Zellen in einem bestimmten Abstand zu gespeichert X. . Im kanonischen Modell beträgt dieser Abstand 451 Bit. Es definiert einen „Zugangskreis“, der sich ungefähr in sich vereinen soll 1000 feste Zellen; Mit anderen Worten, jeder Vektor wird ungefähr in gespeichert 1 / 1000 eine von einer Million fester Zellen.

Es ist auch wichtig zu beachten, dass das gespeicherte Objekt X. nicht unbedingt wählen aus 1.000.000 binäre Vektoren, die Adressen fester Zellen sind. Im Gegenteil. X. kann einer von sein 2 1000 mögliche binäre Muster.

Angenommen, tausend Exemplare sind bereits in das SDM geschrieben X. Danach kommt ein neues Element an Y. , die auch in einem eigenen Satz von Tausenden von festen Zellen gespeichert werden muss. Zwischen diesen beiden Sätzen kann es einen Schnittpunkt geben - die Orte, an denen X. und Y. . Der neue Wert überschreibt oder ersetzt den vorherigen nicht. Beide Werte werden gespeichert. Wenn der Speicher voll ist 10.000 Jeder von ihnen wird gespeichert 1000 mal und in einer typischen Hardzelle werden Kopien gespeichert 10 einzigartige Muster.

Die Frage ist nun: Wie nutzen wir diesen gemischten Speicher? Wie erhalten wir insbesondere den richtigen Wert? X. ohne zu beeinflussen Y. und all die anderen Gegenstände, die sich an einem Lagerort angesammelt haben?

Der Lesealgorithmus nutzt die Eigenschaft einer merkwürdigen Verteilung von Entfernungen in einem hochdimensionalen Raum. Auch wenn X. und Y. sind die nächsten Nachbarn von 10.000 gespeicherte Muster unterscheiden sich höchstwahrscheinlich um 420 oder 430 Bit; Daher ist die Anzahl der festen Zellen, in denen beide Werte gespeichert sind, recht gering - normalerweise vier, fünf oder sechs. Gleiches gilt für alle anderen sich überschneidenden Muster X. . Es gibt Tausende von ihnen, aber keines der einflussreichen Muster ist in mehr als einigen Exemplaren innerhalb des Zugangskreises vorhanden X. .

Der Befehl fetch(X) sollte den Wert zurückgeben, der zuvor vom Befehl store(X) . Der erste Schritt bei der Rekonstruktion des Werts besteht darin, alle Informationen zu sammeln, die in dem zentrierten 451-Bit-Zugriffskreis gespeichert sind X. . Seit X. Wurde zuvor an all diesen Orten aufgenommen, können wir sicher sein, dass wir erhalten werden 1000 seine Kopien. Wir werden uns auch darum kümmern 10.000 Kopien anderer Vektoren, die an Stellen gespeichert sind, an denen sich Zugangskreise mit Kreisen schneiden X. . Da die Schnittpunkte jedoch klein sind, ist jeder dieser Vektoren nur in wenigen Kopien vorhanden. Dann in der Regel jeder von ihnen 1000 etwas gleich wahrscheinlich 0 oder 1 . Wenn wir die Mehrheitsprinzip-Funktion auf alle an jeder Bitposition gesammelten Daten anwenden, wird das Ergebnis von dominiert 1000 Kopien X. . Wahrscheinlichkeit, anders zu werden als X. Das Ergebnis ist ungefähr gleich 10 - 19 .

Die Mehrheitsprinzipprozedur wird nachstehend an einem kleinen Beispiel von fünf Datenvektoren mit jeweils 20 Bits detaillierter gezeigt. Die Ausgabe ist ein anderer Vektor, von dem jedes Bit die meisten entsprechenden Bits in den Datenvektoren widerspiegelt. (Wenn die Anzahl der Datenvektoren gerade ist, werden durch zufällige Auswahl „Ziehungen“ zugelassen 0 oder 1 .) Das unten gezeigte alternative Schreib- und Leseschema weigert sich, alle Muster einzeln zu speichern. Stattdessen wird die Gesamtzahl der Bits gespeichert. 0 und 1 in jeder Position. Feste Zelle hat 1000 -bit Zähler durch alle Nullen initialisiert. Wenn ein Muster an Ort und Stelle geschrieben wird, wird jeder Bitzähler für erhöht 1 oder nimmt ab für 0 . Der Auslesealgorithmus betrachtet einfach das Vorzeichen jedes Bitzählers und kehrt zurück 1 für einen positiven Wert, 0 für negativen und zufälligen Wert, wenn das Zählerbit gleich ist 0 .


Diese beiden Speicherschemata liefern identische Ergebnisse.



In Bezug auf die Datenverarbeitung sieht diese Version des spärlich verteilten Speichers wie ein sorgfältig durchdachter Witz aus. Sich erinnern 10.000 Elemente Wir brauchen eine Million fester Zellen, in denen wir tausend redundante Kopien jedes Musters speichern. Um nur ein Element aus dem Speicher abzurufen, sammeln wir Daten von 11.000 gespeicherte Muster und wenden den Mechanismus des Mehrheitsprinzips an, um sie zu entwirren. Und all dies geschieht mit Hilfe einer Reihe von akrobatischen Manövern, um nur den Vektor zu erhalten, den wir bereits haben. Herkömmliches Gedächtnis funktioniert viel weniger zufällig: Sowohl Schreib- als auch Lesezugriff an einer Stelle.

SDM kann jedoch das tun, wozu herkömmlicher Speicher nicht in der Lage ist. Insbesondere können Informationen basierend auf Teil- oder Näherungsdaten extrahiert werden. Sagen wir einen Vektor Z. ist eine beschädigte Version X. in denen haben sich geändert 100 von 1000 Vektoren. Da die beiden Vektoren ähnlich sind, besucht der Befehl fetch(Z) viele der gleichen Stellen, an denen er gespeichert ist X. . Bei einer Hamming-Distanz von 100 können wir das erwarten X. und Z wird von ungefähr 300 festen Zellen geteilt. Dank dieser großen Kreuzung kehrte der Vektor zurückfetch(Z)(nennen wir esZ ' ) wird näher seinX was istZ. .Jetzt können wir diesen Vorgang mit einem Team wiederholen fetch(Z′), das das Ergebnis zurückgibtZ ' ' , noch näher anX. . In nur wenigen Iterationen wird das Verfahren erreicht X. .

Kanerva zeigte, dass eine konvergente Folge von rekursiven Leseoperationen mit fast vollständiger Sicherheit erfolgreich sein würde, wenn das anfängliche Muster nicht zu weit vom Ziel entfernt ist. Mit anderen Worten, es gibt einen kritischen Radius: Jede Speicherprüfung, die von einer Stelle innerhalb des kritischen Kreises ausgeht, konvergiert fast genau zur Mitte und erledigt dies ziemlich schnell. Der Versuch, ein außerhalb des kritischen Kreises gespeichertes Element wiederherzustellen, schlägt fehl, da der rekursive Rückrufprozess auf eine durchschnittliche Entfernung verschoben wird. Kanervs Analyse zeigt, dass für das kanonische SDM der kritische Radius 209 Bit beträgt. Mit anderen Worten, wenn wir ungefähr 80 Prozent der Bits kennen, können wir das gesamte Muster neu erstellen.

Die folgende Abbildung zeigt die Entwicklung von Sequenzen rekursiver Speicher mit anderen Quellensignalen als dem Ziel. X. auf 0 , 5 , 10 , 15 ... 1000 . In diesem Experiment beginnen alle Sequenzen mit der Entfernung 205 oder weniger konvergieren zuX für10 oder weniger Iterationen(blaue Spuren). Alle Sequenzen, die mit einer größeren Anfangsentfernung beginnen, wandern ziellos durch weite leere Räume1000- dimensionaler Würfel, der von überall ungefähr 500 Bit übrig bleibt.


Der Übergang von konvergierenden zu divergierenden Pfaden ist nicht ganz klar, und dies ist in der unten gezeigten zerlumpten Grafik erkennbar. Hier haben wir gezoomt, um das Schicksal der Flugbahnen zu betrachten, beginnend mit Offsets in175 , 176 , 177 , ... 225 Bit. Alle Startpunkte innerhalb von 209 Bits vom Ziel werden blau angezeigt. ab größerer Entfernung sind orange. Die meisten blauen Pfade laufen zusammen und bewegen sich schnell auf Null, während die meisten orangefarbenen Pfade dies nicht tun. In der Nähe des kritischen Abstands gibt es jedoch viele Ausnahmen.


Die folgende Grafik zeigt einen weiteren Blick darauf, wie sich die anfängliche Entfernung vom Ziel auf die Wahrscheinlichkeit der Konvergenz zur richtigen Speicheradresse auswirkt. In einer Entfernung von170 Bit sind bei fast allen Versuchen erfolgreich; bei240 fast alle sind erfolglos. Es scheint, dass der Schnittpunkt (an dem Erfolg und Misserfolg gleichermaßen wahrscheinlich sind) ungefähr liegt203 Bits, etwas unter Kanervas Ergebnis, gleich209 . (Diese Diskrepanz ist nicht mysteriös. In Kanervs Berechnungen soll der Zugangskreis genau begrenzt sein 1000 feste Zellen. Alle festen Zellen in der Entfernung sind in meinen Experimenten enthalten.r 451 ; im Durchschnitt dort1070 solcher Orte.)




Die Fähigkeit, Erinnerungen aus Teilinformationen wiederherzustellen, ist ein bekanntes Element des menschlichen Lebens. Sie bemerken einen Schauspieler in einer Fernsehsendung und verstehen, dass Sie ihn schon einmal gesehen haben, wissen aber nicht, wo. Ein paar Minuten später dämmert es Ihnen: Dies ist Mr. Bates von Downton Abbey , aber ohne Butler-Kostüm. Abituriententreffen: Wenn Sie einen engen Glatzkopf auf der anderen Seite des Raums betrachten, können Sie ihn als einen Freund erkennen, den Sie nur als Teenager in Sportshorts kannten? Manchmal ist es sehr mühsam, die Lücken zu füllen. Ich bereits schrieb über seinen unerklärlichen „blinden Fleck“ in Erinnerung an wachsenden Glyzinien , dass ich erst nach dem Patienten genannt werden, um den Katalog von gefälschten Düften Drehen: Hortensien, Tagetes, Forsythie.

Kann unsere Fähigkeit, Erinnerungen von unvollständigen oder verrauschten Eingaben wiederherzustellen, wie ein rekursiver Prozess des Erinnerns an hochdimensionale Vektoren funktionieren? Dies wäre eine attraktive Hypothese, aber es gibt Gründe, sich davor zu hüten. Zum Beispiel scheint das Gehirn in der Lage zu sein, aus viel magereren Signalen Bedeutung zu gewinnen. Ich muss nicht vier Fünftel der "Fünften Symphonie" anhören, um sie zu identifizieren, die ersten vier Noten reichen aus. Das Flackern der Farbe in den Bäumen erinnert Sie sofort an die entsprechenden Vogelarten - Kardinal, Blauhäher, Carduelis. Der kleinste Atemzug mit dem Geruch von Kreidestaub bringt mich zurück in ein verschlafenes, stickiges Klassenzimmer, in dem ich einen halben Tag an meinem Schreibtisch gemalt habe. Solche Erinnerungen werden durch winzige Bruchteile der Informationen ausgelöst, die sie darstellen, weit weniger als 80 Prozent.

Kanerva erwähnt ein weiteres Merkmal des menschlichen Gedächtnisses, das mit SDM modelliert werden kann: das Phänomen „Spin an der Zungenspitze“, dessen Kern darin besteht, dass Sie wissen, dass Sie etwas wissen, obwohl Sie es nicht sofort aufrufen können. Dieses Gefühl ist ziemlich mysteriös: Wenn Sie nicht finden können, wonach Sie gesucht haben, wie können Sie dann wissen, dass alles im Gehirn gespeichert ist? Der rekursive Rückrufprozess von SDM bietet uns eine mögliche Antwort. Wenn aufeinanderfolgende Muster, die aus dem Speicher abgerufen wurden, sich ständig näher kommen, können wir ziemlich sicher sein, dass sie zum Ziel konvergieren, noch bevor sie es erreichen.

Bei dem Versuch, eine hartnäckige Tatsache aus dem Gedächtnis herauszuholen, finden viele Menschen, dass es keine kluge Strategie ist, ständig an dieselbe Tür zu klopfen. Anstatt sofortige Antworten zu verlangen - um Ihr Gehirn zu befehlen - ist es oft besser, die Aufgabe beiseite zu legen, einen Spaziergang zu machen, vielleicht ein Nickerchen zu machen; Die Antwort könnte kommen, als wäre sie nicht eingeladen. Kann diese Beobachtung durch das SDM-Modell erklärt werden? Vielleicht zumindest teilweise. Wenn die Sequenz der zurückgerufenen Muster nicht konvergiert, kann sich ihre weitere Untersuchung als erfolglos erweisen. Wenn Sie erneut von einem benachbarten Punkt im Speicherbereich aus starten, können Sie ein besseres Ergebnis erzielen. Aber hier gibt es ein Rätsel: Wie findet man einen neuen Ausgangspunkt mit besseren Aussichten? Sie könnten denken, dass es ganz einfach ist, ein paar Bits im Eingabemuster zufällig zu ersetzen und zu hoffenInfolgedessen ist er näher am Ziel, aber die Wahrscheinlichkeit dafür ist gering. Wenn der Vektor in ist250 Bits vom Ziel entfernt750 Bit sind bereits wahr (aber wir wissen nicht,welchedavon750 Bit); Bei jeder zufälligen Änderung haben wir eine Wahrscheinlichkeit von3 / 4 nahe kommen und gehen sogar noch weiter weg. Um Fortschritte zu erzielen, müssen Sie wissen, in welche Richtung und in welche Richtung Sie sich bewegen müssen1000- dimensionaler Raum ist eine schwierige Frage.

Ein Aspekt der SDM-Architektur besteht darin, dass sie dem Effekt des Wiederholens oder Abhörens des Speichers zu entsprechen scheint. Wenn Sie das Gedicht mehrmals wiederholen oder das Spielen eines Musikstücks üben, können Sie davon ausgehen, dass Sie sich in Zukunft leichter daran erinnern werden. Das Rechenmodell sollte einen ähnlichen Trainingseffekt aufweisen. Im herkömmlichen Computerspeicher ist dies jedoch nicht möglich: Es gibt keine Vorteile, denselben Wert mehrmals an derselben Adresse neu zu schreiben. In SDM hingegen fügt jede Wiederholung eines Musters allen durchgezogenen Zellen innerhalb des Zugriffskreises des Musters eine weitere Kopie hinzu. Infolgedessen tritt ein geringerer Einfluss von sich überschneidenden Mustern auf und der kritische Rückrufradius nimmt zu. Der Effekt hat einen signifikanten Effekt:Beim Schreiben in den Speicher einer einzelnen Kopie des Musters erhöht sich der kritische Radius von ungefähr200 Bit zu mehr als300 .

Ebenso kann das Spielen eines Musters es schwierig machen, den Rest wiederherzustellen. Dies erinnert an das Vergessen, wenn ein aktiv geprägtes Muster seine Nachbarn füllt und einen Teil ihres Territoriums einnimmt. Dieser Effekt wirkt sich auch erheblich auf SDM aus, so dass er sogar unrealistisch erscheint. Es scheint, dass ein acht- oder zehnmal gespeicherter Vektor den größten Teil des Speichers monopolisiert; er wird zur Besessenheit, zur Antwort auf alle Fragen.

Ein wichtiger Vorteil von dünn verteiltem Speicher ist seine Beständigkeit gegen Hardwarefehler oder -fehler. Ich wäre verärgert, wenn der Verlust eines einzelnen Neurons in meinem Gehirn ein Loch in meinem Gedächtnis hinterlassen würde und ich den Buchstaben g nicht erkennen könnteoder denken Sie daran, wie man Schnürsenkel bindet. SDM leidet nicht unter dieser Fragilität. Wenn jedes gespeicherte Muster tausend Kopien hat, ist kein einziger Ort wichtig. Tatsächlich können Sie alle Informationen löschen, die in 60 Prozent der festen Zellen gespeichert sind, und trotzdem den perfekten Rückruf erhalten10000 , wenn wir davon ausgehen, dass wir eine absolut genaue Adresse als Signal übertragen. Bei Teilsignalen verringert sich der kritische Radius, wenn die verlorenen Stellen zunehmen. Nach der Zerstörung von 60 Prozent der Standorte wird der kritische Radius mit komprimiert200 + Bits auf ungefähr150 Bit. Nach der Zerstörung von 80 Prozent der Orte wird das Gedächtnis schwer beschädigt, aber nicht zerstört.Was ist mit in den Wolken schweben? Können wir untätig durch die Wiesen einer spärlich verteilten Erinnerung wandern und durch Glück von einem gespeicherten Muster zum anderen springen? Ich werde auf diese Frage zurückkommen.





Das meiste davon wurde vor einigen Wochen geschrieben. Zu dieser Zeit las ich über verschiedene konkurrierende Gedächtnistheorien und diskutierte ihre Vorzüge mit Kollegen vom Simons Institute. Ich schrieb meine Gedanken zu diesem Thema auf, verschob aber ihre Veröffentlichung wegen anhaltender Zweifel: Habe ich die Mathematik des spärlich verteilten Gedächtnisses richtig verstanden? Jetzt bin ich froh, dass ich es nicht eilig hatte.

Das Brain and Computing-Programm endete im Mai. Die Teilnehmer gingen: Ich kehrte nach Neuengland zurück, wo Salbei und Rosmarin kleine Topfpflanzen sind und keine üppigen Büsche über den Wegen hängen. Meine morgendlichen Spaziergänge zum Berkeley-Campus, die täglichen Gelegenheiten, über die Natur des Gedächtnisses und Lernens nachzudenken, wurden zu „Engrammen“, die irgendwo in meinem Kopf gespeichert waren (ich weiß jedoch immer noch nicht, wo ich sie suchen soll).

Ich habe meine Suche jedoch nicht aufgegeben. Nachdem ich Berkeley verlassen hatte, las ich weiter über Theorien der Erinnerung. Ich habe auch Programme geschrieben, um Pentti Canervas spärlich verteilten Speicher und seine umfassenderen Ideen zum „Hyperraum-Computing“ zu untersuchen. Auch wenn dieses Projekt mir die Geheimnisse des menschlichen Gedächtnisses nicht offenbart, wird es mir definitiv etwas über die mathematische und rechnerische Kunst der Navigation in hochdimensionalen Räumen beibringen.

Das folgende Diagramm zeigt die „richtige“ Art, SDM so zu implementieren, wie ich es verstehe. Das Hauptelement ist eine Kreuzmatrix, in der die Zeilen festen Speicherzellen entsprechen und die Spalten Signale tragen, die einzelne Bits des Eingabevektors simulieren. Es gibt eine Million Zeilen im kanonischen Speicher, von denen jede zufällig zugewiesen wird1000- Bit-Adresse und1000 Spalten Diese Demoversion besteht aus 20 Zeilen und 8 Spalten.


Der im Diagramm dargestellte Prozess besteht darin, einen Eingabevektor in einem leeren Speicher zu speichern. Acht Eingangsbits werden gleichzeitig mit allen 20 Adressen fester Zellen verglichen. Wenn das Eingangsbit und das Adressbit zusammenfallen - Null mit Null oder Eins mit Eins - setzen wir einen Punkt am Schnittpunkt von Spalte und Zeile. Dann zählen wir die Anzahl der Punkte in jeder Zeile, und wenn die Anzahl gleich oder größer als der Schwellenwert ist, schreiben wir den Eingabevektor in das dieser Zeile zugeordnete Register (blaue Felder) . In unserem Beispiel beträgt der Schwellenwert 5, und in 8 von 20 Adressen gibt es mindestens 5 Übereinstimmungen. In Der 1000- Bit-Speicherschwellenwert ist gleich451 , und nur etwa ein Tausendstel aller Register wird ausgewählt.

Die Magie dieser Architektur besteht darin, dass alle Bitvergleiche - und es gibt eine Milliarde davon im kanonischen Modell - gleichzeitig stattfinden. Daher hängt die Zugriffszeit zum Lesen und Schreiben nicht von der Anzahl der festen Zellen ab und kann sehr klein sein. Eine solche allgemeine Anordnung, die als assoziativer oder inhaltsadressierender Speicher bekannt ist, wird in einigen Computerbereichen verwendet, beispielsweise zum Aktivieren von Partikeldetektoren im Large Hadron Collider und zum Übertragen von Paketen über Router im Internet. Und der Schaltplan kann bestimmten Gehirnstrukturen zugeordnet werden. Kanerva zeigt an, dass das Kleinhirn einer solchen Matrix sehr ähnlich ist. Linien sind flache, fächerförmige Purkinje-Zellen, die wie die Seiten eines Buches gesammelt sind. Säulen sind parallele Fasern, die sich über alle Purkinje-Zellen erstrecken. (Das Kleinhirn ist jedoch keine Region des Gehirns von Säugetieren,wo sich das kognitive Gedächtnis befindet.)

Es wäre großartig, eine SDM-Simulation zu erstellen, die auf dieser Architektur basiert. Leider weiß ich nicht, wie ich es auf der mir zur Verfügung stehenden Computerausrüstung implementieren soll. In einem herkömmlichen Prozessor gibt es keine Möglichkeit, alle Eingangsbits gleichzeitig mit Hartzellenbits zu vergleichen. Stattdessen muss ich nacheinander eine Million fester Zellen durchgehen und an jeder Stelle Tausende von Bits vergleichen. Dies entspricht einer Million Bit-Vergleiche für jedes Element, das gespeichert oder aus dem Speicher abgerufen wird. Fügen Sie dazu die Zeit hinzu, um eine Million Bits (Tausende von Kopien) zu schreiben oder zu lesen1000 - BitVektor), und Sie haben einen ziemlich langsamen Prozess. Hier ist der Code zum Speichern des Vektors:

 function store(v::BitVector) for loc in SDM if hamming_distance(v, loc.address) <= r write_to_register!(loc.register, v) end end end 

Diese Implementierung dauert ungefähr eine Stunde, um den Speicher zu inventarisieren 10.000 gespeicherte Muster. (Das vollständige Programm in Form eines Jupyter-Notebooks istauf GitHubverfügbar.)Gibt es einen besseren Algorithmus zur Simulation von SDM auf einer normalen Hardware? Eine der möglichen Strategien ermöglicht es, die wiederholte Suche nach einem Satz fester Zellen innerhalb des Zugriffskreises eines bestimmten Vektors zu vermeiden. Wenn ein Vektor zum ersten Mal in den Speicher geschrieben wird, speichert das Programm stattdessen einen Zeiger auf jede der rund tausend Stellen, an denen er gespeichert ist. In Zukunft kann das Programm unter Bezugnahme auf denselben Vektor folgen

1000 gespeicherte Zeiger und scannen nicht das gesamte Array von einer Million fester Zellen. Der Preis für dieses Caching-Schema ist die Notwendigkeit, alle diese Zeiger in ihrem kanonischen SDM zu speichern10 Millionen. Dies ist sehr real und kann sich lohnen, wenn Sie nur die genauen, bekannten Werte speichern und abrufen möchten. Denken Sie jedoch darüber nach, was als Reaktion auf eine ungefähre Speicheranforderung mit rekursivem Rückruf geschiehtZ ' und Z ' ' und Z ' ' ' , usw.Keiner dieser Zwischenwerte wird im Cache gefunden, sodass weiterhin ein vollständiger Scan aller festen Zellen erforderlich ist.

Vielleicht gibt es einen schwierigeren Weg, den Weg zu schneiden. In einem kürzlich erschienenen Übersichtsartikel von Alexander Andoni, Peter Indyk und Ilya Razenstein , " Ungefähre Suche nach dem nächsten Nachbarn in hohen Dimensionen ", wird eine faszinierende Technik erwähnt, die als lokalitätssensitives Hashing (Hashing basierend auf Lokalität) bezeichnet wird. Bisher verstehe ich jedoch nicht ganz, wie ich sie an die SDM-Aufgabe anpassen kann.



Die Fähigkeit, Erinnerungen aus Teilsignalen wiederherzustellen, ist schmerzlich ein menschliches Merkmal des Rechenmodells. Vielleicht kann es erweitert werden, um einen plausiblen Mechanismus für müßiges Wandern in den Hallen des Geistes bereitzustellen, in dem ein Gedanke zum nächsten führt.

Zuerst dachte ich, ich wüsste, wie das funktionieren könnte. Gespeichertes SDM-MusterX erzeugt einen Anziehungsbereich um sich herum, in dem jede rekursive Untersuchung des Gedächtnisses ausgehend von einem kritischen Radius zu konvergiertX. . Bei 10.000 dieser Attraktoren kann ich mir vorstellen, wie sie den Speicherplatz in eine Matrix aus einzelnen Modulen wie großformatigem Seifenblasenschaum aufteilen. Der Bereich für jedes gespeicherte Element nimmt ein separates Volumen ein, das allseitig von anderen Bereichen umgeben ist und an diesen anliegt, mit klaren Grenzen zwischen benachbarten Domänen. Zur Unterstützung dieses Vorschlags kann ich sehen, dass der durchschnittliche Radius des Anziehungsbereichs, wenn neue Inhalte zum Speicher hinzugefügt werden, komprimiert wird, als ob die Blasen aufgrund von Überfüllung komprimiert würden.

Eine solche Vision der Prozesse innerhalb des SDM schlägt eine einfache Möglichkeit vor, von einer Domäne in eine andere zu wechseln: Sie müssen eine ausreichende Anzahl von Bits des Vektors zufällig umschalten, um ihn von der aktuellen Anziehungskraft zur benachbarten zu verschieben, und dann den rekursiven Rückrufalgorithmus anwenden. Durch Wiederholen dieses Vorgangs werden viele im Speicher gespeicherte Themen zufällig durchlaufen.

Das einzige Problem ist, dass dieser Ansatz nicht funktioniert. Wenn Sie es überprüfen, wird es tatsächlich ziellos auf wandern1000- dimensionales Gitter, aber wir werden dort nie etwas finden, das dort gespeichert ist. Der gesamte Plan basiert auf einem fehlerhaften intuitiven Verständnis der SDM-Geometrie. Die gespeicherten Vektoren mit ihren Anziehungsbereichen sindnichtwie Seifenblasen dicht gepackt; im Gegenteil, es sind isolierte Galaxien, die in einem riesigen und freien Universum hängen und durch riesige Teile des leeren Raums zwischen ihnen getrennt sind. Kurze Berechnungen zeigen uns die wahre Natur der Situation. Im kanonischen Modell ist der kritische Radius, der den Anziehungsbereich bestimmt, ungefähr gleich200 . Das Volumen einer einzelnen Region, gemessen als Anzahl der Vektoren im Inneren, beträgt

s u m 200 k = 1 ( 1000k )


das ist ungefähr gleich 10216 . Deshalb alle 10000 Bereiche belegen das Volumen 10220 . Dies ist eine große Zahl, aber es ist immer noch ein winziger Bruchteil 1000-dimensionaler Würfel. Nur unter allen Eckpunkten des Würfels1 von 1080liegt innerhalb von 200 Bits des gespeicherten Musters. Sie können für immer wandern, ohne auf eines dieser Gebiete zu stoßen.

(Für immer? Oh, ja, ja, es kann nicht für immer sein. Da ein Hyperwürfel eine endliche Struktur ist, muss jeder Weg durch ihn früher oder später periodisch werden oder in einen festen Punkt fallen, von dem er niemals abreist oder in einem sich wiederholenden Zyklus verloren geht Die gespeicherten Vektoren sind Fixpunkte, außerdem gibt es viele andere Fixpunkte, die keinem signifikanten Muster entsprechen. Wie auch immer, in all meinen Experimenten mit SDM-Programmen habe ich es nie geschafft, "versehentlich" in einen gespeicherten Pat zu gelangen drehen.)

Um diese schlechte Idee zu retten, führte ich mehrere weitere Experimente durch. In einem Fall habe ich willkürlich mehrere verwandte Konzepte in benachbarten Adressen gespeichert ("benachbart", dh
innerhalb von 200 oder 300 Bit). Vielleicht kann ich innerhalb dieses Clusters sicher von Punkt zu Punkt springen. Tatsächlich verdichtet sich der gesamte Cluster zu einem großen Anziehungsbereich für das zentrale Muster, das zu einem schwarzen Loch wird, das alle seine Gefährten anzieht. Ich habe auch versucht, mit dem Wert zu spielenr(Radius des Zugriffskreises für alle Lese- und Schreibvorgänge). Im kanonischen Modellr=451 .Ich dachte, dass das Schreiben in einen etwas kleineren Kreis oder das Lesen aus einem etwas größeren Kreis genug Raum für Zufälligkeit in den Ergebnissen lassen würde, aber diese Hoffnung kam auch nicht zustande.

Alle diese Versuche beruhten auf einem Missverständnis hochdimensionaler Vektorräume. Ein Versuch, Cluster benachbarter Werte in einem Hyperwürfel zu finden, ist hoffnungslos. gespeicherte Muster haben ein zu großes Volumen. Die willkürliche Erzeugung dichter Cluster ist ebenfalls sinnlos, da sie genau die Eigenschaft zerstört, die das System interessant macht - die Fähigkeit, von überall in der Umgebung der Anziehungskraft zu einem gespeicherten Element zu konvergieren. Wenn wir einen Cloud-Wandering-Algorithmus für SDM erstellen möchten, müssen wir einen anderen Weg finden.



Auf der Suche nach einem alternativen Mechanismus des Bewusstseinsflusses können Sie versuchen, der Welt des spärlich verteilten Gedächtnisses eine kleine Graphentheorie hinzuzufügen. Dann können wir einen Schritt zurückgehen, zurück zu der ursprünglichen Idee des mentalen Wanderns in Form eines zufälligen Spaziergangs um einen Graphen oder ein Netzwerk. Das Schlüsselelement für die Einbettung solcher Diagramme in SDM ist für uns ein bekanntes Werkzeug: ein exklusiver ODER-Operator.

Wie oben erwähnt, wird der Hamming-Abstand zwischen zwei Vektoren berechnet, indem ihr bitweises XOR genommen und die resultierenden Einheiten gezählt werden. Die XOR-Operation gibt jedoch nicht nur den Abstand zwischen zwei Vektoren an, sondern auch andere Informationen. Es bestimmt auch die Ausrichtung oder Richtung der Verbindungslinie. Insbesondere die Operationuv gibt einen Vektor an, der die Bits auflistet, die zum Konvertieren geändert werden müssen u in vumgekehrt. Kann auch wahrgenommen werden1 und 0 im XOR-Vektor als Folge von Richtungen, denen Sie folgen müssen, um den Pfad zu verfolgen u vorher v .

XOR war schon immer mein Favorit unter allen Booleschen Funktionen. Dies ist ein Differenzoperator, aber im Gegensatz zur Subtraktion ist XOR symmetrisch:uv=vu .Darüber hinaus ist XOR eine eigene Umkehrfunktion. Dieses Konzept ist mit Funktionen mit einem einzigen Argument leicht zu verstehen:f(x) ist seine eigene Umkehrfunktion, wenn f(f(x))=xDas heißt, nachdem wir die Funktion zweimal angewendet haben, können wir dorthin zurückkehren, wo wir begonnen haben. Bei einer Funktion mit zwei Argumenten, wie z. B. XOR, ist die Situation komplizierter, aber es stimmt immer noch, dass durch zweimaliges Ausführen derselben Aktion der ursprüngliche Zustand wiederhergestellt wird. Insbesondere wennuv=w dann uw=v und vw=u . Drei Vektoren - u , v und w- Erschaffe ein winziges geschlossenes Universum. Sie können den XOR-Operator auf jedes Paar anwenden und das dritte Element der Menge abrufen. Das Folgende ist ein Versuch, diese Idee zu veranschaulichen. Jedes Quadrat ahmt nach10000Bitvektor als 100 x 100-Tabelle mit hellen und dunklen Pixeln. Die drei Muster scheinen zufällig und unabhängig zu sein, aber tatsächlich ist jedes Panel XOR der anderen beiden. Zum Beispiel entspricht im linken Quadrat jedes rote Pixel entweder grün oder blau, aber niemals beiden.


Die Eigenschaft der Selbstinvertierbarkeit bietet eine neue Möglichkeit zum Organisieren von Informationen in SDM. Angenommen, das Wort Schmetterling und sein französisches Gegenstück Papillon werden in beliebigen Zufallsvektoren gespeichert. Sie werden nicht nahe beieinander sein; Der Abstand zwischen ihnen beträgt wahrscheinlich ungefähr 500 Bit. Nun berechnen wir den XOR dieser Schmetterlingsvektoren Papillon ; Das Ergebnis ist ein weiterer Vektor, der auch in SDM gespeichert werden kann. Dieser neue Vektor codiert eine englisch-französische Verbindung . Jetzt haben wir ein Übersetzungswerkzeug. Mit einem Vektor für Schmetterling führen wir ein XOR dafür mit dem Vektor Englisch-Französisch durch und erhalten Papillon . Der gleiche Trick funktioniert in die entgegengesetzte Richtung.

Dieses Wortpaar und die Verbindung zwischen ihnen bilden den Kern des semantischen Netzwerks. Erhöhen wir es ein wenig. Wir können das Wort Raupe in einer beliebigen Adresse speichern und dann den Schmetterling berechnen Raupe und nennen diese neue Beziehung zwischen Erwachsenen und Jugendlichen . Wie heißt Raupe auf Französisch ? Die Raupe auf Französisch ist Chenille . Wir fügen diese Tatsache dem Netzwerk hinzu, indem wir Chenille bei Caterpillar lagern Englisch-Französisch . Jetzt ist die Zeit für Magie: Wenn wir Papillon nehmen Chenille , wir erfahren, dass diese Wörter durch eine Beziehung zwischen Erwachsenen und Jugendlichen verwandt sind , obwohl sie dies nicht ausdrücklich anzeigten. Diese Einschränkung wird durch die Geometrie der Struktur selbst auferlegt.


Die Grafik kann weiter erweitert werden, indem mehr englisch-französische Wörter ( Hund-Chien, Pferd-Cheval ) oder mehr Paare zwischen Erwachsenen und Jugendlichen hinzugefügt werden: ( Hund-Welpe, Baumsetzling ). Sie können auch viele andere Beziehungen untersuchen: Synonyme, Antonyme, Geschwister, Ursache-Wirkung, Raubtier-Beute und so weiter. Es gibt auch eine großartige Möglichkeit, mehrere Ereignisse zu einer chronologischen Abfolge zusammenzufassen, indem Sie einfach XOR an den Adressen des Vorgängers und Nachfolgers des Knotens ausführen.

Die Art und Weise, wie XOR Konzepte verbindet, ist eine Mischung aus Geometrie und Graphentheorie. In der mathematischen Theorie gewöhnlicher Graphen sind Entfernungen und Richtungen nicht signifikant; Das einzige, was zählt, ist das Vorhandensein oder Fehlen von Verbindungskanten zwischen Knoten. In SDM hingegen ist eine Kante, die eine Verbindung zwischen Knoten darstellt, ein Vektor endlicher Länge und Richtwirkung in1000-dimensionaler Raum. Für einen bestimmten Knoten und eine bestimmte Verknüpfung „bindet“ die XOR-Operation diesen Knoten an eine bestimmte Position an einer anderen Stelle im Hypercube. Die resultierende Struktur ist absolut starr - wir können den Knoten nicht verschieben, ohne alle Verbindungen zu ändern, an denen er beteiligt ist. Bei Schmetterlingen und Raupen stellt sich eine Konfiguration von vier Knoten zwangsläufig als Parallelogramm heraus, bei dem Paare auf gegenüberliegenden Seiten die gleiche Länge und Richtung haben.

Ein weiteres einzigartiges Merkmal eines Graphen, der einer XOR-Operation zugeordnet ist, besteht darin, dass Knoten und Kanten genau dieselbe Darstellung haben. In den meisten Computerimplementierungen von Ideen aus der Graphentheorie sind die beiden Entitäten sehr unterschiedlich. Ein Knoten kann eine Liste von Attributen sein, und eine Kante kann ein Paar von Zeigern auf die durch ihn verbundenen Knoten sein. In SDM sind sowohl Knoten als auch Kanten einfach hochdimensionale Vektoren, die im gleichen Format gespeichert werden können.

Wenn die XOR-Bindung als Modell des menschlichen Gedächtnisses verwendet wird, können wir zwei beliebige Konzepte über jede denkbare Verbindung miteinander verbinden. Viele Verbindungen in der realen Welt sind asymmetrisch; Sie haben nicht die Selbstumkehrbarkeitseigenschaft von XOR. Der XOR-Vektor kann erklären, dass Edward und Victoria die Eltern und das Kind sind, sagt jedoch nicht, wer von ihnen wer ist. Schlimmer noch, der XOR-Vektor verbindet genau zwei Knoten und nie wieder, sodass der Elternteil mehrerer Kinder uns in eine unangenehme Position bringt. Eine weitere Schwierigkeit besteht darin, die Integrität aller Zweige eines großen Graphen miteinander aufrechtzuerhalten. Wir können nicht einfach willkürlich Knoten und Kanten hinzufügen. Sie müssen in der richtigen Reihenfolge an das Diagramm angehängt werden. Das Einfügen eines Puppenstadiums zwischen einem Schmetterling und einer Raupe erfordert das Umschreiben des größten Teils des Musters.Sie müssen mehrere Knoten an neue Stellen im Hypercube verschieben und die Verbindungsvektoren neu berechnen, die sie verbinden. Dabei müssen Sie sicherstellen, dass jede Änderung auf der Seite der englischen Sprache das Französische korrekt widerspiegelt.

Einige dieser Probleme werden in einer anderen XOR-basierten Technik gelöst, die Kanerva als Bündelung bezeichnet. Die Idee ist, eine Art Datenbank zum Speichern von Attribut-Wert-Paaren zu erstellen. Ein Bucheintrag kann Attribute wie Autor , Titel und Herausgeber enthalten, von denen jeder mit einem entsprechenden Wert gepaart ist. Die erste Stufe der Datenbündelung ist ein separates XOR für jedes Attribut-Wert-Paar. Dann werden die aus diesen Operationen erhaltenen Vektoren kombiniert, um einen einzelnen Zusammenfassungsvektor unter Verwendung des oben beschriebenen Algorithmus zum Speichern mehrerer Vektoren in einer festen SDM-Zelle zu erzeugen. Wenn wir das XOR des Attributnamens mit diesem kombinierten Vektor ausführen, erhalten wir eine Annäherung an den entsprechenden Wert, die nahe genug ist, um ihn durch die rekursive Rückrufmethode zu bestimmen. In Experimenten mit dem kanonischen Modell habe ich das gefunden1000 Ein Bitvektor kann sechs oder sieben Attribut-Wert-Paare ohne große Verwechslungsgefahr speichern.

Bindung und Bündelung werden im Kanerva-Buch von 1988 nicht erwähnt, aber er spricht in neueren Artikeln ausführlich darüber. (Siehe den Abschnitt „Zusätzliches Lesen“ weiter unten.) Es zeigt an, dass mit diesen beiden Operatoren viele hochdimensionale Vektoren die Struktur eines algebraischen Feldes oder zumindest die Annäherung an ein Feld annehmen. Ein kanonisches Beispiel für ein Feld ist eine Menge reeller Zahlen anstelle der Additions- und Multiplikationsoperationen sowie ihrer inversen Operatoren. Reelle Zahlen bilden unter diesen Operationen eine geschlossene Menge: Addition, Subtraktion, Multiplikation oder Division von zwei reellen Zahlen ergibt eine andere reelle Zahl (mit Ausnahme der Division durch Null, die immer ein Joker im Deck ist). In ähnlicher Weise wird der Satz von Binärvektoren zum Verknüpfen und Bündeln geschlossen, außerManchmal muss das aus dem Streifenvektor extrahierte Ergebnis durch den rekursiven Rückrufprozess "gelöscht" werden, um ein Mitglied einer Menge wiederherzustellen.



Kann das Verknüpfen und Bündeln uns helfen, einen Cloud-Wandering-Algorithmus zu erhalten? Sie bieten uns grundlegende Werkzeuge für die Navigation in einem semantischen Diagramm, einschließlich der Möglichkeit, eine zufällige Durchquerung durchzuführen. Ausgehend von einem beliebigen Knoten im verbundenen XOR-Diagramm wählt der Zufallsüberquerungsalgorithmus unter allen in diesem Stich verfügbaren Links aus. Eine zufällige Auswahl des Kommunikationsvektors und die XOR-Ausführung dieses Vektors mit der Knotenadresse führt uns zu einem anderen Knoten, wo die Prozedur wiederholt werden kann. In ähnlicher Weise ruft in den "Attribut-Wert" -Paaren der Bündelung ein zufällig ausgewähltes Attribut den entsprechenden Wert auf, der zum nächsten untersuchten Knoten wird.

Aber woher weiß ein Algorithmus, welche Beziehungen oder welche Algorithmen zur Auswahl stehen? Beziehungen und Attribute werden in Form von Vektoren dargestellt und wie alle anderen Objekte im Speicher gespeichert. Daher gibt es keine offensichtlichen Möglichkeiten, diese Vektoren abzurufen, es sei denn, Sie wissen, was sie wirklich sind. Wir können die Erinnerung an "Zeig mir alle Verbindungen" nicht sagen. Wir können nur das Muster zeigen und fragen: „Gibt es einen solchen Vektor? Hast du so etwas gesehen? "

Im herkömmlichen Computerspeicher können wir einen Speicherauszug erhalten: Gehen Sie zu allen Adressen und zeigen Sie den an jeder Stelle gefundenen Wert an. Für verteilten Speicher gibt es jedoch kein solches Verfahren. Diese deprimierende Tatsache wurde mir mit Mühe gegeben. Beim Erstellen des SDM-Rechenmodells konnte ich gut genug werden, um mehrere tausend zufällig generierte Muster in meinem Speicher speichern zu können. Aber ich konnte sie nicht extrahieren, weil ich nicht wusste, was ich anfordern sollte. Die Lösung bestand darin, eine separate Liste außerhalb des SDM selbst zu erstellen, in die alles, was ich speichere, geschrieben wird. Aber die Annahme, dass das Gehirn sowohl das Gedächtnis als auch den Index dieses Gedächtnisses behalten hätte, scheint weit hergeholt. Warum nicht einfach einen Index verwenden, weil es so viel einfacher ist?

Aufgrund dieser Einschränkung scheint das spärlich verteilte Gedächtnis so ausgestattet zu sein, dass es den Sinnen dient, nicht aber der Vorstellungskraft. Es kann vertraute Muster erkennen und neue speichern, die in zukünftigen Besprechungen auch aus teilweisen oder beschädigten Signalen erkannt werden. Dank der Verknüpfung oder Bündelung kann der Speicher auch Verknüpfungen zwischen Paaren gespeicherter Elemente verfolgen. Alles, was in den Speicher geschrieben wird, kann jedoch nur durch Senden eines geeigneten Signals abgerufen werden.


Wenn ich mir das Graduiertenplakat ansehe , sehe ich Dustin Hoffman, der Anne Bancrofts Bein in einem Strumpf betrachtet. Dieser visuelle Reiz erregt Untergruppen von Neuronen in der Großhirnrinde, entsprechend meinen Erinnerungen an Schauspieler, Charaktere, Handlung, Soundtrack und 1967. All diese Gehirnaktivität kann durch die SDM-Speicherarchitektur erklärt werden, wenn wir annehmen, dass Teilmengen von Neuronen in einer abstrakten Form als lange zufällige binäre Vektoren dargestellt werden können. Aber man kann nicht so einfach erklären, dass ich im Gehirn dieselben Empfindungen hervorrufen kann, ohne dieses Bild zu sehen. Wie extrahiere ich diese langen Zufallssequenzen spezifisch aus einer riesigen Verflechtung von Vektoren, ohne genau zu wissen, wo sie sich befinden?



Damit ist meine lange Reise abgeschlossen - ein Hinweis auf Zweifel und Enttäuschung. Es überrascht Sie kaum, dass ich es nicht geschafft habe, auf das Wesentliche zu kommen. Dies ist ein sehr komplexes Thema.

Am ersten Tag des Brain and Computing-Programms am Simons Institute stellte Jeff Lichtman, der an der Verfolgung der Schaltkreise im Gehirn von Mäusen arbeitete, die Frage: Haben die Neurowissenschaften bereits den Watson-Crick-Moment erreicht? In der Molekulargenetik haben wir den Punkt erreicht, an dem wir einen DNA-Strang aus einer lebenden Zelle entfernen und viele der darin enthaltenen Botschaften lesen konnten. Wir können sogar unsere eigenen Nachrichten aufzeichnen und sie wieder in den Körper einfügen. Eine ähnliche Fähigkeit in den Neurowissenschaften wäre es, Gehirngewebe zu untersuchen und die darin gespeicherten Informationen zu lesen - Wissen, Erinnerungen, Weltbilder. Vielleicht könnten wir sogar Informationen direkt ins Gehirn schreiben.

Die Wissenschaft kam diesem Ziel zur Freude vieler nicht einmal nahe. Einschließlich mich: Ich möchte nicht, dass meine Gedanken durch Elektroden oder Pipetten aus meinem Kopf gesaugt und durch #fakenews ersetzt werden. Ich möchte jedoch wirklich wissen, wie das Gehirn funktioniert.

Das Programm des Simons Institute hat mich mit dem jüngsten Erfolg der Neurowissenschaften geblendet, aber es hat mir auch klar gemacht, dass eine der schwerwiegendsten Fragen unbeantwortet bleibt. Die Konnektivitätsprojekte von Lichtmann und anderen erstellen eine detaillierte Karte von Millionen von Neuronen und ihren Verbindungen. Neue Aufnahmetechniken ermöglichen es uns, die von einzelnen Neurozyten emittierten Signale zu hören und den Anregungswellen über weite Bereiche des Gehirns zu folgen. Wir haben einen ziemlich umfassenden Katalog von Arten von Neuronen und wir wissen viel über ihre Physiologie und Biochemie. Das alles ist beeindruckend, aber es gibt immer noch Rätsel. Wir können neuronale Signale aufzeichnen, aber zum größten Teil wissen wir nicht, was sie bedeuten. Wir wissen nicht, wie Informationen im Gehirn codiert und gespeichert werden. Dies ähnelt dem Versuch, den Schaltplan eines digitalen Computers ohne Kenntnis der binären Arithmetik und der Booleschen Logik zu verstehen.

Das spärlich verteilte Speichermodell von Pentti Canerva ist ein Versuch, einige dieser Lücken zu schließen. Dies ist nicht der einzige derartige Versuch. Eine bekanntere Alternative ist John Hopfields Ansatz - das Konzept eines neuronalen Netzwerks als dynamisches System in Form eines energieminimierenden Attraktors. Diese beiden Ideen haben gemeinsame Grundprinzipien: Informationen werden über eine große Anzahl von Neuronen verteilt und in einer Form codiert, die für einen externen Beobachter nicht offensichtlich ist, selbst wenn er Zugriff auf alle Neuronen und die durch sie hindurchtretenden Signale erhält. Ähnliche Schemata, die im Wesentlichen mathematisch und rechnerisch sind, befinden sich konzeptionell in der Mitte zwischen Psychologie auf hoher Ebene und neuronaler Technik auf niedriger Ebene. Diese Ebene enthält den Wert.

Zusätzliche Lektüre
Hopfield, JJ (1982). Neural networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences 79(8):2554–2558.

Kanerva, Pentti. 1988. Sparse Distributed Memory . Cambridge, Mass.: MIT Press.

Kanerva, Pentti. 1996. Binary spatter-coding of ordered K -tuples. In C. von der Malsburg, W. von Seelen, JC Vorbruggen and B. Sendhoff, eds. Artificial Neural Networks—ICANN 96 Proceedings , pp. 869–873. Berlin: Springer.

Kanerva, Pentti. 2000. Large patterns make great symbols: An example of learning from example. In S. Wermter and R. Sun, eds. Hybrid Neural Systems , pp. 194–203. Heidelberg: Springer. PDF

Kanerva, Pentti. 2009. Hyperdimensional computing: An introduction to computing in distributed representation with high-dimensional random vectors. Cognitive Computation 1(2):139–159. PDF

Kanerva, Pentti. 2010. What we mean when we say “What's the Dollar of Mexico?”: Prototypes and mapping in concept space. Report FS-10-08-006, AAAI Fall Symposium on Quantum Informatics for Cognitive, Social, and Semantic Processes. PDF

Kanerva, Pentti. 2014. Computing with 10,000-bit words. Fifty-second Annual Allerton Conference, University of Illinois at Urbana-Champagne, October 2014. PDF

Plate, Tony. 1995. Holographic reduced representations. IEEE Transactions on Neural Networks 6(3):623–641. PDF

Plate, Tony A. 2003. Holographic Reduced Representation: Distributed Representation of Cognitive Structure . Stanford, CA: CSLI Publications.

Source: https://habr.com/ru/post/de419147/


All Articles