[Studiennotizen] Wie löst Meta-Learning das Problem des Wenig-Schuss-Lernens in der Computer Vision?

Inhaltsverzeichnis

1 Computer-Vision-Lernen mit wenigen Schüssen

2 Yuan lernen

3 Methode zum Finden optimaler Anfangsparameterwerte: MAML

3.1 Algorithmusschritte

3.2 Code: Verwenden Sie MAML, FO-MAML und Aufgabenerweiterung, um die Few-Shot-Klassifizierung abzuschließen

4 Entfernungsmessmethoden: Siamese Network, ProtoNet, RN

4.1 Siamesisches Netzwerk

Algorithmusschritte

Siamesischer Netzwerkcode

4.2 Prototypische Netzwerke

Algorithmusschritte

ProtoNet-Code

4.3 Beziehungsnetzwerk

Algorithmusschritte

RN-Code

5 Andere Methoden, die auf das Wenig-Schuss-Lernen angewendet werden

6 Referenzen


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

  1. Zunächst beginnen wir für jede Aufgabe mit den Parametern des Modells und berechnen die Verlustfunktion.
  2. Anschließend werden die Parameter des Modells mithilfe der Gradientenabstiegsmethode aktualisiert, um die Verlustfunktion zu minimieren.
  3. Wiederholen Sie diesen Vorgang mehrmals für alle Aufgaben (dies wird als innere Schleife bezeichnet).
  4. 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).
  5. 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.

https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter06/6.5%20Building%20MAML%20From%20Scratch.ipynb

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

  1. Erstens besteht ein siamesisches Netzwerk aus zwei identischen neuronalen Netzwerken, die dieselben Parameter haben.
  2. Anschließend wird ein Probenpaar (z. B. zwei Bilder) in die beiden Netzwerke eingegeben und jedes Netzwerk gibt einen Merkmalsvektor aus.
  3. Als nächstes wird der Abstand oder die Ähnlichkeit zwischen diesen beiden Merkmalsvektoren berechnet.
  4. 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

https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter03/3.3%20Omniglot%20Character%20set%20classification%20using%20Prototypical%20Network.ipynb

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

  1. 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.

  2. 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.

  3. 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

https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter04/4.5%20Building%20Relation%20Network%20Using%20Tensorflow.ipynb

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

[Thema 11: Verwendung selbstüberwachter Lernmethoden zur Lösung von Computer-Vision-Problemen] 1. Überblick und DINOv2-Prinzip

Folien hier

[Thema 11: Verwendung selbstüberwachter Lernmethoden zur Lösung von Computer-Vision-Problemen] 1. Übersicht und DINOv2_1sthalf.pdf

6 Referenzen

Guess you like

Origin blog.csdn.net/weixin_38575258/article/details/132706459