Das ist tatsächlich ein sehr spannendes Forschungsfeld, das viele Leute umtreibt. Die KI-Technik, aus wenigen Beispiel zu lernen, nennt sich übrigens One-Shot-Learning. Und in dieser Technik ist der Mensch dem Computer noch haushoch überlegen. Der Mensch kann anscheinend sehr gut vorheriges Wissen auf neue Kategorien übertragen.

Die Vorteile liegen auf der Hand. Denn mit vielen der aktuellen Methoden braucht man einen sehr großen Datensatz für das Training. Diesen Datensatz zu erstellen ist meistens teuer und zeitaufwendig. Zudem wird dann teure Rechenkapazität benötigt, um diese vielen Daten in das Modell zu schleusen. Wenn man an seltene Krankheiten denkt, dann gibt es mitunter auch gar keinen genügend großen Datensatz.

Warum brauchen wir aktuell noch so große Trainingssets?

Die meisten KI-Algorithmen basieren auf statistischen Verfahren und haben, wenn sie komplex genug sind, einen Haufen Parameter, die anhand des Trainings optimiert werden. Wer schon mal lineare Regression in der Praxis eingesetzt hat, weiß, dass die Anzahl Datenpunkte mit der Anzahl Prädiktoren massiv steigt.

Die aktuell populärste KI-Algorithmenklasse sind künstliche Neuronale Netze. Ein neuronales Netz besteht aus mehreren Schichten, also einer Eingangsschicht, gefolgt von mehreren Zwischenschichten (sogenannte hidden layers) und einer Ausgangsschicht. Jede Schicht besteht aus mehreren Knoten (den Neuronen). Die Knoten zweier aufeinander folgende Schichten sind alle miteinander verbunden und jede dieser Verbindungen hat ein Gewicht. Nun werden diese Gewichte anhand der Trainingsdaten so angepasst, dass das neuronale Netz die gestellte Aufgabe hoffentlich gut erledigt.

Die Schichten eines neuronalen Netzes:
Eingangsschicht (Input Layer)
Zwischenschichten (Hidden Layer)
Ausgangsschicht (Output Layer)

Die Eingangsschicht hat für jedes Feature ein Neuron, also zum Beispiel die Anzahl Pixel eines Bildes. Die Ausgangsschicht hat so viele Neuronen wie eben Entscheidungen/Handlungen möglich sind, z.B. zwei bei einer binären Klassifikation: ja und nein. Über die Anzahl Zwischenschichten und deren Anzahl Neuronen gibt es keine allgemeingültige Aussage. Es gibt Paper, die sagen, dass für die meisten Probleme eine Zwischenschicht genügt und dass die Anzahl Neuronen zwischen der Anzahl Neuronen der Ausgangs- und der Eingangsschicht liegen.

Nehmen wir das populäre Beispiel der handschriftlichen Ziffernerkennung anhand der MNIST Datenbank. Ein sogenanntes Convolutional Neural Network (CNN), das sehr gut abgeschnitten hat (Fehlerrate von 0,27%) besteht insgesamt aus 7 Schichten mit den folgenden Anzahl Neuronen: 784-50-100-500-1000-10-10. Das sind also gigantische 604.300 Verbindungen, die einen Gewichtsparamter haben. Die Fehlerrate konnte durch die Kombination von mehreren CNNs noch reduziert werden.

Es gibt also eine riesige Menge Gewichte, die alle bestimmt werden wollen. Und dafür braucht man diese riesige Anzahl Trainingsbeispiele

Und was ist jetzt One-Shot-Learning?

Wie der Begriff schon sagt, soll mittels eines Versuchs gelernt werden. Der Name ist allerdings ein bisschen irreführend, denn beim One-Shot-Learning geht es nicht zwingend darum, aus nur einem einzigen Beispiel zu lernen. Das wäre zwar besonders wünschenswert, aber realistischerweise braucht die KI doch einige wenige Trainingsdaten.

Wie soll das funktionieren? Dazu nehmen wir uns den Menschen zum Vorbild, der die Fähigkeit besitzt das Lernen zu lernen. In der KI-Welt bezeichnet man das als Meta-Learning.

Was ist Meta-Learning? Ein Gedächtnis muss her!

Die Idee hinter Meta-Learning ist, dass wir schon gelerntes auf neue Situationen übertragen, also eine Art Wissenstransfer. Dabei können wir drei Arten unterscheiden:

  1. Wissenstransfer durch Modellparameter: Der Startpunkt für das Training einer neuen Klasse sind die aus früheren Trainings gelernten Modellparameter.
  2. Wissenstransfer durch gemeinsame Features: Die Features, die die neue als auch die alte Klasse besitzen, werden als Ausgangspunkt genommen. Wenn ein Algorithmus gelernt hat, eine Kuh zu erkennen, dann kann er davon ausgehend schnell lernen, auch ein Pferd zu erkennen.
  3. Wissenstransfer durch Kontext: Hierbei geht es darum, das Setting mit einzubeziehen, also zum Beispiel von dem perfekten Bilder-Datensatz, welcher auf das zu erkennende Motiv  zugeschnitten und gedreht wurde, zu realistischeren Bildern überzugehen, welche das Motiv zur enthalten.

Alle drei müssen auf bereits Gelerntes zugreifen können. Dafür ist eine Art Gedächtnis nötig. Man könnte allgemein sagen, dass Meta-Learning ein langwieriger Prozess ist, der durch Erweiterung des Wissens immer mehr lernt. One-Shot-Learning ist davon also nur der Teil, neues Wissen aus bestehendem Wissen und einigen Beispielen zu generieren.

Was sind Memory-Augmented Neural Networks?

Eine Klasse Neuronaler Netze, welche eine Art Meta-Learning implementieren, sind die sogenannten Memory-Augmented Neural Networks (MANN). Diese sind eine Weiterentwicklung bzw. eher eine Vereinfachung von Neural Turing Machines (NTM) und bestehen aus einem Controller, welcher ein Neuronales Netz ist, sowie einem Speicher besteht. Der Controller muss, wie der Name sagt, alles koordinieren, also je nach Inputs Inhalte aus dem Speicher auslesen, modifizieren oder neu schreiben. Und am Ende muss der Controller natürlich zu einem Ergebnis kommen.

Ein Memory-Augmented Neural Network besteht aus einem Controller (Neuronales Netz) und einem Speicher

Wer mehr darüber erfahren will, liest sich am besten in das Paper „One-Shot-Learning with Memory-Augmented Neural Networks“ ein.

Funktionieren MANNs für One-Shot-Learning?

Die ersten Ergebnisse sehen vielversprechend aus. So wurde der Omniglot Datensatz verwendet, der aus Buchstaben bzw. Symbolen verschiedener Sprachen besteht, um zu lernen, das Symbol einer Sprache zuzuordnen. Dabei gibt es jeweils nur wenige Beispiele einer Sprache.

Dabei schnitt das Memory-Augmented Neural Network mit einem LSTM Neuronales Netz (Long Short Term Memory) als Controller besser ab als das reine LSTM Netz.