6. Neuronale Netze#
Neuronale Netze sind ein mächtiges und flexibles Werkzeug: Sie können für überwachte und unüberwachte Lernaufgaben, für Klassifikation und Regression eingesetzt werden. Und sie haben unter dem Stichwort “Deep Learning” einen hohen Bekanntheitsgrad und werden geradezu synonym mit Künstlicher Intelligenz assoziiert. Das Feld entwickelt sich sehr schnell; die Modelle haben eine sehr hohe technische Komplexität, doch gleichzeitig gibt es aufgrund der hohen Nachfrage für die praktische Nutzung auch Libraries mit vortrainierten Modellen, die man für seinen spezifischen Zweck nur noch feinjustiert.
In dieser Einheit können wir leider das Thema nicht erschöpfend bearbeiten. Sie bekommen daher hier einen kurzen Überblick über die Geschichte des Ansatzes und eine Einführung in die grundlegenden technischen Begriffe. Damit sollen Sie in die Lage versetzt werden, neuere Entwicklungen einzuordnen und sich wenn nötig technisch selbst zu vertiefen.
Als Anregung für eigene Experimente mit (vortrainierten) Netzen bietet Ihnen der letzte Abschnitt einige entsprechende Tutorials und Blogs an. Diese Aktivitäten sind nicht verpflichtend.
Zum Abschluss lesen Sie noch einige Gedanken zur Zukunft der neuronalen KI von drei maßgeblichen Entwicklern des Deep Learning.
Es ist kein Zufall, dass Sie in diesem Abschnitt viele externe Inhalte sehen: Da das Thema gerade so viel Interesse findet, gibt es sowohl ständig neue Entwicklungen als auch hervorragende Ressourcen, die diese abbilden. Nutzen Sie sie als Startpunkt für eigene Recherchen, wenn Sie das Thema vertiefen möchten.
6.1. Geschichte der Neuronalen Netze#
Neuronale Netze werden seit den 1960er Jahren erforscht. Hintergrund war das Ziel, durch Nachahmen des menschlichen Gehirns die Künstliche Intelligenz vorwärts zu bringen und effizienter zu machen (das Gehirn ist nämlich aufgrund seiner hochparallelen Arbeitsweise extrem schnell und auch erstaunlich energieeffizient).
Die erste Formalisierung eines Netzwerks, das wie das menschliche Gehirn Neuronen hat, die über Synapsen miteinander kommunizieren und sich gegenseitig aktivieren oder inhibieren (hemmen), war das Perzeptron von Rosenblatt (1962). Allerdings wurde recht schnell erkannt, dass ein einschichtiges Perzeptron (bestehend aus einer nicht gezählten Neuronenschicht für die Eingabe und einer weiteren für die Ausgabe) nur linear separable Probleme lösen kann - also solche, für die die Entscheidungsgrenze linear ist. Diese Einschränkung wurde in einem erbitterten Kampf um Gelder für die Wissenschaftsförderung von den Proponenten der symbolischen KI (die mit Symbolen, also regelbasiert arbeitet) verwendet, um die neue Methode irrelevant erscheinen zu lassen, und die Forschung schlief zunächst ein.
Ein weiterer Impuls kam in den 80er/90er Jahren mit der Erkenntnis, dass mehrschichtige Perzeptrons auch nichtlineare Probleme lösen können (Rumelhart, Hinton, Williams 1986); nur ergab sich das Problem, dass das Training der Modelle für realistische Datenmengen die zur Verfügung stehende Rechenleistung noch sprengte. Die Modelle wurden aber z.B. eingesetzt, um den menschlichen Spracherwerb zu modellieren und experimentell testbare Vorhersagen zu generieren.
Der Durchbruch der Lernmethode kam mit Hinton, Osindero und Teh (2006) als „Deep Learning“: Schnelle Algorithmen sind heute aufgrund der technischen Entwicklung (GPUS, billiger Speicherplatz) auch für große Datenmengen anwendbar. In den letzten 15 Jahren wurden die ursprünglich recht simplen mehrlagigen Perzeptrons radikal weiterentwickelt.
Für viele Forscher waren neuronale Netze attraktiv, weil sie nur geringen Aufwand bei der Aufbereitung des Inputs erfordern. Statt aufwändig Features zu berechnen und optimal auszuwählen, setzt man einmalig eine Input-Repräsentation um. Insbesondere für Bilder, die für die herkömmlichen statistischen Ansätze umfangreich gefiltert und aufbereitet werden mussten, reicht nun die vorliegende Roh-Information über jedes Pixel als Input. Bei Textdaten nutzt man häufig kurze Buchstabenblöcke (Buc-hst-abe-nbl-öck-e_) als Inputcodierung.
Die Netze scheinen also zunächst unaufwändig in der Nutzung (wenn man vom benötigten Rechenaufwand absieht…) Allerdings zeigt sich, dass sich die Komplexität der Lernaufgaben nicht vollständig unterdrücken lässt: Statt an der Inputrepräsentation zu arbeiten, liegt der Aufwand nun im Entwickeln komplizierter Architekturen.
Für die Bilderkennung wurden Convolutional Neural Networks (CNNs) entwickelt; sie nutzen Faltungsfilter, um bestimmte Teile des Netzwerks auf bestimmte Teile des Inputs zu fokussieren. Für Probleme mit zeitlicher Abhängigkeit im Input (wie zum Beispiel die Verarbeitung von Texten) gibt es Modelle, die quasi ein Gedächtnis haben und auf die Aktivierungsmuster früherer Zustände zurückgreifen können (Recurrent Neural Networks, RNN oder Long Short-Term Memories, LSTM). Der aktuell beste Ansatz für solche Probleme ist die Nutzung von “soft attention”, was es dem Netzwerk erlaubt, abhängig vom Kontext und dynamisch die Wichtigkeit bestimmter Netzwerkteile für die Weiterverarbeitung zu erhöhen.
6.2. Architektur und Funktionsweise einfacher Netze#
Die technischen Grundlagen einfacher neuronaler Netze sind sehr gut in zwei online verfügbaren Videos erklärt - das Praxisbeispiel sind die handgeschriebenen Ziffern, die wir im Kapitel zu Dimensionsreduktion verwendet haben. (Bitte die Werbung für die Sponsoren ignorieren…)
Video 1: Einfache Neuronale Netze
Verständnisfragen:
Wie ist ein einfaches neuronales Netz aufgebaut? Welchen biologischen Strukturen entsprechen die Komponenten?
Was sind die grundlegenden Komponenten eines einfachen Netzes, die die Aktivierung der Neuronen beeinflussen?
Es wird übrigens nicht gut erklärt, warum man einen bias-Knoten braucht - der Hintergrund ist, dass man auch dann Aktivierung in der Folgeschicht ermöglichen möchte, wenn alle Neuronen der Eingabeschicht 0 oder nahe 0 sind (und damit eigentlich auch keine Aktivität weitergereicht werden kann).
Warum wendet man die Sigmoid-Funktion auf die rohe Aktivierung an? Wären prinzipiell auch andere Funktionen möglich?
Video 2: Lernen in einfachen Neuronalen Netzen Verständnisfragen:
Welches Maß wird im Video benutzt, um die Kosten eines Trainingsbeispiels zu berechnen?
Wie definiert das Video den Ausdruck “Das Netzwerk lernt”?
Woher stammt der Name “Gradient Descent” für die Kosten-Minimierungsstrategie?
6.3. Praxisbeispiele#
Bildverarbeitung#
Die Bildverarbeitung war einer der ersten Bereiche, in dem die bisherigen statistischen Modelle von Deep Learning verdrängt wurde. Hier verwendet man sog. “Convolutional Networks” (CNNs, “Faltungsnetzwerke”), bei denen eine Faltungsmatrix als Filter wirkt und jedes Neuron auf einen kleinen Teil des Bildausschnitts fokussiert. Durch Vergrößerung des Ausschnitts in jeder Schicht erzeugt man die in den Videos von 3Blue1Brown erwähnte Spezialisierung der Schichten auf Kantenerkennung, Teilbereicherkennung und schließlich Bilderkennung.
Schauen Sie CNNs beim Lernen zu.
Optional: Trainieren Sie Ihr eigenes CNN: Tutorial “Katzen und Hunde unterscheiden”
Sprachverarbeitung: Transformer-basierte Modelle#
In der Klassifikation von Texten bestimmt Transferlernen auf sog. Transformer-Modellen den Stand der Technik. Diese Modelle können auf großen Datenmengen unspezifisch vortrainiert werden und erlangen so ein generelles Modell der Zielsprache. Danach werden benötigen sie nur noch vergleichsweise wenig Daten, die für die eigentliche Aufgabe annotiert sind. Dies ermöglicht den Einsatz von Deep Learning für komplexe Aufgaben, für die wenig Daten vorhanden sind.
Lesen Sie zunächst, was ein Transformer-Modell ist und probieren Sie dann eine der Beispiel-Anwendungen auf Grundlage der Huggingface-Bibliothek aus.
6.4. Wohin geht die Reise?#
Gedanken dazu von den Deep-Learning-Eminenzen Yoshua Bengio, Yann LeCun und Geoffrey Hinton finden Sie im letzten Teil ihres Textes für die Communications of the ACM. Der gesamte Text ist lesenswert, aber sehr dicht.