Stummel Was ist Transferlernen? - Unite.AI
Vernetzen Sie sich mit uns

AI 101

Was ist Transferlernen?

mm
Aktualisiert on

Was ist Transferlernen?

Beim Üben von maschinellem Lernen kann das Training eines Modells lange dauern. Das Erstellen einer Modellarchitektur von Grund auf, das Trainieren des Modells und das anschließende Optimieren des Modells ist ein enormer Zeit- und Arbeitsaufwand. Eine weitaus effizientere Möglichkeit, ein Modell für maschinelles Lernen zu trainieren, besteht darin, eine bereits definierte Architektur zu verwenden, möglicherweise mit bereits berechneten Gewichtungen. Das ist die Grundidee dahinter Transferlernen, indem Sie ein bereits verwendetes Modell für eine neue Aufgabe verwenden.

Bevor wir uns mit den verschiedenen Einsatzmöglichkeiten von Transferlernen befassen, nehmen wir uns einen Moment Zeit, um zu verstehen, warum Transferlernen eine so wirkungsvolle und nützliche Technik ist.

Ein Deep-Learning-Problem lösen

Wenn Sie versuchen, ein Deep-Learning-Problem zu lösen, beispielsweise den Aufbau eines Bildklassifikators, müssen Sie eine Modellarchitektur erstellen und das Modell dann anhand Ihrer Daten trainieren. Das Training des Modellklassifikators erfordert die Anpassung der Gewichte des Netzwerks. Dieser Vorgang kann je nach Komplexität des Modells und des Datensatzes Stunden oder sogar Tage dauern. Die Trainingszeit richtet sich nach der Größe des Datensatzes und der Komplexität der Modellarchitektur.

Wenn das Modell nicht die für die Aufgabe erforderliche Genauigkeit erreicht, müssen wahrscheinlich Anpassungen am Modell vorgenommen und anschließend das Modell neu trainiert werden. Dies bedeutet mehr Stunden Training, bis eine optimale Architektur, Trainingslänge und Datensatzaufteilung gefunden werden kann. Wenn man bedenkt, wie viele Variablen miteinander abgeglichen werden müssen, damit ein Klassifikator nützlich ist, ist es sinnvoll, dass Ingenieure für maschinelles Lernen immer nach einfacheren und effizienteren Möglichkeiten zum Trainieren und Implementieren von Modellen suchen. Aus diesem Grund wurde die Transfer-Lerntechnik entwickelt.

Wenn sich das Modell nach dem Entwerfen und Testen als nützlich erwiesen hat, kann es gespeichert und später für ähnliche Probleme wiederverwendet werden.

Arten des Transferlernens

Im Allgemeinen gibt es zwei verschiedene Arten des Transferlernens: Ein Modell von Grund auf entwickeln und ein vorab trainiertes Modell verwenden.

Wenn Sie ein Modell von Grund auf entwickeln, müssen Sie eine Modellarchitektur erstellen, die in der Lage ist, Ihre Trainingsdaten zu interpretieren und daraus Muster zu extrahieren. Nachdem das Modell zum ersten Mal trainiert wurde, müssen Sie wahrscheinlich Änderungen daran vornehmen, um die optimale Leistung aus dem Modell herauszuholen. Anschließend können Sie die Modellarchitektur speichern und als Ausgangspunkt für ein Modell verwenden, das für eine ähnliche Aufgabe verwendet wird.

In der zweiten Bedingung – der Verwendung eines vorab trainierten Modells – müssen Sie lediglich ein vorab trainiertes Modell zur Verwendung auswählen. Viele Universitäten und Forschungsteams stellen die Spezifikationen ihres Modells für den allgemeinen Gebrauch zur Verfügung. Die Architektur des Modells kann zusammen mit den Gewichten heruntergeladen werden.

Beim Transferlernen können die gesamte Modellarchitektur und die Gewichte für die jeweilige Aufgabe verwendet werden, oder es können nur bestimmte Teile/Schichten des Modells verwendet werden. Die Verwendung nur eines Teils des vorab trainierten Modells und das Training des Rests des Modells wird als Feinabstimmung bezeichnet.

Feinabstimmung eines Netzwerks

Die Feinabstimmung eines Netzwerks beschreibt den Prozess des Trainings nur einiger Schichten in einem Netzwerk. Wenn ein neuer Trainingsdatensatz dem Datensatz, der zum Trainieren des Originalmodells verwendet wurde, sehr ähnlich ist, können viele der gleichen Gewichtungen verwendet werden.

Die Anzahl der Schichten im Netzwerk, die freigegeben und neu trainiert werden sollen, sollte entsprechend der Größe des neuen Datensatzes skaliert werden. Wenn der Datensatz, auf dem trainiert wird, klein ist, empfiehlt es sich, die meisten Schichten so zu belassen, wie sie sind, und nur die letzten paar Schichten zu trainieren. Dadurch soll eine Überanpassung des Netzwerks verhindert werden. Alternativ können die letzten Schichten des vorab trainierten Netzwerks entfernt und neue Schichten hinzugefügt werden, die dann trainiert werden. Wenn es sich bei dem Datensatz dagegen um einen großen Datensatz handelt, der möglicherweise größer als der ursprüngliche Datensatz ist, sollte das gesamte Netzwerk neu trainiert werden. Um das Netzwerk zu nutzen als ein fester Feature-Extraktor, kann der Großteil des Netzwerks zum Extrahieren der Features verwendet werden, während nur die letzte Schicht des Netzwerks freigegeben und trainiert werden kann.

Denken Sie bei der Feinabstimmung eines Netzwerks daran, dass die früheren Schichten des ConvNet die Informationen enthalten, die die allgemeineren Merkmale der Bilder darstellen. Dabei handelt es sich um Merkmale wie Kanten und Farben. Im Gegensatz dazu enthalten die späteren Schichten des ConvNet die Details, die spezifischer für die einzelnen Klassen im Datensatz sind, auf dem das Modell ursprünglich trainiert wurde. Wenn Sie ein Modell mit einem Datensatz trainieren, der sich stark vom Originaldatensatz unterscheidet, möchten Sie wahrscheinlich die ersten Schichten des Modells zum Extrahieren von Features verwenden und den Rest des Modells einfach neu trainieren.

Beispiele für Transferlernen

Die häufigsten Anwendungen des Transferlernens sind wahrscheinlich solche, die Bilddaten als Eingabe verwenden. Hierbei handelt es sich häufig um Vorhersage-/Klassifizierungsaufgaben. Der Weg Convolutional Neuronale Netze Die Interpretation von Bilddaten eignet sich für die Wiederverwendung von Modellaspekten, da die Faltungsschichten häufig sehr ähnliche Merkmale unterscheiden. Ein Beispiel für ein häufiges Transferlernproblem ist die ImageNet 1000-Aufgabe, ein riesiger Datensatz mit 1000 verschiedenen Objektklassen. Unternehmen, die Modelle entwickeln, die mit diesem Datensatz eine hohe Leistung erzielen, veröffentlichen ihre Modelle häufig unter Lizenzen, die es anderen ermöglichen, sie wiederzuverwenden. Zu den Modellen, die aus diesem Prozess hervorgegangen sind, gehört das Microsoft ResNet-Modell, das Google Inception Model und das Oxford VGG-Modell Gruppe.

Blogger und Programmierer mit Spezialisierung auf Maschinelles lernen und Tiefes Lernen Themen. Daniel hofft, anderen dabei zu helfen, die Macht der KI für das soziale Wohl zu nutzen.