Verwenden von Transferlernen zur Steigerung der ModellleistungVerwenden von Transferlernen zur Steigerung der Modellleistung

Haben Sie darüber nachgedacht, wie Sie die Leistung Ihrer ML-Modelle verbessern können, ohne neue Modelle zu entwickeln? Hier kommt Transferlernen ins Spiel. In diesem Artikel geben wir einen Überblick über Transferlernen sowie seine Vorteile und Herausforderungen.

Was ist Transferlernen?

Transferlernen bedeutet, dass ein für eine Aufgabe trainiertes Modell für eine andere, ähnliche Aufgabe verwendet werden kann. Sie können dann ein vorab trainiertes Modell verwenden und es entsprechend der erforderlichen Aufgabe ändern. Lassen Sie uns die Phasen des Transferlernens besprechen.

Phasen des TransferlernensPhasen des TransferlernensBild vom Autor

  1. Wählen Sie ein vorab trainiertes Modell: Wählen Sie ein Modell aus, das anhand eines großen Datensatzes für eine ähnliche Aufgabe wie die, an der Sie arbeiten möchten, trainiert wurde.
  2. Modellarchitektur ändern: Passen Sie die letzten Ebenen des vorab trainierten Modells entsprechend Ihrer spezifischen Aufgabe an. Fügen Sie bei Bedarf auch neue Ebenen hinzu.
  3. Das Modell neu trainieren: Trainieren Sie das geänderte Modell anhand Ihres neuen Datensatzes. Dadurch kann das Modell die Particulars Ihrer spezifischen Aufgabe erlernen. Es profitiert außerdem von den Funktionen, die es während des ursprünglichen Trainings erlernt hat.
  4. Optimieren Sie das Modell: Geben Sie einige der vortrainierten Schichten frei und trainieren Sie Ihr Modell weiter. Dadurch kann sich das Modell durch Feinabstimmung seiner Gewichte besser an die neue Aufgabe anpassen.

Vorteile des Transferlernens

Transferlernen bietet mehrere wesentliche Vorteile:

  1. Spart Zeit und Ressourcen: Die Feinabstimmung erfordert weniger Zeit und Rechenressourcen, da das vorab trainierte Modell zunächst für eine große Anzahl von Iterationen für einen bestimmten Datensatz trainiert wurde. Dieser Prozess hat bereits wesentliche Merkmale erfasst, sodass der Arbeitsaufwand für die neue Aufgabe reduziert wird.
  2. Verbessert die Leistung: Vortrainierte Modelle haben aus umfangreichen Datensätzen gelernt und verallgemeinern daher besser. Dies führt zu einer verbesserten Leistung bei neuen Aufgaben, selbst wenn der neue Datensatz relativ klein ist. Das durch das anfängliche Coaching gewonnene Wissen trägt dazu bei, eine höhere Genauigkeit und bessere Ergebnisse zu erzielen.
  3. Benötigt weniger Daten: Einer der Hauptvorteile des Transferlernens ist seine Effektivität bei kleineren Datensätzen. Das vorab trainierte Modell hat bereits nützliche Muster- und Merkmalsinformationen erworben. Daher kann es auch dann eine recht gute Leistung erbringen, wenn ihm nur wenige neue Daten zur Verfügung gestellt werden.

Arten des Transferlernens

Transferlernen kann in drei Typen eingeteilt werden:

Merkmalsextraktion

Bei der Merkmalsextraktion werden von einem Modell erlernte Merkmale anhand neuer Daten verwendet. Bei der Bildklassifizierung können wir beispielsweise Merkmale aus einem vordefinierten Convolutional Neural Community verwenden, um in Bildern nach signifikanten Merkmalen zu suchen. Hier ist ein Beispiel mit einem vorab trainierten VGG16-Modell von Keras zur Merkmalsextraktion in Bildern:

import numpy as np
from tensorflow.keras.functions import VGG16
from tensorflow.keras.preprocessing import picture
from tensorflow.keras.functions.vgg16 import preprocess_input

# Load pre-trained VGG16 mannequin (with out the highest layers for classification)
base_model = VGG16(weights="imagenet", include_top=False)

# Operate to extract options from a picture
def extract_features(img_path):
    img = picture.load_img(img_path, target_size=(224, 224))  # Load picture and resize
    x = picture.img_to_array(img)  # Convert picture to numpy array
    x = np.expand_dims(x, axis=0)  # Add batch dimension
    x = preprocess_input(x)  # Preprocess enter in keeping with mannequin's necessities
    options = base_model.predict(x)  # Extract options utilizing VGG16 mannequin
    return options.flatten()  # Flatten to a 1D array for simplicity

# Instance utilization
image_path="path_to_your_image.jpg"
image_features = extract_features(image_path)
print(f"Extracted options form: {image_features.form}")

Feinabstimmung

Bei der Feinabstimmung werden die Schritte zur Merkmalsextraktion und die Aspekte eines neuen Modells angepasst, damit sie der jeweiligen Aufgabe entsprechen. Diese Methode ist besonders nützlich bei mittelgroßen Datensätzen und wenn Sie eine bestimmte aufgabenbezogene Fähigkeit des Modells verbessern möchten. Beispielsweise könnte in der NLP ein Commonplace-BERT-Modell anhand einer kleinen Menge medizinischer Texte angepasst oder weiter trainiert werden, um die Erkennung medizinischer Entitäten zu verbessern. Hier ist ein Beispiel für die Verwendung von BERT zur Stimmungsanalyse mit Feinabstimmung an einem benutzerdefinierten Datensatz:

from transformers import BertTokenizer, BertForSequenceClassification, AdamW
import torch
from torch.utils.knowledge import DataLoader, TensorDataset

# Instance knowledge (exchange along with your dataset)
texts = ("I like this product!", "This isn't what I anticipated.", ...)
labels = (1, 0, ...)  # 1 for constructive sentiment, 0 for unfavourable sentiment, and so on.

# Load pre-trained BERT mannequin and tokenizer
model_name="bert-base-uncased"
tokenizer = BertTokenizer.from_pretrained(model_name)
mannequin = BertForSequenceClassification.from_pretrained(model_name, num_labels=2)  # Instance: binary classification

# Tokenize enter texts and create DataLoader
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")
dataset = TensorDataset(inputs('input_ids'), inputs('attention_mask'), torch.tensor(labels))
dataloader = DataLoader(dataset, batch_size=16, shuffle=True)

# Tremendous-tuning parameters
optimizer = AdamW(mannequin.parameters(), lr=1e-5)

# Tremendous-tune BERT mannequin
mannequin.practice()
for epoch in vary(3):  # Instance: 3 epochs
    for batch in dataloader:
        optimizer.zero_grad()
        input_ids, attention_mask, goal = batch
        outputs = mannequin(input_ids, attention_mask=attention_mask, labels=goal)
        loss = outputs.loss
        loss.backward()
        optimizer.step()

Domänenanpassung

Die Domänenanpassung gibt Aufschluss darüber, wie man das Wissen aus der Quelldomäne, für die das vorab trainierte Modell trainiert wurde, für die andere Zieldomäne nutzen kann. Dies ist erforderlich, wenn sich Quell- und Zieldomäne in den Funktionen, der Datenverteilung oder sogar in der Sprache unterscheiden. Beispielsweise können wir bei der Sentimentanalyse einen Sentimentklassifikator, der aus Produktbewertungen gelernt wurde, auf Social-Media-Beiträge anwenden, da die beiden sehr unterschiedliche Sprachen verwenden. Hier ist ein Beispiel für die Verwendung der Sentimentanalyse, die von Produktbewertungen auf Social-Media-Beiträge angepasst wurde:

# Operate to adapt textual content type 
def adapt_text_style(textual content):
    # Instance: exchange social media language with product review-like language
    adapted_text = textual content.exchange("excited", "constructive").exchange("#innovation", "new expertise")
    return adapted_text

# Instance utilization of area adaptation
social_media_post = "Excited in regards to the new tech! #innovation"
adapted_text = adapt_text_style(social_media_post)
print(f"Tailored textual content: {adapted_text}")

# Use sentiment classifier educated on product critiques
# Instance: sentiment_score = sentiment_classifier.predict(adapted_text)

Vorab trainierte Modelle

Vortrainierte Modelle sind Modelle, die bereits anhand großer Datensätze trainiert wurden. Sie erfassen Wissen und Muster aus umfangreichen Daten. Diese Modelle werden als Ausgangspunkt für andere Aufgaben verwendet. Lassen Sie uns einige der häufig vortrainierten Modelle besprechen, die beim maschinellen Lernen verwendet werden: Anwendungen.

VGG (Gruppe für visuelle Geometrie)

Die Architektur von VGG umfasst mehrere Schichten von 3×3 Faltungsfiltern und Pooling-Schichten. Es ist in der Lage, detaillierte Merkmale wie Kanten und Formen in Bildern zu erkennen. Durch Coaching mit großen Datensätzen lernt VGG, verschiedene Objekte in Bildern zu erkennen. Es kann zur Objekterkennung und Bildsegmentierung verwendet werden.

VGG-ArchitekturVGG-Architektur VGG-16 | CNN-Modell (Quelle: GeeksforGeeks)

ResNet (Restnetzwerk)

ResNet verwendet Restverbindungen, um Modelle zu trainieren. Diese Verbindungen erleichtern es Gradienten, durch das Netzwerk zu fließen. Dies verhindert das Downside des verschwindenden Gradienten und hilft dem Netzwerk, effektiv zu trainieren. ResNet kann Modelle mit Hunderten von Schichten erfolgreich trainieren. ResNet eignet sich hervorragend für Aufgaben wie Bildklassifizierung und Gesichtserkennung.

ResNet-ArchitekturResNet-Architektur ResNet-50-Architektur (Quelle: Forschungsbericht)

BERT (Bidirektionale Encoder-Darstellungen von Transformatoren)

BERT wird für Anwendungen zur Verarbeitung natürlicher Sprache verwendet. Es verwendet ein transformerbasiertes Modell, um den Kontext von Wörtern in einem Satz zu verstehen. Es lernt, fehlende Wörter zu erraten und Satzbedeutungen zu verstehen. BERT kann für Stimmungsanalysen, Fragenbeantwortungen und Named-Entity-Erkennung verwendet werden.

BERT-ArchitekturBERT-Architektur Überblick über die BERT-Architektur (Quelle: Forschungsbericht)

Feinabstimmungstechniken

Einfrieren von Schichten

Beim Layer Freezing werden bestimmte Layer eines vorab trainierten Modells ausgewählt und ihre Änderung während des Trainings mit neuen Daten verhindert. Dies geschieht, um die nützlichen Muster und Merkmale zu bewahren, die das Modell während des ursprünglichen Trainings gelernt hat. Normalerweise frieren wir frühe Layer ein, die allgemeine Merkmale wie Kanten in Bildern oder grundlegende Strukturen in Texten erfassen.

Anpassung der Lernrate

Die Feinabstimmung der Lernrate ist wichtig, um das Gelernte des Modells mit neuen Daten in Einklang zu bringen. Normalerweise wird bei der Feinabstimmung eine niedrigere Lernrate als beim anfänglichen Coaching mit großen Datensätzen verwendet. Dies hilft dem Modell, sich an neue Daten anzupassen und gleichzeitig die meisten seiner gelernten Gewichte beizubehalten.

Herausforderungen und Überlegungen

Lassen Sie uns die Herausforderungen des Transferlernens und deren Bewältigung diskutieren.

  1. Datensatzgröße und Domänenverschiebung: Beim Feintuning verallgemeinerter Modelle sollten für die jeweilige Aufgabe reichlich Daten vorhanden sein. Der Nachteil dieses Ansatzes besteht darin, dass der neue Datensatz entweder klein ist oder sich erheblich von dem unterscheidet, was ursprünglich zum Modell passt. Um damit umzugehen, kann man mehr Daten eingeben, die für das, womit das Modell bereits trainiert wurde, relevanter sind.
  2. Hyperparameter-Tuning: Das Ändern von Hyperparametern ist wichtig, wenn mit vorab trainierten Modellen gearbeitet wird. Diese Parameter sind voneinander abhängig und bestimmen, wie intestine das Modell sein wird. Techniken wie die Rastersuche oder automatisierte Instruments helfen dabei, die optimalen Einstellungen für Hyperparameter zu finden, die bei Validierungsdaten eine hohe Leistung erzielen würden.
  3. Rechenressourcen: Die Feinabstimmung tiefer neuronaler Netzwerke ist rechenintensiv, da solche Modelle Millionen von Parametern haben können. Für das Coaching und die Vorhersage der Ausgabe sind leistungsstarke Beschleuniger wie GPU oder TPU erforderlich. Diese Anforderungen werden normalerweise von den Cloud-Computing-Plattformen erfüllt.

Einpacken

Zusammenfassend lässt sich sagen, dass Transferlernen ein Eckpfeiler bei der Verbesserung der Modellleistung in verschiedenen Anwendungen der künstlichen Intelligenz ist. Durch die Nutzung vorab trainierter Modelle wie VGG, ResNet, BERT und anderer können Praktiker vorhandenes Wissen effizient nutzen, um komplexe Aufgaben in den Bereichen Bildklassifizierung, Verarbeitung natürlicher Sprache, Gesundheitswesen, autonome Systeme und mehr zu bewältigen.

Jayita Gulati ist eine Enthusiastin für maschinelles Lernen und technische Autorin, die von ihrer Leidenschaft für die Erstellung von Modellen für maschinelles Lernen angetrieben wird. Sie hat einen Grasp-Abschluss in Informatik von der Universität Liverpool.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert