Verblüffend ähnlich: Wenn Programmierer ein Computerscript analysieren und gedanklich nachvollziehen, löst dies in ihrem Gehirn ganz spezifische Aktivitätsmuster in zwei Hirnschaltkreisen aus. Diese Muster verraten nicht nur, welche Merkmale der betrachtete Code hat – sie ähneln auch verblüffend denen, die künstliche neuronale Netze bei der gleichen Aufgabe erzeugen, wie ein Experiment enthüllt. Das liefert wertvolle Einblicke in grundlegende Funktionsweisen unseres Gehirns.
Algorithmen und Computerprogramme sind aus unserem Alltag kaum mehr wegzudenken. Doch was passiert im Gehirn derjenigen, die diese Codes und Scripte entwickeln, beurteilen und auf Fehler durchsuchen? „Viele Menschen haben heute mit Programmcodes zu tun, indem sie diese lesen, schreiben, entwickeln oder debuggen, aber niemand weiß so genau, was dabei in ihrem Gehirn vorgeht“, sagt Shashank Srikant vom Massachusetts Institute of Technology (MIT).
Zwar hat es in den letzten Jahren erste Studien zur Hirnaktivität von Programmierern beim Lesen und Nachvollziehen solcher Scripte gegeben, diese erbrachten aber widersprüchliche Ergebnisse: In einigen war primär das Sprachzentrum aktiv, in anderen war dagegen vor allem das Multiple-Demand-Netzwerk involviert – das Hirn-Netzwerk, das für Problemlösungen, Logik und räumliche Vorstellung zuständig ist.
Python-Scripte als Testaufgaben
Um diese Diskrepanzen zu klären, haben Srikant und seine Kollegen noch einmal genauer ins Gehirn von Programmierern geschaut. Sie zeichneten dafür die Hirnaktivität von 24 Testpersonen mittels funktioneller Magnetresonanztomografie (fMRT) auf, während diese kurze, in der Programmiersprache Python verfasste Scripte lasen und analysierten. Die Aufgabe bestand darin, die Funktion des Codes zu verstehen und das Ausgabe-Ergebnis korrekt vorherzusagen.
Anders als bei früheren Studien analysierten die Forschenden die Ergebnisse für jeden Probanden einzeln, statt die Hirnaktivitätsdaten miteinander zu kombinieren. Außerdem werteten sie genauer aus, was im Gehirn der Programmierer passierte, wenn sie bestimmte Merkmale der Scripte nachvollzogen – beispielsweise eine Programmschleife, eine if-Weiche oder schrittweise Instruktionen. Auch die Komplexität des Codes, die Sprache der Variablennamen und weitere Merkmale wurden mit einbezogen.
„Wir wollten wissen: Werden die verschiedenen Codemerkmale in unterschiedlichen Hirnarealen enkodiert? Und kann ich aus dem Muster der Hirnaktivität erschließen, was sich der Programmierer gerade anschaut?“, sagt Srikant.
Kooperation von zwei Hirnschaltkreisen
Es zeigte sich: Beim Analysieren eines Computercodes sind zwei Hirnschaltkreise aktiv – sowohl das Multiple-Demand-Netzwerk im Stirnhirn und Scheitelbereich als auch das Sprachzentrum im linken Schläfenlappen leuchteten im Gehirn der Programmierer auf. Dafür spielt es keine Rolle, in welcher Sprache die Code-Variablen benannt sind. Doch wie stark welches Netzwerk dominiert, hängt von der Art des analysierten Codes ab, wie das Experiment enthüllte.
„Das Multiple-Demand-System dekodiert die dynamischen Eigenschaften des Programmscripts besser als das Sprachsystem“, erklären die Wissenschaftler. Das MD-Netzwerk verarbeitet demnach primär Merkmale wie die wahrscheinliche Laufzeit des Programms oder die nötigen Schritte und Schleifen-Durchgänge. Dieser Hirnschaltkreis hilft demnach den Programmierern dabei, den Ablauf und die Ausführung des Programms mental nachzuvollziehen. Das Sprachzentrum wertet hingegen eher statische, mit der Syntax des Programmscripts verknüpfte Merkmale aus.
Codemerkmale am Gehirn ablesbar
Anhand der Aktivität in diesen beiden Hirn-Netzwerken lässt sich zudem feststellen, über welche Art von Codebaustein ein Programmierer gerade nachdenkt. „Alle Kernmerkmale des Codes sind an diesen Hirnsystemen ablesbar“, berichtet das Team. So konnten sie am Aktivitätsmuster erkennen, ob eine Testperson gerade eine Schleife oder Weiche im Script begutachtete. Auch ob das Programm eher mathematische Symbole oder Wörter enthielt und ob die Programmierer den eigentlichen Code oder nur eine verbale Beschreibung des Algorithmus lasen, ließ sich an ihrem Gehirn ablesen.
Dieses Ergebnis gibt nicht nur einen tieferen Einblick darin, was im Gehirn von Programmierern beim Analysieren von Codes vorgeht, es ist auch hilfreich für unser allgemeines Verständnis darüber, wie unser Gehirn arbeitet. Denn je genauer Neurowissenschaftler aufschlüsseln können, wie bestimmte Aufgaben, Eindrücke und Handlungen im Gehirn kodiert und verarbeitet werden, desto besser lässt sich verstehen, was bei Erkrankungen, Verletzungen oder Entwicklungsstörungen des Gehirns schiefläuft.
„Unsere Arbeit könnte beispielsweise dazu beitragen, smarte Prothesen zu verbessern“, erklären Srikant und seine Kollegen. Denn auch solche Gehirn-Computer-Schnittstellen sind davon abhängig, die neuronale Kodierung bestimmter Bewegungen und Aktionen möglichst genau entschlüsseln zu können.
KI-Modelle verarbeiten Programmcodes ganz ähnlich
Interessant auch: In einem zweiten Satz von Experimenten ließen die Forschenden verschiedene künstliche neuronalen Netzwerke dieselben Programmcodes lesen und evaluieren, wie die menschlichen Testpersonen. Dabei stellte sich heraus, dass Mensch und Maschine ganz ähnliche Muster der Aktivität und neuronalen Repräsentation produzieren. Besonders große Übereinstimmung mit den künstlichen Netzwerken zeigte dabei die Enkodierung im MD-System des menschlichen Gehirns.
Sogar die Merkmale der von Gehirn und KI analysierten Programmcodes zeigten ähnliche Muster: „Wenn ein Programm beispielsweise von Weichen dominiert wird, sieht man ein spezifisches Muster der Hirnaktivität“, berichtet Srikant. „Ein ganz ähnliches Muster sieht man, wenn das Modell des maschinellen Lernens versucht, denselben Codeteil zu verstehen.“ Auch dieses Phänomen könnte dazu beitragen, die Vorgänge im menschlichen Gehirn besser zu verstehen. (Neural Information Processing Systems Conference 2022, Preprint)
Quelle: Massachusetts institute of Technology (MIT)