Beim Transfer-Lernen wird das erworbene Wissen genutzt, indem ein Problem gelöst und auf ein spezielles, aber verwandtes Problem angewendet wird.

Zum Beispiel wird das Wissen, das beim Lernen, Autos zu erkennen, gewonnen wird, oft bis zu einem gewissen Grad nicht auf Lastwagen übertragen.

Vor-Ausbildung

Wenn wir das Netzwerk auf einem übergroßen Datensatz (z.B. ImageNet) trainieren, trainieren wir alle Parameter des neuronalen Netzes und somit ist das Modell gelernt. es wird Stunden auf Ihrer GPU dauern.

Feinabstimmung

Wir können den neuen Datensatz zur Feinabstimmung des vortrainierten CNN zur Verfügung stellen. Bedenken Sie, dass der neue Datensatz fast dem ursprünglichen Datensatz entspricht, der für das Pre-Training verwendet wurde. Da der neue Datensatz analog ist, werden oft äquivalente Gewichte verwendet, um die Merkmale aus dem neuen Datensatz zu extrahieren.

Wenn der neue Datensatz extrem klein ist, ist es besser, nur die letzten Schichten des Netzwerks zu trainieren, um eine Überanpassung zu vermeiden, wobei alle anderen Schichten fixiert bleiben. Entfernen Sie also die letzten Schichten des vortrainierten Netzwerks. Fügen Sie neue Schichten hinzu. Behalten Sie nur die neuen Schichten bei.

Wenn der neue Datensatz extrem groß ist, trainieren Sie das gesamte Netzwerk mit Anfangsgewichten aus dem vortrainierten Modell neu.

Wie kann eine Feinabstimmung vorgenommen werden, wenn sich der neue Datensatz extrem vom Originaldatensatz unterscheidet?

Die früheren Merkmale eines ConvNet enthalten generischere Merkmale (z.B. Kantendetektoren oder Farbkleckse-Detektoren), aber spätere Schichten des ConvNet werden zunehmend spezifischer für das Kleingedruckte der im ursprünglichen Datensatz enthaltenen Klassen.

Die früheren Schichten können dabei helfen, die Merkmale der neuen Daten zu extrahieren. Es wäre also gut, wenn Sie die früheren Schichten reparieren und die restlichen Schichten neu trainieren würden, wenn Sie nur wenig Wissen erworben haben.

Wenn Sie über sehr viel Wissen verfügen, werden Sie das gesamte Netzwerk mit Gewichten neu trainieren, die aus dem vortrainierten Netzwerk initialisiert wurden.