Das digitale Gehirn: Auf Tuchfühlung mit neuronalen Netzen
Bildquelle: Pexels
Liebes Tagebuch,
es ist an der Zeit, dass ich dir von einem wichtigen Begleiter in meinem Leben erzähle. Er versetzt mich auf die Überholspur, greift mir unter die Arme, wenn es brenzlig wird und wärmt mich, wenn ich friere. Böse Zungen behaupten, ich hätte eine übermäßige Zuneigung entwickelt. Dabei wünsche ich meinem Audi lediglich eine gute Nacht und umarme ihn, wenn er mich wieder einmal sicher heimgebracht hat.
Es sind einfach die Details, mit denen mich mein Hightech-Auto verwöhnt. Besonders eine Funktion verzückt das IT-Girl in mir: Ich kann mit dem Navi kommunizieren, indem ich mein Ziel auf eine Fläche in der Mittelkonsole schreibe. Davon abgesehen, dass die Sauklaue selbst für mich kaum lesbar ist, frage ich mich: Wie kann das eigentlich funktionieren?
Meine Recherche führt mich direkt zu einem YouTube Tutorial über Handschrifterkennung. Und schwupps, schon habe ich mich im neuronalen Netz verfangen.1.
Das neuronale Netz gehört zum Themengebiet der künstlichen Intelligenz und ermöglicht, dass ein Computer eine Aufgabe eigenständig löst.2. Zusammengefasst ist das Ziel, Daten (bzw. einen Input) in das Konstrukt hineinzugeben und daraus Informationen (bzw. einen Output) zu erhalten.
Das Gehirn in digital: Aufbau eines neuronalen Netzes
Vom Aufbau her liegt die Messlatte hoch: Das neuronale Netz soll der Struktur des menschlichen Gehirns nachempfunden sein. Das klingt spannend genug, um näher hinzusehen:
Fangen wir damit an, was ein Neuron überhaupt ist. Als Disclaimer vorab: Ich bin kein Experte für Biologie oder Informatik (ich arbeite dran). Aber für Normalos wie mich genügt erstmal zu wissen: Ein Neuron kann Impulse empfangen, damit etwas anstellen und das Ergebnis wieder als Impuls ans nächste Neuron weiterschicken. Für genau diesen Transport braucht es zwischen den Neuronen unzählige Verbindungen – sie bringen die Impulse von A nach B und zwar so zahlreich, dass sie ein Netz zwischen den Neuronen spinnen. Damit haben wir schonmal herausgefunden, wie es zur Namensgebung kam.3.
Es ist noch zu ergänzen, dass die Neuronen bei der digitalen Variante schön aufgeräumt in Schichten angeordnet sind. Ich verallgemeinere nun, doch in der Regel ist es eine Einbahnstraße, wie das Netz eine Aufgabe löst:
Die Aufgabenstellung wird als erstes in die Eingabeschicht (Input Layer) gekippt, wo sie einzelne Neuronen verarbeiten. Im Fall meines Auto-Navis ist der Input ein handgekritzeltes Etwas, mit dem ich gerade die Postleitzahl angebe. Das Bild wird in einzelne Pixel zerlegt, von denen jedes in ein Neuron wandert.
Die Lösung der Aufgabe liefern die Neuronen der Ausgabeschicht (Output Layer). Um beim Navi-Beispiel zu bleiben, gibt die Output-Ebene aus, um welche Ziffer von 1-9 es sich beim Gekritzel handelt.
Der wahre Hirnschmalz steckt in den Zwischenebenen, sprich in allem, was zwischen Input und Output liegt. Was hier im Detail passiert, ist im Ergebnis unsichtbar, weshalb man auch von der verborgenen Schicht (Hidden Layer) spricht.4. Grafisch veranschaulicht sieht ein neuronales Netz wie folgt aus.
Bildquelle: Autor. Powered by Elisabeth Thirmeyer
Magie oder Mathematik? Die Verwandlung von In- zu Output
Auf den ersten Blick wirkt es wie Hokuspokus, dass ein Computer „von selbst“ Probleme löst. In Wahrheit steckt ein mathematisches Muster dahinter. Ein Muster, das recht schnell sehr komplex werden kann – doch auf die Basics reduziert, lässt es sich erstaunlich gut nachvollziehen. Im Großen und Ganzen besteht die Verwandlung aus 3 Schritten:
Gewichten, summieren und zuschneiden. Und das wenn‘s nötig ist über viele, viele Neuronen hinweg. So wird eine Aufgabenstellung Stück für Stück aufgearbeitet und in ein Ergebnis übersetzt. Die nachfolgende Abbildung zeigt beispielhaft, was sich bei jedem Neuron abspielt.
Bildquelle: Autor. Powered by Elisabeth Thirmeyer
Solltest du genauso neugierig sein wie ich, gehen wir der Sache noch etwas näher auf den Grund (dazu kannst du die folgenden Fenster aufklappen).
Neuronale Netze teilen sich zwar das Grundkonzept, jedoch bestimmt die Details der Einzelfall – wie etwa die Anzahl der Ebenen und Neuronen. Steht die Struktur, geht es darum, es intelligent zu machen. Dabei kann man nachhelfen und dem Netz zunächst die Ergebnisse vorgeben, sodass es gezielt davon lernt. Diesen Ansatz nennt man Supervised Learning9. – das schauen wir uns für mein Navi-Beispiel nachfolgend genauer an.
Die Trainingsphase: Ein Netz wird intelligent
Wie der Name verrät, wird das neuronale Netz in der Trainingsphase geschult. In meinem Beispiel geschieht das, indem man dem Netz unzählige Ziffern in verschiedensten Handschriften präsentiert und die richtigen Ergebnisse einsagt. Nach dem Motto: „Diese Striche da sind alles Einser, aber die mit der Nase und dem Mittelstrich sind Siebener“. Mit diesen Infos übernimmt ein Machine Learning Framework das Zepter. Das Programm versucht, auf das gleiche Ergebnis zu kommen und deichselt die Gewichtungen im Netz so zurecht, dass der Output mit dem gewünschten Ergebnis möglichst übereinstimmt.
Die Testphase: Ein Netz zeigt, was es kann
In der Testphase kommt das Netz auf den Prüfstand. Es wird eine neue handgeschriebene Ziffer präsentiert – nun ohne das Ergebnis zu verraten. Diesmal bleibt es dem Netz überlassen, die Antwort zu geben. In der Testphase wird ermittelt, wie zielgenau es die Handschrift erkennt. Es ist unwahrscheinlich, dass es eine hundertprozentige Trefferquote erreicht. Realistischer ist, dass es mein Gekritzel mit einer Wahrscheinlichkeit von 70% als 3 identifiziert und zu 10% als 8.
Exkurs: Quark in – Quark out
Die Qualität der Trainingsdaten ist entscheidend! Soll ein neuronales Netz zum Beispiel zwischen Hunden und Katzen unterscheiden, so spielt auch die Umgebung eine Rolle. Zeigt das Trainingsmaterial die Katzen hauptsächlich im Haus und Hunde unterwegs im Park, unterscheidet das Netz ggf. nicht die beiden Tierarten, sondern nimmt als Unterscheidungsmerkmal Grünflächen. Im Idealfall fällt das noch rechtzeitig in der Testphase auf und kann korrigiert werden.
FAZIT
Künstliche Intelligenz ist der Antrieb, um Maschinen immer menschenähnlicher zu machen. Umso wichtiger finde ich es, sich mit der Technologie dahinter zu befassen. Fakt ist, ich stehe noch ganz am Anfang – zu früh, um ein wirkliches Fazit abzugeben. Dennoch: Mit den obigen Erkenntnissen bin ich beinahe beruhigt, dass sich nicht alles über Eigendynamik und Verselbstständigung erklären lässt. Die Maschine folgt in meinem Beispiel einem logischen, vom Menschen vorgegebenen Schema. Auch wenn sie meine Handschrift liest, wie es eben mein Auto kann.
Egal ob in meinem Navi am Ende wirklich ein neuronales Netz steckt oder doch eine andere Technologie – ich bin dankbar, dass es mich zu diesem Beitrag inspiriert hat. Gleich wieder ein Grund, mich in mein Auto zu kuscheln, oder nicht?
Quellen:
- Neural Nine: Neural Network Python Project – Handwritten Digit Recognition – https://www.youtube.com/watch?v=bte8Er0QhDg
- https://www.bigdata-insider.de/was-ist-ein-neuronales-netz-a-686185/
- Code Bullet: What are Neural Networks || How AIs think – https://www.youtube.com/watch?v=JeVDjExBf7Y
- https://studyflix.de/informatik/neuronale-netze-4297
- Neural Nine: Neural Networks Simply Explained (Theory) – https://www.youtube.com/watch?v=-rrxxpiZa00
- https://studyflix.de/mathematik/extremstellen-4147
- https://www.heise.de/select/ix/2019/1/1545999823788057
- https://stackoverflow.com/questions/2480650/what-is-the-role-of-the-bias-in-neural-networks
- https://www.techtarget.com/searchenterpriseai/definition/supervised-learning