Inhaltsverzeichnis
1 Computer-Vision-Lernen mit wenigen Schüssen
3 Methode zum Finden optimaler Anfangsparameterwerte: MAML
4 Entfernungsmessmethoden: Siamese Network, ProtoNet, RN
5 Andere Methoden, die auf das Wenig-Schuss-Lernen angewendet werden
Heute werde ich für Sie die Methode des Meta-Lernens zur Lösung von Problemen im Bereich Computer Vision zusammenfassen. Zuerst werde ich die Konzepte des Wenig-Schuss-Lernens und des Meta-Lernens vorstellen und dann die Prinzipien und Codes zum Finden optimaler Initialen vorstellen Parameterwerte und Entfernungsmessmethoden . Ich hoffe, Sie können nach dem Lesen des Artikels loslegen. Üben Sie, um reale Probleme zu lösen.
1 Computer-Vision-Lernen mit wenigen Schüssen
Die Lösung von Computer-Vision-Problemen im industriellen Bereich, beispielsweise bei Arbeiten im Zusammenhang mit der Qualitätsprüfung, erfordert normalerweise eine kleine Anzahl von Proben. Zu diesem Zeitpunkt ist eine Lernmethode mit wenigen Schüssen erforderlich.
Few-Shot-Lernen (Few-Shot-Learning) oder K-Shot-Lernen (K-Shot-Lernen) bezieht sich auf das Lernen mit weniger Datenpunkten, wobei k die Anzahl der Datenpunkte in jeder Kategorie des Datensatzes darstellt.
2 Yuan lernen
Beim Meta-Lernen wird gelernt, wie man lernt, sodass Modelle so gestaltet werden können, dass sie sich schnell an neue Aufgaben anpassen , insbesondere an solche, die noch nie zuvor gesehen wurden.
Meta-Lernen kann mit weniger gekennzeichneten Daten erreicht werden , indem Ähnlichkeiten zwischen Aufgaben gelernt werden, anstatt jede Aufgabe einzeln zu lernen.
Meta-Learning kann gemeinsames Wissen zwischen Aufgaben erlernen und verfügt über bessere Generalisierungsfähigkeiten . Meta-Learning-Modelle können das bereits erlernte Wissen bei der Bewältigung neuer Aufgaben nutzen, ohne bei Null anfangen zu müssen.
Der Lernprozess und der Rahmen des Meta-Lernens sind in der folgenden Abbildung dargestellt
Bildquelle: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/meta_v3.pdf
Vielen Dank an Professor Li Hongyi von der National Taiwan University! Sie können sich die Erklärung von Professor Li Hongyi ansehen, Abschnitt 15 2021 – Meta-Lernen (1) – Meta-Lernen und maschinelles Lernen haben die gleichen drei Schritte_bilibili_bilibili , ich werde sie nicht wiederholen.
Methode | Lernziel | Vorteil | Typischer Vertreter | Anwendbare Szene |
---|---|---|---|---|
Lernen Sie optimale Anfangsparameterwerte | Durch das Training an mehreren Aufgaben wird eine anfängliche Parametereinstellung erlernt, die mit wenigen Gradientenaktualisierungen schnell an neue Aufgaben angepasst werden kann. | MAML kann mit jedem Modell verwendet werden, solange die Parameter des Modells über einen Gradientenabstieg aktualisiert werden können | MAML (Modellunabhängiges Meta-Lernen) Meta-SGD Reptil |
Wenig-Schuss-Lernen Verstärkungslernen |
Basierend auf Optimierung | Lernen Sie einen Optimierer kennen, der sich schnell an neue Aufgaben anpassen kann | Lernen Sie direkt die Zuordnung von der Verlustfunktion zur Modellaktualisierung, um eine schnelle Anpassung an neue Aufgaben zu erreichen | Optimierung als Modell für Few-Shot-Learning Lernen durch Gradientenabstieg durch Gradientenabstieg |
Wenig-Schuss-Lernen |
Basierend auf Metriken | Lernen Sie eine Distanzmetrik kennen, die zum Vergleichen von Stichproben in neuen Aufgaben verwendet werden kann | Nutzen Sie alle Support-Set-Beispiele zur Klassifizierung von Abfragesatz-Beispielen, um eine schnelle Anpassung an neue Aufgaben zu erreichen | Siamesisches neuronales Netzwerk Beziehungsnetzwerk ProtoNet (Prototypische Netzwerke) |
Bildklassifizierung und Objekterkennung |
modellbasiert | Lernen Sie ein Modell, das die Ausgabe einer neuen Aufgabe vorhersagt |
Vergangene Erfahrungen können gespeichert und abgerufen werden, was eine schnelle Anpassung an neue Aufgaben ermöglicht | Speichererweiterte neuronale Netze |
Wenig-Schuss-Lernen Sequenzvorhersage Verstärkungslernen |
Lernen Sie die Netzwerkstruktur | Erlernen Sie eine Netzwerkstruktur, die bei neuen Aufgaben eine optimale Leistung erzielt | Suchen Sie automatisch nach optimalen Netzwerkstrukturen, um die Komplexität des manuellen Entwurfs von Netzwerkstrukturen zu vermeiden. | Suche nach neuronaler Architektur | Automatisches maschinelles LernenAutoML |
Lehrer Li Hongyi fasste auch die Anwendungsszenarien des Meta-Lernens zusammen
Bildquelle: http://speech.ee.ntu.edu.tw/~tlkagk/meta_learning_table.pdf
3 Methode zum Finden optimaler Anfangsparameterwerte: MAML
MAML versucht, eine Reihe von Modellparametern zu finden, die sich mit einer kleinen Anzahl von Gradientenaktualisierungsschritten schnell an neue Aufgaben anpassen können.
3.1 Algorithmusschritte
- Zunächst beginnen wir für jede Aufgabe mit den Parametern des Modells und berechnen die Verlustfunktion.
- Anschließend werden die Parameter des Modells mithilfe der Gradientenabstiegsmethode aktualisiert, um die Verlustfunktion zu minimieren.
- Wiederholen Sie diesen Vorgang mehrmals für alle Aufgaben (dies wird als innere Schleife bezeichnet).
- Anschließend wird der durchschnittliche Verlust über alle Aufgaben berechnet und dieser Verlust wird zur Aktualisierung der Parameter des Modells verwendet (dies wird als äußere Schleife bezeichnet).
- Dieser Vorgang wird wiederholt, bis die Leistung des Modells ein zufriedenstellendes Niveau erreicht.
3.2 Code: Verwenden Sie MAML und FO-MAML sowie Aufgabenerweiterung, um die Few-Shot-Klassifizierung
Die Herausforderung bei MAML besteht darin, dass Gradienten zweiter Ordnung berechnet werden müssen, was rechenintensiv sein kann. Es gibt einige Varianten wie FOMAML (MAML erster Ordnung) und REPTILE, die nur den Gradienten erster Ordnung berechnen müssen, wodurch die Rechenkomplexität verringert wird.
- Quellcode: https://github.com/virginiakm1988/ML2022-Spring/blob/main/HW15/HW15.ipynb
- Folien zur Beschreibung des Quellcodes: https://github.com/virginiakm1988/ML2022-Spring/blob/main/HW15/HW15.pdf
- Unterstützendes Übungsanleitungsvideo: 2022 – Hausaufgabenanleitung HW15_bilibili_bilibili
- MAML-Code von Grund auf erstellen:
4 Entfernungsmessmethoden: Siamese Network, ProtoNet, RN
4.1 Siamesisches Netzwerk
Wird hauptsächlich zur Lösung von Lern- und Ähnlichkeitsvergleichsproblemen mit wenigen Schüssen verwendet. In der Computer Vision werden siamesische Netzwerke häufig für Aufgaben wie Gesichtserkennung und Signaturerkennung verwendet.
Algorithmusschritte
- Erstens besteht ein siamesisches Netzwerk aus zwei identischen neuronalen Netzwerken, die dieselben Parameter haben.
- Anschließend wird ein Probenpaar (z. B. zwei Bilder) in die beiden Netzwerke eingegeben und jedes Netzwerk gibt einen Merkmalsvektor aus.
- Als nächstes wird der Abstand oder die Ähnlichkeit zwischen diesen beiden Merkmalsvektoren berechnet.
- Abschließend wird eine Klassifizierung oder Regression basierend auf dieser Distanz oder Ähnlichkeit durchgeführt. Wenn der Abstand beispielsweise einen bestimmten Schwellenwert unterschreitet, werden die beiden Stichproben als zur gleichen Kategorie gehörend betrachtet.
Siamesischer Netzwerkcode
https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/tree/master/Chapter02
4.2 Prototypische Netzwerke
Das Prototypennetzwerk klassifiziert Abfragepunkte (neue Punkte) basierend auf der Entfernung zwischen dem Klassenprototyp und dem Abfragepunkt, indem es eine Prototypdarstellung jeder Klasse erstellt.
Algorithmusschritte
- Zunächst wird für jede Kategorie der Mittelwert der Merkmalsvektoren aller Stichproben unter der Kategorie berechnet. Dieser Mittelwertvektor wird als „Prototyp“ der Kategorie bezeichnet.
- Anschließend wird für eine neue Stichprobe der Abstand zwischen ihrem Merkmalsvektor und den Prototypen aller Kategorien berechnet und sie in die Kategorie eingeteilt, die durch den nächstgelegenen Prototyp repräsentiert wird.
- Während des Trainingsprozesses werden die Parameter des Modells aktualisiert, indem eine Zielfunktion basierend auf dem Abstand zwischen neuen Proben und ihren entsprechenden Prototypen optimiert wird.
ProtoNet-Code
4.3 Beziehungsnetzwerk
Das Beziehungsnetzwerk ist ein Meta-Lernalgorithmus, der speziell für die Bewältigung von Lernproblemen mit wenigen Schüssen entwickelt wurde. Es führt eine Klassifizierung durch, indem es ein tiefes neuronales Netzwerk lernt, um die Beziehungen zwischen Proben zu messen. Der Vorteil relationaler Netzwerke besteht darin, dass sie eine beliebige Anzahl von Support-Set-Beispielen und Query-Set-Beispielen verarbeiten können.
Algorithmusschritte
-
Merkmalsextraktion: Verwenden Sie zunächst ein tiefes neuronales Netzwerk (z. B. ein Faltungs-Neuronales Netzwerk), um die Merkmale der Stichprobe zu extrahieren. Nennen Sie dieses Netzwerk einen Feature-Extraktor.
-
Berechnen Sie den Beziehungswert: Die Merkmale jeder Stichprobe im Unterstützungssatz werden dann mit den Merkmalen der Stichprobe im Abfragesatz gepaart, um ein Merkmalspaar zu bilden. Jedes Merkmalspaar wird in ein anderes tiefes neuronales Netzwerk eingespeist, das als relationales Netzwerk bezeichnet wird. Die Ausgabe des Beziehungsnetzwerks ist ein Beziehungswert, der die Ähnlichkeit der beiden Stichproben in diesem Merkmalspaar darstellt.
-
Klassifizierung: Abschließend werden die Stichproben im Abfragesatz in die Kategorie eingeteilt, zu der die Stützsatzstichprobe mit der höchsten Beziehungsbewertung gehört.
Beachten Sie, dass das Training relationaler Netzwerke eine große Menge an Rechenressourcen erfordert, da die Beziehungsbewertung zwischen jeder Stichprobe im Unterstützungssatz und jeder Stichprobe im Abfragesatz berechnet werden muss.
RN-Code
5 Andere Methoden, die auf das Wenig-Schuss-Lernen angewendet werden
Neben dem Meta-Lernen können auch Methoden wie Datenverbesserung, Transferlernen, selbstüberwachtes Lernen und Zero-Shot-Lernen auf das Wenig-Shot-Lernen angewendet werden.
Selbstüberwachtes Lernen kann sich mein Video ansehen
Folien hier
6 Referenzen
- Meta-Learning: Grundlagen und Anwendungen (hergestellt von Bowen Viewpoint)
- Python Meta-Learning: Implementierung allgemeiner künstlicher Intelligenz (Indien) Unterstützender Code von Sudarsan Ravishanilan https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python Meta-Lernen mit One-Shot-Learning, MAML, Reptile und Meta-SGD mit TensorFlow
- Meta-Lernen | Papiere mit Code
- Ein umfassender Überblick und eine Übersicht über die jüngsten Fortschritte im Meta-Learning https://arxiv.org/pdf/2004.11149.pdf
- Yisheng Song , Ting Wang , Subrota K Mondal , Jyoti Prakash Sahoo . Eine umfassende Übersicht über Few-Shot-Lernen: Entwicklung, Anwendungen, Herausforderungen und Chancen . https://arxiv.org/pdf/2205.06743.pdf
- Chelsea Finn, Pieter Abbeel und Sergey Levine. (2017). Modellunabhängiges Meta-Lernen zur schnellen Anpassung tiefer Netzwerke.
- Mengye Ren, Eleni Triantafillou , Sachin Ravi , Jake Snell , Kevin Swersky , Joshua B. Tenenbaum , Hugo Larochelle , Richard S. Zemel . Meta-Learning für die halbüberwachte Few-Shot-Klassifizierung .
- Aniruddh Raghu, Maithra Raghu, Samy Bengio und Oriol Vinyals. (2020). Schnelles Lernen oder Wiederverwendung von Funktionen? Auf dem Weg zum Verständnis der Wirksamkeit von MAML.
- https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/meta_v3.pdf