1. Einführung
Zuletzt aktualisiert:28.03.2022
Maschinelles Lernen
Maschinelles Lernen ist ein Bereich, der sich in rasantem Tempo weiterentwickelt. Täglich werden neue Forschungsergebnisse und Möglichkeiten veröffentlicht, um Anwendungsfälle zu ermöglichen, die vorher nicht möglich waren.
Diese Releases haben normalerweise ein Modell zur Folge. Modelle sind so verständlich, dass sehr lange mathematische Gleichungen, die eine Eingabe (z. B. ein Bild) gegeben haben, ein Ergebnis ausgeben (z. B. eine Klassifizierung).
- Wie gehen Sie vor, wenn Sie eines dieser neuen Modelle mit Ihren eigenen Daten verwenden möchten?
- Wie können Sie von diesen hochmodernen Modellen für Ihren Anwendungsfall oder Ihre App profitieren?
In diesem Codelab erfahren Sie, wie Sie ML-Modelle ganz einfach an Ihre eigenen Daten anpassen.
Das Erstellen und Trainieren von Modellen für maschinelles Lernen bringt viele Herausforderungen mit sich:
- Das nimmt viel Zeit in Anspruch.
- Es werden große Datenmengen benötigt.
- Erfordert Fachkenntnisse in Bereichen wie Mathematik und Statistik.
- Ressourcenintensiv: Das Training einiger Modelle kann Tage dauern.
Das Erstellen neuer Modellarchitekturen nimmt viel Zeit in Anspruch und erfordert möglicherweise viele Experimente und Jahre Erfahrung. Aber was wäre, wenn Sie all dieses Wissen für Ihre eigenen Daten nutzen könnten, indem Sie hochmoderne Forschung an Ihr eigenes Problem anpassen? Das ist mit einer Technik namens Lerntransfer möglich.
In diesem Codelab erfahren Sie, wie Lerntransfers funktionieren, warum sie funktioniert und wann sie verwendet werden.
Aufgaben in diesem Lab
- Was Lerntransfers sind und wann sie eingesetzt werden sollten
- So verwenden Sie Lerntransfers.
- So stimmen Sie Modelle ab.
- TensorFlow Lite Model Maker verwenden
- TensorFlow Hub verwenden
Voraussetzungen
- Der gesamte Code wird mit Google Colaboratory ausgeführt, sodass Sie auf Ihrem Computer nichts installieren müssen. Sie benötigen nur Internetzugriff und ein Google-Konto, um sich in Colab anzumelden.
- Grundkenntnisse in TensorFlow und der Keras API
- Kenntnisse in Python.
Auch wenn Sie keine Grundkenntnisse in TensorFlow oder maschinellem Lernen haben, können Sie sich mit Lerntransfers vertraut machen. Nächsten Schritt „Was ist Lerntransfer“ lesen um die Theorie hinter der Technik zu erfahren, und fahren Sie dann mit „Lerntransfer mit Model Maker“ fort. Wenn Sie sich eingehender mit dem Prozess befassen möchten, finden Sie das in den Abschnitten zur Lerntransfer mit TensorFlow Hub.
2. Was ist Lerntransfer?
Ein vortrainiertes Modell ist ein gespeichertes Netzwerk, das zuvor mit einem großen Dataset trainiert wurde, in der Regel im Rahmen einer umfassenden Bildklassifizierung. Sie können das vortrainierte Modell entweder unverändert verwenden oder es durch Lerntransfer an eine bestimmte Aufgabe anpassen.
Die Intuition hinter Lerntransfers für die Bildklassifizierung besteht darin, dass ein Modell, das mit einem ausreichend großen und allgemeinen Dataset trainiert wird, effektiv als generisches Modell der visuellen Welt dient. Sie können diese erlernten Merkmalzuordnungen dann nutzen, ohne von Grund auf neu beginnen zu müssen, indem Sie ein großes Modell mit einem großen Dataset trainieren.
Es gibt zwei Möglichkeiten, ein Modell für maschinelles Lernen anzupassen
- Featureextraktion: Verwenden Sie die Darstellungen, die von einem vorherigen Netzwerk erlernt wurden, um wichtige Merkmale aus neuen Beispielen zu extrahieren. Sie fügen dem vortrainierten Modell einfach einen neuen Klassifikator hinzu, der von Grund auf trainiert wurde. So können Sie die zuvor gelernten Feature Maps für das Dataset wiederverwenden. Sie müssen nicht das gesamte Modell (neu) trainieren. Das Basisfaltungsnetzwerk enthält bereits Merkmale, die allgemein zum Klassifizieren von Bildern nützlich sind. Der letzte Klassifizierungsteil des vortrainierten Modells ist jedoch spezifisch für die ursprüngliche Klassifizierungsaufgabe und folglich für die Klassen, auf denen das Modell trainiert wurde.
- Feinabstimmung: Heben Sie die Fixierung einiger der oberen Ebenen einer fixierten Modellbasis auf und trainieren Sie gemeinsam die neu hinzugefügten Klassifikatorebenen und die letzten Ebenen des Basismodells. So können wir „Feinabstimmung“ übergeordneten Merkmalsdarstellungen im Basismodell zu erstellen, um sie für die jeweilige Aufgabe relevanter zu machen.
Die Featureextraktion lässt sich schneller trainieren, doch mit der Optimierung können Sie bessere Ergebnisse erzielen.
Sie werden beides (Feature-Extraktion und Feinabstimmung) anhand zweier unterschiedlicher Methoden für die Lerntransfers ausprobieren:
- Die TensorFlow Lite Model Maker-Bibliothek erledigt automatisch die meisten Datenpipeline- und Modellerstellung, was den Prozess erheblich vereinfacht. Das resultierende Modell kann außerdem leicht exportiert und auf einem Mobilgerät und im Browser verwendet werden.
- TensorFlow Hub-Modelle nutzen das umfangreiche Repository von Modellen für maschinelles Lernen, die auf TensorFlow Hub verfügbar sind. Forscher und die Gemeinschaft tragen mithilfe dieser Modelle dazu bei, dass hochmoderne Modelle viel schneller und in größerer Vielfalt verfügbar sind.
3. Lerntransfer mit Model Maker
Sie kennen nun die Idee hinter Lerntransfers. Als Nächstes wird die TensorFlow Lite Model Maker-Bibliothek verwendet, um dies ganz einfach umzusetzen.
Die TensorFlow Lite Model Maker-Bibliothek ist eine Open-Source-Bibliothek, die den Lernprozess vereinfacht und den Prozess für Nicht-ML-Entwickler wie Mobil- und Webentwickler deutlich einfacher macht.
Das Colab-Notebook führt Sie durch die folgenden Schritte:
- Laden Sie die Daten.
- Daten aufteilen.
- Modell erstellen und trainieren
- Modell bewerten
- Modell exportieren.
Nach diesem Schritt können Sie den Lerntransfer mit Ihren eigenen Daten genau nach demselben Verfahren durchführen.
Colaboratory
Als Nächstes trainieren Sie das benutzerdefinierte Modell in Google Colab.
Es dauert etwa 15 Minuten, um die Erklärung durchzugehen und die Grundlagen des Notebooks zu verstehen.
Vorteile:
- Einfache Möglichkeit zum Anpassen von Modellen.
- Es sind keine Kenntnisse über TensorFlow oder die Keras API erforderlich.
- Open-Source-Tool, das geändert werden kann, wenn der Nutzer etwas Bestimmtes benötigt, das noch nicht implementiert wurde.
- Exportiert das Modell direkt zur Ausführung auf Mobilgeräten oder im Browser.
Nachteile
- Es gibt weniger Konfigurationsmöglichkeiten als bei der Erstellung der gesamten Pipeline und des eigenen Modells, wie bei den beiden vorherigen Methoden.
- Auch bei der Auswahl des Basismodells können nicht alle Modelle als Basis verwendet werden.
- Nicht geeignet für große Datenmengen, bei denen die Datenpipeline komplexer ist.
4. Modell auf TensorFlow Hub finden
Am Ende dieses Abschnitts können Sie:
- Suchen Sie Modelle für maschinelles Lernen auf TensorFlow Hub.
- Informationen zu Sammlungen.
- Informiere dich über verschiedene Arten von Modellen.
Für den Lerntransfer müssen zwei Dinge beachtet werden:
- Daten, z. B. Bilder von Motiven, die Sie erkennen möchten.
- Ein Basismodell, das Sie an Ihre Daten anpassen können.
Der Datenteil ist in der Regel geschäftsabhängig, aber der einfachste Weg ist es, viele Fotos von dem zu machen, was Sie erkennen möchten. Aber was ist mit dem Basismodell? Wo findest du eins? ist TensorFlow Hub die ideale Lösung.
TensorFlow Hub ist das Modell-Repository für Ihre TensorFlow-Modelle.
Sie können die Dokumentation Tausender von Modellen durchsuchen und lesen, die Ihnen sofort zur Verfügung stehen und viele von ihnen für Lerntransfer und -optimierung bereit sind.
Modell suchen
Führen wir zuerst eine einfache Suche nach Modellen durch, die Sie auf TensorFlow Hub verwenden können, die Sie später in Ihrem Code verwenden können.
Schritt 1: Öffnen Sie in Ihrem Browser die Website tfhub.dev.
Für Lerntransfers in der Bilddomain benötigen wir Featurevektoren. Featurevektoren sind wie Klassifizierungsmodelle, haben aber keinen Klassifizierungskopf.
Featurevektoren können Bilder in eine numerische Darstellung im N-ten Bereich umwandeln, wobei N die Anzahl der Dimensionen der Ausgabeebene des Modells ist.
In TFHub können Sie speziell nach Featurevektoren suchen, indem Sie auf eine bestimmte Karte klicken.
Sie können auch mit dem Filter auf der linken Seite nach dem Namen eines Modells suchen, damit nur Image feature vectors
angezeigt wird.
Bei den Karten mit blauen Symbolen handelt es sich um Sammlungen von Modellen. Wenn Sie auf eine Bildsammlung klicken, stehen Ihnen viele ähnliche Modelle zur Auswahl. Wählen wir die Bildersammlung aus.
Scrollen Sie nach unten und wählen Sie MobileNet V3
aus. Jeder der Featurevektoren reicht aus.
Auf der Detailseite des Modells können Sie die gesamte Dokumentation für das Modell lesen, Code-Snippets ansehen, um das Modell auszuprobieren, oder es sogar direkt auf einem Colab-Notebook testen.
Vorerst benötigen Sie nur die URL oben. Das ist der Modell-Handle und die Möglichkeit, ganz einfach über die TensorFlow Hub-Bibliothek auf ein Modell zuzugreifen.
5. Lerntransfer mit TensorFlow Hub
Nachdem Sie nun ein Modell ausgewählt haben, können Sie es anpassen, indem Sie es mit der Methode KerasLayer aus der TensorFlow Hub-Bibliothek laden.
Mit dieser Methode wird ein Modell so geladen, dass es als Ebene in Ihrem Modell verwendet werden kann. So können Sie Ihr Modell auf der Grundlage dieser Ebene erstellen.
Wenn Sie sich mit der Verwendung von Model Maker vertraut gemacht haben, wurden Ihnen bisher alle internen Elemente aus Gründen der Übersichtlichkeit verborgen. Nein, Sie sehen, was Model Maker hinter den Kulissen macht.
Colaboratory
Als Nächstes trainieren Sie das benutzerdefinierte Modell in Google Colab.
Es dauert etwa 20 Minuten, um die Erklärung durchzugehen und die Grundlagen des Notebooks zu verstehen.
Vorteile:
- Tausende verfügbare Modelle, die von Forschern und der Community bereitgestellt und mit einer Vielzahl von Datasets trainiert wurden.
- Modelle für alle Aufgaben wie Vision, Text und Audio.
- Es ist einfach, mit verschiedenen ähnlichen Modellen zu experimentieren. Zum Ändern des Basismodells muss möglicherweise nur ein String geändert werden.
Nachteile
- Es wird noch etwas TensorFlow/Keras-Fachwissen benötigt, um die Modelle zu verwenden.
Wenn Sie noch tiefer in das Thema eintauchen möchten, können Sie auch Lerntransfer mit der Keras-Anwendung durchführen. Dieser Prozess ähnelt der Verwendung von TensorFlow Hub, enthält aber nur Core-TensorFlow APIs.
6. Glückwunsch
Herzlichen Glückwunsch. Sie haben gelernt, was Lerntransfers sind und wie Sie diese Funktion auf Ihre eigenen Daten anwenden können.
In diesem Codelab haben Sie gelernt, wie Sie Modelle für maschinelles Lernen mithilfe einer Technik namens „Lerntransfer“ an Ihre eigenen Daten anpassen.
Sie haben zwei Formen von Lerntransfers ausprobiert:
- Mit einem Tool wie TensorFlow Lite Model Maker
- Mit einem Featurevektor aus TensorFlow Hub
Beide Optionen haben Vor- und Nachteile sowie zahlreiche mögliche Konfigurationen für Ihre speziellen Anforderungen.
Außerdem haben Sie gelernt, dass Sie noch einen Schritt weiter gehen und die Modelle optimieren können, indem Sie die Gewichtung etwas weiter anpassen, damit sie besser zu Ihren Daten passen.
Beide Optionen ermöglichen eine Feinabstimmung des Modells.
Lerntransfer und Feinabstimmung sind nicht nur für bildbezogene Modelle verfügbar. Da die Idee darin besteht, eine erlernte Darstellung einer Domain zur Feinabstimmung Ihres Datasets zu verwenden, kann sie auch für Text- und Audiodomains verwendet werden.
Nächste Schritte
- Probieren Sie es mit Ihren eigenen Daten aus.
- Teilen Sie uns mit, was Sie TensorFlow erstellen, und taggen Sie es in den sozialen Medien mit Ihren Projekten.
Weitere Informationen
- Weitere Informationen zur Feinabstimmung für hochmoderne Modelle wie BERT finden Sie unter Ein BERT-Modell optimieren.
- Weitere Informationen zu Lerntransfers für Audiomodelle finden Sie unter Lerntransfer mit YAMNet für die Klassifizierung von Umgebungsgeräuschen.