Connect with us

Was ist Transfer Learning?

KI 101

Was ist Transfer Learning?

mm

Was ist Transfer Learning?

Beim Arbeiten mit Machine Learning kann das Trainieren eines Modells sehr lange dauern. Die Erstellung einer Modellarchitektur von Grund auf, das Trainieren des Modells und das Anpassen des Modells erfordern eine enorme Menge an Zeit und Aufwand. Ein viel effizienterer Weg, ein Machine-Learning-Modell zu trainieren, besteht darin, eine Architektur zu verwenden, die bereits definiert wurde, möglicherweise mit Gewichten, die bereits berechnet wurden. Dies ist die Hauptidee hinter Transfer Learning, bei der ein bereits verwendetes Modell genommen und für eine neue Aufgabe umfunktioniert wird.

Bevor wir uns mit den verschiedenen Möglichkeiten auseinandersetzen, wie Transfer Learning eingesetzt werden kann, sollten wir uns einen Moment Zeit nehmen, um zu verstehen, warum Transfer Learning eine so mächtige und nützliche Technik ist.

Lösung eines Deep-Learning-Problems

Wenn Sie versuchen, ein Deep-Learning-Problem zu lösen, wie zum Beispiel die Erstellung eines Bildklassifizierers, müssen Sie eine Modellarchitektur erstellen und dann das Modell auf Ihren Daten trainieren. Das Trainieren des Modellklassifizierers beinhaltet die Anpassung der Gewichte des Netzwerks, ein Prozess, der Stunden oder sogar Tage dauern kann, je nach Komplexität des Modells und des Datensatzes. Die Trainingszeit wird sich im Verhältnis zur Größe des Datensatzes und der Komplexität der Modellarchitektur skalieren.

Wenn das Modell nicht die erforderliche Genauigkeit für die Aufgabe erreicht, muss das Modell wahrscheinlich angepasst werden und dann erneut trainiert werden. Dies bedeutet weitere Stunden des Trainings, bis eine optimale Architektur, Trainingsdauer und Datensatzpartition gefunden werden. Wenn man bedenkt, wie viele Variablen aufeinander abgestimmt werden müssen, damit ein Klassifizierer nützlich ist, ist es verständlich, dass Machine-Learning-Ingenieure immer nach einfacheren, effizienteren Wegen suchen, um Modelle zu trainieren und zu implementieren. Aus diesem Grund wurde die Transfer-Learning-Technik entwickelt.

Nach dem Entwurf und der Erprobung eines Modells kann es, wenn es sich als nützlich erwiesen hat, gespeichert und später für ähnliche Probleme wiederverwendet werden.

Arten von Transfer Learning

Im Allgemeinen gibt es zwei verschiedene Arten von Transfer Learning: die Entwicklung eines Modells von Grund auf und die Verwendung eines vorgefertigten Modells.

Wenn Sie ein Modell von Grund auf entwickeln, müssen Sie eine Modellarchitektur erstellen, die in der Lage ist, Ihre Trainingsdaten zu interpretieren und Muster daraus zu extrahieren. Nachdem das Modell zum ersten Mal trainiert wurde, müssen Sie wahrscheinlich Änderungen daran vornehmen, um die optimale Leistung des Modells zu erzielen. Sie können dann 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 vorgefertigten Modells – müssen Sie einfach ein vorgefertigtes Modell auswählen, um es zu verwenden. Viele Universitäten und Forschungsteams machen die Spezifikationen ihres Modells für die allgemeine Nutzung verfügbar. Die Architektur des Modells kann zusammen mit den Gewichten heruntergeladen werden.

Bei der Durchführung von Transfer Learning kann die gesamte Modellarchitektur und die Gewichte für die Aufgabe verwendet werden, oder nur bestimmte Teile/Schichten des Modells können verwendet werden. Die Verwendung nur eines Teils des vorgefertigten Modells und das Trainieren des Restes des Modells wird als Feinabstimmung bezeichnet.

Feinabstimmung eines Netzwerks

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

Die Anzahl der Schichten im Netzwerk, die entfroren und erneut trainiert werden sollten, sollte sich im Verhältnis zur Größe des neuen Datensatzes skalieren. Wenn der Datensatz, auf dem trainiert wird, klein ist, ist es eine bessere Praxis, die meisten Schichten so zu lassen, wie sie sind, und nur die letzten paar Schichten zu trainieren. Dies ist, um zu verhindern, dass das Netzwerk überanpasst. Alternativ können die letzten Schichten des vorgefertigten Netzwerks entfernt und neue Schichten hinzugefügt werden, die dann trainiert werden. Im Gegensatz dazu sollte bei einem großen Datensatz, der möglicherweise größer ist als der ursprüngliche Datensatz, das gesamte Netzwerk erneut trainiert werden. Um das Netzwerk als festen Merkmalsextraktor zu verwenden, kann die Mehrheit des Netzwerks verwendet werden, um Merkmale zu extrahieren, während nur die letzte Schicht des Netzwerks entfroren und trainiert werden kann.

Wenn Sie ein Netzwerk feinabstimmen, sollten Sie einfach daran denken, dass die früheren Schichten des ConvNet die Informationen enthalten, die die generischeren Merkmale der Bilder darstellen. Dies sind Merkmale wie Kanten und Farben. Im Gegensatz dazu enthalten die späteren Schichten des ConvNet die Details, die spezifischer für die einzelnen Klassen sind, die im Datensatz enthalten sind, auf dem das Modell ursprünglich trainiert wurde. Wenn Sie ein Modell auf einem Datensatz trainieren, der sich sehr von dem ursprünglichen Datensatz unterscheidet, werden Sie wahrscheinlich die Anfangsschichten des Modells verwenden, um Merkmale zu extrahieren, und nur den Rest des Modells erneut trainieren.

Beispiele für Transfer Learning

Die häufigsten Anwendungen von Transfer Learning sind wahrscheinlich die, die Bildaten als Eingaben verwenden. Dies sind oft Vorhersage-/Klassifizierungsaufgaben. Die Art und Weise, wie Convolutional Neural Networks Bildaten interpretieren, eignet sich für die Wiederverwendung von Modellteilen, da die Convolutional-Schichten oft sehr ähnliche Merkmale erkennen. Ein Beispiel für ein häufiges Transfer-Learning-Problem ist die ImageNet-1000-Aufgabe, ein riesiger Datensatz mit 1000 verschiedenen Klassen von Objekten. Unternehmen, die Modelle entwickeln, die eine hohe Leistung auf diesem Datensatz erzielen, veröffentlichen ihre Modelle oft unter Lizenzen, die es anderen erlauben, sie wiederverwendet. Einige der Modelle, die aus diesem Prozess resultiert haben, sind das Microsoft ResNet-Modell, das Google Inception-Modell und das Oxford VGG-Modell der Arbeitsgruppe.

Blogger und Programmierer mit Spezialisierungen in Machine Learning und Deep Learning Themen. Daniel hofft, anderen zu helfen, die Macht von KI für das soziale Wohl zu nutzen.