1. Einführung

Zuletzt aktualisiert: 28.03.2022
Maschinelles Lernen
Maschinelles Lernen ist ein Bereich, der sich rasant weiterentwickelt. Jeden Tag werden neue Forschungsergebnisse und Möglichkeiten veröffentlicht, die Anwendungsfälle ermöglichen, die zuvor nicht möglich waren.
Diese Releases führen in der Regel zu einem Modell. Modelle können als sehr lange mathematische Gleichungen betrachtet werden, die bei einer Eingabe (z. B. einem Bild) ein Ergebnis (z. B. eine Klassifizierung) ausgeben.
- Was ist, 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 in Ihrer App profitieren?
In diesem Codelab erfahren Sie, wie Sie auf einfache Weise Modelle für maschinelles Lernen an Ihre eigenen Daten anpassen können.
Das Erstellen und Trainieren von Modellen für maschinelles Lernen ist mit vielen Herausforderungen verbunden:
- Es dauert sehr lange.
- Hoher Datenverbrauch.
- Erfordern Fachwissen in Bereichen wie Mathematik und Statistik.
- Ressourcenintensiv: Das Training einiger Modelle kann Tage dauern.
Die Entwicklung neuer Modellarchitekturen ist sehr zeitaufwendig und erfordert möglicherweise viele Experimente und jahrelange Erfahrung. Was aber, wenn Sie all dieses Wissen nutzen und auf Ihre eigenen Daten anwenden könnten, indem Sie den aktuellen Forschungsstand einfach an Ihr eigenes Problem anpassen? Das ist mit einer Technik namens Lerntransfer möglich.
In diesem Codelab erfahren Sie, wie Sie Transfer Learning durchführen, warum es funktioniert und wann Sie es verwenden sollten.
Lerninhalte
- Was Lerntransfer ist und wann er eingesetzt wird.
- Lerntransfer verwenden
- Modelle abstimmen
- TensorFlow Lite Model Maker verwenden
- TensorFlow Hub verwenden
Voraussetzungen
- Der gesamte Code wird mit Google Colaboratory ausgeführt. Sie müssen also nichts auf Ihrem Computer installieren. Sie benötigen lediglich eine Internetverbindung und ein Google-Konto, um sich in Colab anzumelden.
- Grundkenntnisse von TensorFlow und der Keras API.
- Python-Kenntnisse
Wenn Sie keine Grundkenntnisse in TensorFlow oder maschinellem Lernen haben, können Sie trotzdem etwas über Transfer Learning erfahren. Lesen Sie den nächsten Schritt „Was ist Transfer Learning?“, um die Theorie hinter der Technik zu verstehen, und fahren Sie dann mit „Transfer Learning mit Model Maker“ fort. Wenn Sie sich genauer mit dem Prozess befassen möchten, finden Sie weitere Informationen in den Abschnitten zum Transfer Learning mit TensorFlow Hub.
2. Was ist Transfer Learning?
Ein vortrainiertes Modell ist ein gespeichertes Netzwerk, das zuvor mit einem großen Dataset trainiert wurde, in der Regel für eine umfangreiche Bildklassifizierungsaufgabe. Sie können das vortrainierte Modell entweder unverändert verwenden oder es mithilfe von Lerntransfer an eine bestimmte Aufgabe anpassen.
Die Idee hinter dem Transfer Learning für die Bildklassifizierung ist, dass ein Modell, das mit einem großen und allgemeinen Dataset trainiert wird, effektiv als generisches Modell der visuellen Welt dient. Sie können diese gelernten Feature-Maps dann nutzen, ohne ein großes Modell für ein großes Dataset von Grund auf trainieren zu müssen.
Es gibt zwei Möglichkeiten, ein Machine-Learning-Modell anzupassen:
- Feature-Extraktion: Verwenden Sie die Darstellungen, die von einem vorherigen Netzwerk gelernt wurden, um wichtige Features aus neuen Stichproben zu extrahieren. Sie fügen dem vortrainierten Modell einfach einen neuen Classifier hinzu, der von Grund auf neu trainiert wird. So können Sie die zuvor für das Dataset gelernten Feature-Maps wiederverwenden. Sie müssen das gesamte Modell nicht (neu) trainieren. Das zugrunde liegende Faltungsnetzwerk enthält bereits Funktionen, die allgemein für die Klassifizierung von Bildern nützlich sind. Der letzte Klassifizierungsteil des vortrainierten Modells ist jedoch spezifisch für die ursprüngliche Klassifizierungsaufgabe und somit für die Gruppe von Klassen, mit denen das Modell trainiert wurde.
- Fine-Tuning: Einige der oberen Ebenen einer eingefrorenen Modellbasis werden entsperrt und sowohl die neu hinzugefügten Klassifizierungsebenen als auch die letzten Ebenen des Basismodells werden gemeinsam trainiert. So können wir die Darstellungen von Features höherer Ordnung im Basismodell „abstimmen“, damit sie für die jeweilige Aufgabe relevanter sind.
Das Extrahieren von Merkmalen ist schneller zu trainieren, aber mit dem Feinabstimmen lassen sich bessere Ergebnisse erzielen.
Sie werden beide Methoden (Feature-Extraktion und Feinabstimmung) mit zwei verschiedenen Arten von Transfer Learning ausprobieren:
- Die TensorFlow Lite Model Maker-Bibliothek übernimmt automatisch den Großteil der Datenpipeline und der Modellerstellung, was den Prozess erheblich vereinfacht. Das resultierende Modell lässt sich auch einfach exportieren, um es auf Mobilgeräten und im Browser zu verwenden.
- TensorFlow Hub-Modelle nutzen das umfangreiche Repository von Modellen für maschinelles Lernen, die in TensorFlow Hub verfügbar sind. Forscher und die Community tragen zu diesen Modellen bei, sodass modernste Modelle viel schneller und in größerer Vielfalt verfügbar sind.
3. Lerntransfer mit Model Maker
Nachdem Sie nun die Idee hinter Transfer Learning kennen, können Sie mit der TensorFlow Lite Model Maker-Bibliothek beginnen, einem Tool, das Ihnen die Arbeit erleichtert.
Die TensorFlow Lite Model Maker-Bibliothek ist eine Open-Source-Bibliothek, die den Prozess des Transfer Learning vereinfacht und ihn für Nicht-ML-Entwickler wie Mobil- und Webentwickler viel zugänglicher 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.
Danach können Sie mit dem Transfer Learning mit Ihren eigenen Daten beginnen.
Colaboratory
Als Nächstes trainieren wir das benutzerdefinierte Modell in Google Colab.
Es dauert etwa 15 Minuten, bis Sie die Erläuterung durchgelesen und die Grundlagen des Notebooks verstanden haben.
Vorteile:
- Einfache Anpassung von Modellen.
- Sie müssen sich nicht mit TensorFlow oder der Keras API auskennen.
- Open-Source-Tool, das geändert werden kann, wenn der Nutzer etwas Bestimmtes benötigt, das noch nicht implementiert ist.
- Das Modell wird direkt für die Ausführung auf Mobilgeräten oder im Browser exportiert.
Nachteile
- Weniger Konfigurationsmöglichkeiten als beim Erstellen der vollständigen Pipeline und des Modells selbst, wie bei den beiden vorherigen Methoden
- Auch wenn Sie das Basismodell auswählen, können nicht alle Modelle als Basis verwendet werden.
- Nicht geeignet für große Datenmengen, bei denen die Datenpipeline komplexer ist.
4. Modell in TensorFlow Hub suchen
Am Ende dieses Abschnitts können Sie:
- Auf TensorFlow Hub finden Sie Modelle für maschinelles Lernen.
- Informationen zu Sammlungen
- Verschiedene Arten von Modellen kennenlernen
Für Transfer Learning benötigen Sie zwei Dinge:
- Daten, z. B. Bilder der Motive, die Sie erkennen möchten.
- Ein Basismodell, das Sie an Ihre Daten anpassen können.
Der Datenteil hängt in der Regel vom Unternehmen ab. Am einfachsten ist es, viele Bilder von dem zu machen, was Sie erkennen möchten. Aber was ist mit dem Basismodell? Wo finden Sie eine? Hier kann TensorFlow Hub helfen.
TensorFlow Hub ist das Modell-Repository für Ihre TensorFlow-Modelle.
Sie können die Dokumentation von Tausenden von Modellen durchsuchen und lesen, die für Sie verfügbar sind. Viele von ihnen sind für Transfer Learning und Feinabstimmung geeignet.
Nach einem Modell suchen
Suchen wir zuerst nach Modellen, die Sie in TensorFlow Hub finden und später in Ihrem Code verwenden können.
Schritt 1: Öffnen Sie in Ihrem Browser die Website tfhub.dev.

Für den Lerntransfer in der Bilddomäne benötigen wir Merkmalsvektoren. Feature-Vektoren ähneln Klassifizierungsmodellen, haben aber keinen Klassifizierungskopf.
Mit Feature-Vektoren können Bilder in eine numerische Darstellung im N-dimensionalen Raum konvertiert werden (wobei N die Anzahl der Dimensionen der Ausgabeschicht des Modells ist).
Auf TFHub können Sie gezielt nach Feature-Vektoren 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, um nur Image feature vectors anzuzeigen.

Die Karten mit blauen Symbolen sind Sammlungen von Modellen. Wenn Sie auf eine Bildsammlung klicken, haben Sie Zugriff auf viele ähnliche Modelle. Wählen Sie die Bildersammlung aus.

Scrollen Sie nach unten und wählen Sie MobileNet V3 aus. Jeder der Featurevektoren ist geeignet.

Auf der Detailseite des Modells finden Sie die gesamte Dokumentation für das Modell, Code-Snippets zum Ausprobieren des Modells und die Möglichkeit, das Modell direkt in einem Colab-Notebook auszuprobieren.

Für den Moment benötigen Sie nur die URL oben. Das ist der Modell-Handle und die Art und Weise, wie Sie einfach auf ein Modell aus der TensorFlow Hub-Bibliothek zugreifen können.
5. Transfer Learning mit TensorFlow Hub
Nachdem Sie 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 um diese Ebene herum aufbauen.
Bisher waren alle Interna verborgen, um die Verwendung von Model Maker zu vereinfachen. Nein, Sie sehen, was Model Maker im Hintergrund macht.
Colaboratory
Als Nächstes trainieren wir das benutzerdefinierte Modell in Google Colab.
Es dauert etwa 20 Minuten, bis Sie die Erläuterung durchgelesen und die Grundlagen des Notebooks verstanden haben.
Vorteile:
- Tausende von Modellen, die von Forschern und der Community beigetragen wurden und mit einer Vielzahl von Datasets trainiert wurden.
- Modelle für alle Aufgaben, z. B. für Vision, Text und Audio.
- Sie können ganz einfach mit verschiedenen ähnlichen Modellen experimentieren. Wenn Sie das Basismodell ändern, müssen Sie möglicherweise nur einen String ändern.
Nachteile
- Für die Verwendung der Modelle sind weiterhin einige Kenntnisse in TensorFlow/Keras erforderlich.
Wenn Sie noch tiefer in das Thema einsteigen möchten, können Sie auch Transfer Learning mit Keras Application ausprobieren. Dieser Vorgang ist dem Verwenden von TensorFlow Hub sehr ähnlich, aber es werden nur die wichtigsten TensorFlow-APIs verwendet.
6. Glückwunsch
Herzlichen Glückwunsch! Sie haben gelernt, was Lerntransfer ist und wie Sie ihn auf Ihre eigenen Daten anwenden können.
In diesem Codelab haben Sie gelernt, wie Sie Modelle für maschinelles Lernen mithilfe einer Technik namens Transfer Learning an Ihre eigenen Daten anpassen.
Sie haben zwei Formen des Lerntransfers ausprobiert:
- Mit einem Tool wie TensorFlow Lite Model Maker.
- Feature-Vektor aus TensorFlow Hub verwenden
Beide Optionen haben ihre Vor- und Nachteile und es gibt viele mögliche Konfigurationen für Ihre speziellen Anforderungen.
Sie haben auch gelernt, dass Sie die Modelle noch weiter optimieren können, indem Sie ihre Gewichte anpassen, damit sie besser zu Ihren Daten passen.
Mit beiden Optionen können Modelle feinabgestimmt werden.
Lerntransfer und Feinabstimmung sind nicht nur für bildbezogene Modelle geeignet. Da die Idee darin besteht, eine gelernte Darstellung einer Domain zu verwenden, um sie an Ihr Dataset anzupassen, kann sie auch für Text- und Audio-Domains verwendet werden.
Nächste Schritte
- Probieren Sie es mit Ihren eigenen Daten aus.
- Teilen Sie uns mit, was Sie entwickeln, und taggen Sie TensorFlow in den sozialen Medien mit Ihren Projekten.
Weitere Informationen
- Weitere Informationen zur Feinabstimmung von State-of-the-Art-Modellen wie BERT finden Sie unter Feinabstimmung eines BERT-Modells.
- Weitere Informationen zum Transfer Learning für Audiomodelle finden Sie unter Transfer Learning mit YAMNet für die Klassifizierung von Umgebungsgeräuschen.