Neural Numbers

Experimentiere mit einer KI, die deine Handschrift erkennen kann. Du entdeckst, wie die KI sich langsam verbessert und wie dieser Lernprozess mit unserem menschlichen Lernen zusammenhängt.

Für Computer ist es nicht einfach, Handschriften zu erkennen. Handschriften sind von Natur aus unregelmäßig, selbst eine einzelne Person schreibt denselben Buchstaben nicht immer gleich. Es gibt unterschiedliche Schreibweisen bei manchen Buchstaben und eine kleine Änderung in der Strichlänge oder dem Winkel kann ausreichen, um aus einem Buchstaben einen anderen zu machen. Auch für Menschen ist es oft schwer, Handschriften zu lesen - und das sogar, wenn es die eigene ist.

Um den Computern das Lesen zu erleichtern, arbeitet man mit vereinfachten Systemen: bei den seit 1951 gängigen Barcodes müssen Computer zum Beispiel nur eine Reihe schwarzer und weißer Linien erkennen. Programme für Texterkennung können Texte in allen Schriftarten lesen, doch nur wenn die Buchstaben immer eindeutig gedruckt sind. Auch sie haben Probleme mit unregelmäßigen und mehrdeutigen Buchstaben, daher helfen ihnen spezielle Schriftarten mit anderen Buchstabenformen. Palm Pilot-Geräte aus den späten 90er Jahren haben handschriftliche Buchstaben zugelassen, indem sie ein vereinfachtes Alphabet nur mit Buchstaben einer bestimmten Größe und mit einer bestimmten Anzahl an Strichen verwendet haben.

Links steht ein Strichcode mit der Sequenz 1234567890 und rechts eine Schriftart, die speziell für Texterkennungsprogramme erstellt wurde.

Es ist keine leichte Aufgabe, eine KI mit einer genauen Definition der Zahlenformen zu programmieren, so dass sie die Zahlen auch voneinander unterscheiden kann. Die Definitionen müssten zum Beispiel mit stilistischen Variationen klarkommen. Eine 1 darf nicht zur 7 werden und die 3 ist keine 8 - solche Fälle befinden sich für die KI häufig in einer Grauzone der Erkennbarkeit. Menschen lernen die Zahlen anhand von Beispielen und mit der Zeit erkennen sie sie fast augenblicklich und automatisch.

Die KI, die du oben auf dieser Seite verwendet hast, benutzt ein sogenanntes künstliches Neuronales Netz. Das ist eine Technologie, die auch anhand von Beispielen lernt. Künstliche Neuronale Netze heißen so, weil sie sich biologische Gehirne zum Vorbild nehmen. Ihre neuronalen Verbindungen übertragen Signale, indem sie Informationen (“Inputs”) von den Sinnesorganen erhalten, um mit einer Reaktion (“Output”) in den Muskeln oder anderen Organen zu antworten. Künstliche Neuronale Netze bestehen aus Tausenden von künstlichen Neuronen, die sich in einem sehr komplexen Netzwerk zusammenschließen. Wie ein Gehirn tauschen sie Signale zwischen Input und Output aus.

Mithilfe von Tausenden oder sogar Millionen von Beispielen lernen Neuronale Netze, bestimmte Aufgaben zu erfüllen. Sie sind besonders gut darin, Muster und Formen zu erkennen: Zahlen, Buchstaben und natürlich Katzenbilder.

Bei unserer Zahl-Erkennungs-KI ist der Input ein 28 x 28 Pixel großes Bild. 28 mal 28 Pixel ergeben 784 einzelne Bildpunkte. Jedem dieser Punkte ordnet die KI eine Zahl zwischen 1 (für weiß) und 0 (für schwarz) zu. Für Grautöne verwendet sie Nachkommastellen. Zeichnest du etwas, wird es erst zentriert und vergrößert, um es dann als Input für die KI zu verwenden. Versuch mal, eine kleine Zahl in eine Ecke im Eingabefeld unten zu schreiben und beobachte dann, wie sie sich verändert. Diese Veränderung der Eingabe hilft der KI beim Erkennen.

Für das Erkennen von Zahlen verwenden wir zehn Outputs: einen für jede Ziffer zwischen 0 und 9. Jeder Output erzeugt ein Signal, das uns verrät, wie sicher sich das Netz darüber ist, dass es sich beim Input um eben diese Zahl handelt. Das neuronale Netz kann auch unterschiedliche Antworten als ähnlich wahrscheinlich betrachten. Im nächsten Eingabefeld siehst du Balken für die Outputs, die mit zunehmender Wahrscheinlichkeit wachsen. Zeichne langsam eine Zahl und schau dir an, wie die Balken daraufhin größer und kleiner werden.

Das Neuronale Netz nutzt ungefähr 80.000 Verbindungen, um jeden Input mit allen anderen Inputs und auch zu den Outputs zu verbinden. Je länger das Training anhält, gewichtet das Netz die Verbindungen stärker oder schwächer und bildet so Strukturen aus, die gewisse Muster und Formen im Input erkennen lassen.

Darstellung der Verbindungen in unserem Neuronalen Netz. Links sind die Inputs, rechts die 10 Outputs. Input und Output sind durch eine Zwischenschicht verbunden, die die Inputs in verschiedenen Stärken miteinander verbindet. Die Stärken der Verbindungen werden durch das Training adaptiert und helfen dabei, visuelle Muster zu erkennen.

Das Training unseres Netzes gelang mit Hilfe der MNIST-Datenbank, einer Sammlung von 70.000 Bildern einzelner handgeschriebener Ziffern von Schülerinnen und von Angestellten des Amts für Volkszählung der USA. Sie entstanden mit dem Ziel, KI-Forscherinnen bei ihrer Arbeit zu unterstützen. Jedes Bild wurde mit der abgebildeten Zahl vorbeschriftet. Aus diesem Grund kann unsere KI während des Trainings selbst prüfen, ob sie die Zahlen richtig oder falsch gelesen hat.

Einige Zahlen der MNIST-Datenbank, die beim Training unseres Neuronalen Netzes benutzt wurden.

Bild von Josef Steppan. Verwendet unter Berücksichtigung der CC BY-SA 4.0 Lizenz.

Jedes Bild dient als einzelner Input, der Output wird dann überprüft. Nach jedem Bild benötigt das Netz ein Feedback, ob es richtig oder falsch liegt. Dann kann es seine Verbindungen anpassen. Dieser Prozess führt dazu, dass die Antworten mit der Zeit immer genauer werden. Das Training ist langwierig - zum Glück führt es ein Computer automatisch durch!

Unten siehst du einen Schrifterkenner, der nur mit 300 Bildern trainiert wurde. Wenn du darin schreibst, bleiben die Balken alle ziemlich niedrig: Das Netz vertraut seiner Antwort nicht besonders. Außerdem zappeln die Balken viel herum. Das heißt, dass die Schrifterkennung sehr empfindlich gegenüber kleinen Änderungen in der Schreibweise ist. Einige Zahlen erkennt es hingegen nur, wenn sie einer ganz bestimmten Form entsprechen.

Der folgende Schrifterkenner hat mit rund 1500 Bildern gelernt. Er kann Zahlen besser identifizieren. Mit bestimmten Zahlenformen hat er allerdings noch immer Probleme. Ob er Zahlen richtig erkennt, hängt davon ab, wie sie geschrieben wurden. Beispielsweise wird eine 8 nur dann erkannt, wenn sie eine bestimmte Breite besitzt, und der obere Kreis größer als der untere ist.

Hier ist noch einmal das vollständig trainierte Netz, das 70.000 Bilder für das Training verwendet hat. Damit kannst du weiter experimentieren.

Weitere Experimente

Neuronale Netze verstehen häufig komplexe Formen als Kombination mehrerer einfacher visueller Muster. Schau dir das an, indem du im vollständig trainierten Schrifterkenner verschiedene Formen zeichnest. Welche Output-Balken werden aktiviert? Schreibst du beispielsweise ein “plus”-Zeichen, aktiviert es das Signal für die 4, bei einem “x” kommt das Signal für die 8. Andere interessante Formen, die du ausprobieren kannst, sind etwa zwei oder drei parallele Striche (vertikale oder horizontale), gedrehte T’s oder Halbkreise.

Das Netz kommt auch sehr gut mit nicht vollständigen Formen zurecht. Versuch mal, eine Zahl gepunktet oder gestrichelt zu schreiben. Auch das ist für unsere KI meist kein Problem.

In der I AM A.I.-Ausstellung

In der Ausstellung kannst du am Neural Numbers-Exponat selbst das Neuronale Netz trainieren. Entscheide dabei, wie weit der Lernprozess gehen soll, und probiere verschiedene Einstellungen und Lernparameter aus. Außerdem zeigt das Exponat “Sprich mit mir”, wie Neuronale Netze unsere Sprache erkennen können.

Mehr über den Besuch der Ausstellung.

  Der Text ist unter der Lizenz Creative Commons Attribution License verfügbar.

Mehr zu entdecken