Was ist Meta-Learning? Vorteile, Anwendungen & Herausforderungen
Dr. Jan Macdonald
Datengesteuerte Algorithmen, wie maschinelles Lernen und insbesondere Deep-Learning-Modelle, haben in verschiedenen Anwendungsbereichen, die von Computer Vision über Audio und Signalverarbeitung bis hin zur Verarbeitung natürlicher Sprache reichen, beispiellose Erfolge erzielt. In der Regel "lernen" Maschinen, eine bestimmte Aufgabe unter Aufsicht zu lösen, indem sie eine große Menge an gelabelten Beispieldaten betrachten. Stellen Sie sich ein Bildklassifizierungsmodell vor, das lernt, verschiedene Tiere zu unterscheiden, indem es viele Beispielbilder der verschiedenen Tierarten vorgesetzt bekommt. Dies unterscheidet sich erheblich von der Art und Weise, wie wir Menschen normalerweise lernen: Nachdem wir im Laufe unseres Lebens immer wieder mit dem Erkennen verschiedener Tiere konfrontiert wurden, sind wir in der Lage, das Konzept einer neuen Tierart zu lernen, nachdem wir nur sehr wenige Beispiele gesehen haben. Die Einbeziehung solcher "adaptiven" Lernstrategien in den Bereich des maschinellen Lernens ist der Kern des Meta-Lernens. Dies wurde bereits in den 1980er und 1990er Jahren erforscht, z. B. von Schmidhuber (Schmidhuber, 1987) und Bengio et al. (Bengio et al., 1991). In jüngster Zeit hat mit den raschen Verbesserungen im Bereich des Deep Learning das Interesse an auf neuronalen Netzen basierenden Meta-Learning-Ansätzen zugenommen, und es wurde eine Vielzahl von Varianten vorgeschlagen und entwickelt. Im Folgenden werden wir eine Auswahl davon genauer betrachten.
Was ist Meta-Learning?
Kurz gesagt, bezieht sich Meta-Lernen auf die Fähigkeit des "Lernens zu lernen". Eine umfassendere Definition würde Meta-Lernen als jedes System beschreiben, das ein lernendes Teilsystem enthält, das sich dynamisch anpasst, indem es die Erfahrungen aus früheren Lernepisoden oder aus verschiedenen Aufgaben nutzt (Lemke et al., 2015). Im Gegensatz zum traditionellen überwachtes Lernen (Supervised Learning) wird bei Meta-Learning also nicht nur eine einzige Aufgabe mit einem festen und großen Datensatz betrachtet, sondern vielmehr eine Sammlung verwandter Aufgaben (jede mit ihrem eigenen und oft viel kleineren aufgabenspezifischen Datensatz). Es zielt darauf ab, allgemeine Informationen über den Lernprozess bei einzelnen Aufgaben zu extrahieren, um die Anpassungsfähigkeit an neue Aufgaben zu verbessern.
Was sind die Vorteile von Meta-Learning?
Ein entscheidender Vorteil von meta-gelernten Systemen ist ihre Flexibilität und ihr Potenzial zur schnellen Anpassung aus wenigen Daten. Dies kann dazu beitragen, viele Nachteile traditioneller Algorithmen für maschinelles Lernen zu überwinden, wie z. B. die Notwendigkeit großer Datensätze, hohe Trainingskosten, erheblicher Aufwand durch viele Trainingsversuche und die Notwendigkeit einer umfangreichen Abstimmung der Hyperparameter sowie lange Trainingszeiten.
Im Gegensatz dazu senkt Meta-Learning den Bedarf an großen Mengen aufgabenspezifischer Trainingsdaten erheblich, was vor allem bei Anwendungen wichtig ist, bei denen qualitativ hochwertige, gelabelte Daten knapp, teuer oder zeitaufwendig zu beschaffen sind. Dieser geringere Bedarf an Daten geht auch mit einer geringeren Trainingszeit und -kosten während der Aufgabenanpassung einher. Schließlich ist ein gut trainiertes meta-gelerntes System ein verallgemeinertes Modell, das effizient zur Lösung mehrerer verwandter Aufgaben verwendet werden kann, anstatt nur einer. Es kann auch eine höhere Vorhersagegenauigkeit bei einzelnen Aufgaben erreichen, indem es die Erkenntnisse aus den anderen Aufgaben nutzt.
Was sind die Anwendungen von Meta-Learning?
Aufgrund ihrer Flexibilität können Meta-Lernsysteme in vielen verschiedenen Anwendungen eingesetzt werden, die von Computer Vision über Text- und Sprachverarbeitung bis hin zu Reinforcement Learning reichen. Die bekanntesten Beispiele in der Computer Vision sind die few-shot Bildklassifikation und few-shot Objekterkennung, d.h. die Klassifikation oder Erkennung anhand von nur sehr wenigen Beispielbildern pro Klasse oder pro Objekt.
In ähnlicher Weise kann Meta-Learning bei der Sprachverarbeitung eingesetzt werden, und zwar durch "few-shot learning" für Wortvorhersagen oder maschinelle Übersetzung. Meta-Learning-Ansätze werden auch im Bereich des Reinforcement Learning eingesetzt, da sie die Nutzung früherer Erfahrungen und das Navigieren in unterschiedlichen und sich verändernden Umgebungen erfordern, z.B. in der Robotik oder beim autonomen Fahren.
Bei dida werden derzeit im Rahmen des Projekts "PretrainAppEO" (gemeinsam mit der TU München, gefördert durch das Bundesministerium für Wirtschaft und Energie (BMWI)) verschiedene Meta-Learning-Ansätze für eine Fernerkundungs- und Erdbeobachtungsanwendung erforscht und verglichen. In diesem Fall geht es um die Klassifizierung von Kulturpflanzen aus zeitaufgelösten Satellitenbildern von landwirtschaftlich genutzten Flächen. Meta-Learning ist ein vielversprechender Kandidat, um Erdbeobachtungserkenntnisse aus geografischen Regionen mit dichterer Datenlage bei der Anpassung an Aufgaben in Regionen zu nutzen, für die nur wenige Daten verfügbar sind.
Was sind die aktuellen Meta-Learning Ansätze?
Die derzeitigen Meta-Learning-Ansätze lassen sich grob in drei Kategorien einteilen.
Modellbasiertes Meta-Learning: Zyklische oder rekurrente neuronale Netzmodelle (z. B. LSTMs) mit internem oder externem Speicher können ihren Zustand durch Einlesen einer kurzen Sequenz aufgabenspezifischer Trainingsdaten anpassen. Die gesamten Modellparameter werden über viele verschiedene Aufgaben hinweg gelernt. Beispiele in dieser Kategorie sind Memory-Augmented Neural Networks (Santoro et al., 2016) und Neural Attentive Meta-Learners (Mishra et al., 2018).
Metrik-basiertes Meta-Learning: Effektive und aufgabenangepasste Abstandsmetriken, z. B. durch gelernte Einbettungen neuronaler Netze, werden bei der Inferenz mit nichtparametrischen Verfahren wie der Nächste-Nachbarn-Klassifikation kombiniert. Beispiele hierfür sind Prototypical Networks (Snell et al., 2017), Matching Networks (Vinyals et al., 2016) und Relation Networks (Sung et al., 2018).
Optimierungsbasiertes Meta-Learning: Erkenntnisse über die Optimierungsprozesse beim Training eines Modells auf verschiedenen Aufgaben werden abgeleitet und aggregiert. Dies ermöglicht eine gemeinsame aufgabenübergreifende Optimierung von Hyperparametern und Parameterinitialisierungen und damit eine schnellere Anpassung beim individuellen aufgabenspezifischen Training. Das prominenteste Beispiel ist der Ansatz des modellagnostischen Meta-Learnings (MAML) (Finn et al., 2017).
Im Folgenden werden wir uns auf die dritte Kategorie konzentrieren, da sie am weitesten verbreitet und unabhängig von der gewählten Architektur des neuronalen Netzes ist.
Ein genauerer Blick auf das optimierungsbasierte Meta-Lernen
Während es beim gewöhnlichen überwachten Lernen darum geht, eine Annäherung an eine Datenverteilung für eine einzelne bestimmte Aufgabe zu lernen, geht es beim Meta-Lernen darum, den Vorgang des Lernens selbst zu erlernen. D.h. ein Lernalgorithmus soll über mehrere Lernepisoden mit verschiedenen einander verwandten Aufgaben so angepasst werden, dass die Lernergebnisse für zukünftige ähnliche Aufgaben verbessert werden. Dies kann als eine zweistufige Optimierungsaufgabe formuliert werden: Anstelle eines einzelnen Datensatzes nehmen wir an, dass wir Zugang zu einer Verteilung von Aufgaben $$p(\mathcal{T})$$ haben, wobei jede Aufgabe $$(\mathcal{D}_\text{train}, \mathcal{D}_\text{test}, \mathcal{L}) \sim p(\mathcal{T})$$ aus einem Trainingsdatensatz $$\mathcal{D}_\text{train}$$ (auch support set genannt), einem Testdatensatz $$\mathcal{D}_\text{test}$$ (auch query set genannt) und einer aufgabenspezifischen Kostenfunktion $$\mathcal{L}$$ (dies könnte auch die gleiche Kostenfunktion für alle Aufgaben sein) besteht. Ein parametrisiertes maschinelles Lernmodell $$M[\theta]$$, z.B. ein neuronales Netz mit erlernbaren Parametern $$\theta$$, kann für eine solche Aufgabe mittels
trainiert werden. Dabei bezeichnet $$\mathcal{A}$$ den gewählten Lernalgorithmus, z.B. Mini-Batch SGD, und $$\omega$$ die Hyperparameter des Algorithmus, z.B. die Lernrate oder Architektur-Hyperparameter wie die Anzahl der Schichten des neuronalen Netzes und die anfänglichen Modellparameter $$\theta_0$$. Das Modell kann für diese Aufgabe auf den Testdaten gemäß der Kostenfunktion $$\mathcal{L}(M[\theta^\ast], \mathcal{D}_\text{test})$$ bewertet werden. Während des Meta-Lernprozesses werden die Hyperparameter $$\omega$$ (oder Teile davon) aufgabenübergreifend optimiert,
wobei $$\mathcal{L}_\text{meta}$$ eine geeignete Kostenfunktion für das Meta-Lernziel ist. Ein üblicher Meta-Learning-Ansatz ist die sogenannte $$n$$-way $$k$$-shot Klassifikation, bei der jeder Trainingsdatensatz $$\mathcal{D}_\text{train}$$ insgesamt $$n\cdot k$$ Stichproben aus $$n$$ verschiedenen Klassen ($$k$$ Stichproben pro Klasse) enthält. In diesem Fall wird für alle Aufgaben die gleiche Klassifikationskostenfunktion verwendet wird, z.B., Softmax-Kreuzentropie, und das Meta-Lernziel berücksichtigt die Klassifikationsbewertung für die einzelne Aufgaben, d.h.,
In der Praxis wird die Berechnung des Erwartungswertes über alle Aufgaben im Meta-Lernziel durch eine Stichprobe von Aufgaben ersetzt, die für die Schätzung von $$\omega^\ast$$ (Meta-Train-Set) verwendet wird. Eine separate Stichprobe von Aufgaben kann zurückgehalten werden, um das meta-trainierte Modell anschließend zu evaluieren (Meta-Test-Set), ähnlich wie bei der Aufteilung von Trainingsdatensätzen beim gewöhnlichen überwachten Lernen (siehe Abbildung 1 für ein Beispiel).
Ein weitverbreiteter Meta-Lernalgorithmus, der in diesen Rahmen passt, ist das modellagnostische Meta-Lernen (MAML). Die Hauptidee von MAML besteht darin, explizit eine feste Anzahl von SGD-Schritten für den Lernalgorithmus $$\mathcal{A}$$ zu verwenden. D.h. ausgehend von einer Initialisierung $$\theta_0$$ berechnet man
wobei $$T$$ die gewählte Anzahl von aufgabenspezifischen Anpassungsschritten ist (dies nennt man die innere Schleife von MAML). Weiterhin beschränkt MAML die meta-trainierbaren Parameter $$\omega$$ auf die Initialisierung der Modellparameter $$\theta_0 = \omega$$. Alle anderen Hyperparameter, z.B. die Lernrate $$\alpha$$, werden extern festgelegt und nicht meta-trainiert. Die Optimierung der Meta-Parameter erfolgt ebenfalls iterativ und gradientenbasiert (dies nennt man die äußere Schleife von MAML). Für den einfachsten Fall von $$T=1$$ Anpassungsschritten lässt sich der MAML-Algorithmus mit der folgenden Iterationsformel zusammenfassen, und zwar pro Aufgabe aus dem Meta-Train-Set,
wobei $$\beta$$ die Lernrate für das Meta-Training (genannt Meta-Lernrate) ist.
Mehrere Varianten von MAML wurden bereits vorgeschlagen, siehe auch Abbildung 2:
FOMAML (First-Order MAML) (Finn et al., 2017): Standard MAML kann aufgrund der Notwendigkeit der Berechnung von Ableitungen zweiter Ordnung schnell sehr rechenintensiv werden. FOMAML hingegen ignoriert alle Ableitungen zweiter Ordnung, die sich aus der Kettenregel in der MAML-Iterationsformel ergeben.
ANIL (Almost No Inner Loop) (Raghu et al., 2020): Durch die Aufteilung der Modellparameter $$\theta=[\theta_\text{backbone}, \theta_\text{head}]$$ in ein Modell-Backbone und einen Klassifikations-Head (letzte Schicht des neuronalen Netzes) wurde beobachtet, dass $$\theta_\text{head}$$ sich während der aufgabenspezifischen Anpassung in der Regel viel schneller verändert als $$\theta_\text{backbone}$$. ANIL aktualisiert daher explizit nur noch $$\theta_\text{head}$$ während der $$T$$-Anpassungsschritte und reduziert so den Rechenaufwand.
Reptile (Nichol et al., 2018): Ebenfalls mit dem Ziel der Skalierbarkeit und dem Wegfall der Notwendigkeit von Ableitungen zweiter Ordnung vereinfacht Reptile die Iterationsformel gegenüber MAML, indem es die Meta-Learning-Gradientenrichtung $$$nabla_\theta\mathcal{L}_\text{meta}$$ durch die Richtung $$(\theta_T-\theta_0)$$ vom Anfang bis zum Ende der $$T$$-Anpassungsschritte ersetzt.
Meta-SGD (Li et al., 2017), Alpha-MAML (Behl et al., 2019), ALFA (Baik et al., 2020): Mehrere andere Varianten kombinieren MAML mit Ideen zum Meta-Lernen zusätzlicher Hyperparameter, insbesondere der Anpassungs-Lernrate $$\alpha$$ und der Meta-Lernrate $$\beta$$, wodurch ein Teil der manuellen Auswahl von Parametern entfällt, die beim Standard MAML erforderlich ist.
Welches sind die aktuellen Herausforderungen und zukünftigen Richtungen des Meta-Learnings?
Während das herkömmliche überwachte Lernen in der Regel einen großen gelabelten Datensatz erfordert, kann das Meta-Learning mit viel weniger gelabelten Stichproben pro Aufgabe auskommen. Dies basiert jedoch auf der Annahme, dass eine ausreichende Anzahl von Meta-Trainingsaufgaben mit ausreichender, aber nicht zu großer Aufgabenvariabilität zur Verfügung steht. Dies ist nicht immer der Fall, und qualitativ hochwertige Meta-Trainingsdaten sind in vielen Anwendungen schwer zu bekommen. Wenn die Aufgabenvariabilität in den Trainingsdaten zu gering ist, dann wird ein meta-gelerntes System schließlich in der Lage sein, einzelne Aufgaben ohne weitere aufgabenspezifische Anpassung zu lösen. In diesem Fall "sättigt" das Meta-Lernen und das System erreicht nicht sein Potenzial, sich flexibel an unbekannte Aufgaben anzupassen oder auf leicht abweichende Aufgaben zu generalisieren (Meta-Overfitting). Wenn andererseits die Variabilität der Aufgaben zu groß ist, lassen sich die aus einer Aufgabe gewonnenen Erkenntnisse möglicherweise nicht ausreichend gut auf eine andere Aufgabe übertragen. In diesem Fall könnte ein einzelnes meta-gelerntes System nicht in der Lage sein, adaptiv eine hohe Genauigkeit bei allen Aufgaben zu erreichen, und tatsächlich könnte das Erreichen dieses Ziels sogar seine Leistung bei allen Aufgaben behindern (Meta-Underfitting). Ein ähnliches Phänomen wurde auch beim Multi-Task-Lernen beobachtet und analysiert, ist aber im Kontext des Meta-Lernens noch nicht gut untersucht.
Eine weitere Herausforderung beim Meta-Learning ist der Rechenaufwand während der Meta-Learning-Phase (Pre-Training) (im Gegensatz zur endgültigen Aufgabenanpassung und Inferenz, die rechnerisch viel günstiger sein soll). Dies ist ganz klar erkennbar, wenn man die obige zweistufige Optimierungsformulierung und insbesondere MAML betrachtet: Es ist rechenaufwändiger als das standardmäßige überwachte Training mittels SGD, sowohl in Bezug auf die Zeit (jede Aktualisierung in der äußeren Schleife erfordert mehrere Aktualisierungsschritte in der inneren Schleife) als auch in Bezug auf den Speicher (Aktualisierungen in der äußeren Schleife erfordern Ableitungen zweiter Ordnung und die automatische Differenzierung durch Backpropagation über alle Schritte in der inneren Schleife erfordert die Speicherung aller Zwischenergebnisse). Wir haben bereits einige MAML-Varianten diskutiert, die darauf abzielen, einige dieser Herausforderungen zu umgehen.
Eine interessante Beobachtung ist schließlich, dass Meta-Learning-Methoden (die darauf abzielen, Metainformationen über Lernalgorithmen zu erlernen) selbst datengesteuerte und somit gelernte Algorithmen sind, die über einen eigenen Satz von Hyperparametern und einstellbare Steuerungsparameter verfügen, die als Metainformationen über ein Meta-Lernsystem beigefügt werden könnten. Dies wirft die Frage auf: Warum sollte man bei der "einfachen" Meta-Learning-Ebene stehen bleiben? Obwohl es aufgrund des Mangels an geeigneten Daten und Rechenressourcen meist als unpraktisch angesehen wird, ist es prinzipiell denkbar, die Meta-Learning-Idee auf weitere Meta-Ebenen auszudehnen - man denke an Meta-Meta-Learning (Lernen über das Lernen zu Lernen).
Fazit
Das Interesse an Meta-Learning auf der Grundlage neuronaler Netze hat zugenommen, insbesondere in Anwendungsbereichen, in denen nur wenige aufgabenspezifische Daten zur Verfügung stehen. Der Grundgedanke des Meta-Learning ist die Nutzung von Metainformationen, die aus den Lernprozessen über mehrere verwandte Aufgaben hinweg gesammelt werden, um das individuelle Lernen bei all diesen Aufgaben zu verbessern (Lernen zu lernen). Dies wurde ursprünglich durch die Art und Weise motiviert, wie Menschen in der Lage sind, schnell zu lernen, indem sie auf lebenslange frühere Erfahrungen zurückgreifen und im Gegensatz zu traditionellen überwachten maschinellen Lernsystemen nur sehr wenige Beispieldaten benötigen, um ein neues Konzept zu lernen und zu verstehen. Es wurden verschiedene Ansätze für das Meta-Lernen durch maschinelles Lernen vorgeschlagen, von denen wir eine Auswahl ausführlicher erörtert haben. Dies ist immer noch ein sehr aktives Forschungsgebiet, und unser kurzer Überblick erhebt keineswegs den Anspruch, eine erschöpfende Zusammenfassung zu sein. Es gibt viele offene Fragen und Möglichkeiten für Anwendungen des Meta-Learnings, und wir ermutigen jeden, das Feld des Meta-Learnings weiter zu erforschen.
Frequently Asked Questions
Wie hängt das Transfer-Learning mit dem Meta-Learning zusammen?
Beim Transfer-Learning wird das Wissen aus einer Aufgabe (oft recht allgemein mit einem großen gelabelten Datensatz) auf eine andere Aufgabe (oft spezifischer mit weniger gelabelte Daten) übertragen. Dies geschieht in der Regel durch die Verwendung der vortrainierten Modellparameter aus der allgemeinen Aufgabe als Initialisierung für die Feinabstimmung der Modellparameter für die spezifische Aufgabe. Das Meta-Learning hingegen konzentriert sich auf Lernstrategien zur schnellen Anpassung eines Modells an mehrere gleichermaßen spezifische Aufgaben.
Was hat Multi-Task-Learning mit Meta-Learning zu tun?
Sowohl das Multi-Task- als auch das Meta-Lernen zielen darauf ab, die Leistung eines gelernten Modells zu verbessern, indem gemeinsame Erkenntnisse aus mehreren verwandten Aufgaben genutzt werden. Der Hauptunterschied besteht darin, dass beim Multi-Task-Lernen normalerweise alle Aufgaben gleichzeitig gelernt werden, während beim Meta-Learning sequenzielle Lernepisoden mit aufgabenspezifischen Anpassungen möglich sind.
Wie hängt das Ensemble-Lernen mit dem Meta-Lernen zusammen?
Ensemble-Learning-Methoden zielen darauf ab, die Vorhersageleistung für eine einzelne Aufgabe zu verbessern, indem mehrere gelernte Systeme (sogenannte Basis-Lerner) zu einem leistungsfähigeren Modell kombiniert werden. Andererseits zielt das Meta-Learning darauf ab, die Vorhersageleistung zu verbessern, indem es lernt, wie ein Modell für verschiedene verwandte Aufgaben angepasst werden kann. In einigen Fällen kann Meta-Learning in Kombination mit Ensemble-Strategien eingesetzt werden, z. B. Meta-Lernen, wie man mehrere Basis-Lernsysteme am besten kombiniert.
Wie hängt AutoML mit Meta-Lernen zusammen?
Automatisiertes maschinelles Lernen (AutoML) bezieht sich auf den allgemeinen Prozess der Automatisierung von Anwendungen des maschinellen Lernens. Meta-Learning kann nur als eine der möglichen Techniken betrachtet werden, die im Rahmen von AutoML eingesetzt werden. AutoML verwendet jedoch auch viele andere Ansätze wie die (Bayes'sche) Hyperparameter-Optimierung, die automatische Merkmalsextraktion und -auswahl oder die neuronale Architektursuche (NAS).
References
Baik, S., Choi, M., Choi, J., Kim, H., & Lee, K. M. (2020). Meta-Learning with Adaptive Hyperparameters. Advances in Neural Information Processing Systems, 33.
Behl, H. S., Baydin, A. G., & torr, P. H.S. (2019). Alpha MAML: Adaptive Model-Agnostic Meta-Learning [arXiv:1905.07435].
Bengio, Y., Bengio, S., & Cloutier, J. (1991). Learning a synaptic learning rule. IJCNN-91-Seattle International Joint Conference on Neural Networks, ii, 969.
Finn, C., Abbeel, P., & Levine, S. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. Proceedings of the 34th International Conference on Machine Learning, PMLR 70, 1126-1135.
Lemke, C., Budka, M., & Gabrys, B. (2015). Metalearning: a survey of trends and technologies. Artificial intelligence review, 44(1), 117-130.
Li, Z., Zhou, F., Chen, F., & Li, H. (2017). Meta-SGD: Learning to Learn Quickly for Few-Shot Learning [arXiv:1707.09835].
Mishra, N., Rohaninejad, M., Chen, X., & Abbeel, P. (2018). A Simple Neural Attentive Meta-learner. International Conference on Learning Representations.
Nichol, A., Achiam, J., & Schulman, J. (2018). On First-Order Meta-Learning Algorithms [arXiv:1803.02999].
Raghu, A., Raghu, M., Bengio, S., & Vinyals, O. (2020). Rapid Learning or Feature Reuse? Towards Understanding the Effectiveness of MAML [arXiv:1909.09157].
Santoro, A., Bartunov, S., Botvinick, M., Wierstra, D., & Lillicrap, T. (2016). Meta-learning with memory-augmented neural networks. ICML'16: Proceedings of the 33rd International Conference on International Conference on Machine Learning, 48, 1842-1850.
Schmidhuber, J. (1987). Evolutionary Principles in Self-Referential Learning [Diploma Thesis]. Technische Universität München, Germany.
Snell, J., Swersky, K., & Zemel, R. (2017). Prototypical Networks for Few-shot Learning. Advances in Neural Information Processing Systems, 30.
Sung, F., Yang, Y., Zhang, L., Xiang, T., Torr, P. H. S., & Hospedales, T. M. (2018). Learning to Compare: Relation Network for Few-Shot Learning. IEEE Conference on Computer Vision and Pattern Recognition, 1199-1208.
Vinyals, O., Blundell, C., Lillicrap, T., Kavukcuoglu, K., & Wierstra, D. (2016). Matching Networks for One Shot Learning. Advances in Neural Information Processing Systems, 29.