Zum Inhalt wechseln
LG4ML
  • Start
  • Idee
  • Projekte
  • Über uns
  • Wiki
  • Blog

Buzzwords

7
  • Transfer Learning
  • Machine Learning
  • Künstliche Intelligenz
  • Deep Learning
  • Data Science Workflow
  • Computer Vision
  • Big Data

Computer Vision

3
  • YOLOv4
  • Object Tracking
  • Frame Differencing

Grundlagen

14
  • Unüberwachtes Lernen
  • Überwachtes Lernen
  • Trainingsphase
  • Sampling
  • Regression
  • Preprocessing
  • Metrics
  • Klassifikation
  • Hyperparameter Tuning
  • Hyperparameter
  • Distanzmetriken
  • Data Science Workflow
  • Data Exploration
  • Cross Validation

Lernverfahren

8
  • Support Vector Machine
  • Principal Component Analysis
  • Perceptron
  • Logistische Regression
  • Lineare Regression
  • K-Nearest-Neighbours
  • K-Means
  • Decision Tree

Neuronale Netze

5
  • Verlustfunktion
  • Transfer Learning
  • Künstliches Neuron
  • Early Stopping
  • Aktivierungsfunktion

Preprocessing

8
  • Value Imputation
  • Scaling
  • Principal Component Analysis
  • Outlier Detection Basic
  • Outlier Detection Advanced
  • Frequenz Filter
  • Feature Engineering
  • Data Augmentation

Python Pakete

1
  • Data-Science Pakete
View Categories
  • Startseite
  • Docs
  • Buzzwords
  • Transfer Learning

Transfer Learning

4 min read

Transfer Learning ist eine Methodik aus dem Bereich der Neuronalen Netze bzw. des Deep Learnings, bei dem vortrainierte Netzwerke zur Lösung von neuen Problemstellungen eingesetzt werden. Die dabei verwendeten Netzwerke sind bereits auf großen Datensätzen trainiert worden und beschleunigen das Training extrem. Transfer Learning kann in vielen verschiedenen Zwecken eingesetzt werden, lässt sich jedoch vermehrt in der Bildklassifikation oder Textverarbeitung finden. In diesem Artikel werden zunächst die Grundlagen des Transfer Learnings behandelt und anschließend an einem Beispiel verdeutlicht.

Beim Transfer Learning werden bereits gerlernte Zusammenhänge genutzt und auf ein neues Problem angewandt.

Begriffsdefinition #

Die wesentliche Idee hinter Transfer Learning, das als eine Methodik des Deep Learnings zählt und an sich kein eigenes Lernverfahren ist, ist das transferieren von bereits gelernten Zusammenhängen auf eine neue unbekannt Problemstellung. Der wesentliche Vorteil dieser Methodik liegt darin, dass das Training nicht “von vorne” begonnen werden muss und damit zeitliche Ressourcen und Rechenleistung eingespart werden können. Zudem erfolgt das Training der Transfer Netzwerke auf großen Datensätzen, sodass bei der Anwendung auf eine neue Problemstellung häufig bessere Ergebnisse erzielt werden können als bei Verwendung von individuellen Netzwerkarchitekturen. Die nachfolgende Abbildung zeigt vereinfacht dargestellt die Funktionsweise bzw. das Vorgehen beim Transfer Learning.

Vorgehen beim Transfer Learning (Quelle: http://dx.doi.org/10.1016/j.promfg.2020.05.131)

Wie ersichtlich, wird zunächst ein Netzwerk auf Basis von einem großen Datensatz mit verfügbaren Labels trainiert. Gerade die Erstellung solcher Datensätze und insbesondere das Labeling von Bilder sind extrem zeitaufwändig und entfallen für EntwicklerInnen bei Nutzung von Transfer Learning. Das Netzwerk wird mit den bestehenden Klassen bestmöglich trainiert. Ein Teil des Netzes wird dann in das neue Netzwerk integriert und sozusagen “eingefroren”. Dadurch werden die Gewichte innerhalb der Schichten beim Training nicht weiter engepasst und die bereits gelernten Zusammenhänge werden in das neue Netzwerk übernommen. Daran können weitere Schichten angeschlossen werden, die entsprechend der neuen Problemstellung etwa die Klassifikation mit anderen Klassen übernehmen. Im abschließenden Abschnitt wird die Nutzung von Transfer Learning

Anwendungsfelder #

Transfer Learning wird im Wesentlichen bei der Arbeit mit unstrukturierten Daten verwendet, da diese im Normalfall große Datensätze und entsprechend lange Trainingszeiten erfordern. Dazu zählen unter anderem die folgenden beiden Anwendungsfelder

Bilder #

  • Bildklassifikation: Bei der Erkennung von Inhalten in Bildern spielt Transfer Learning eine wichtigte Rolle. Netzwerke wie etwa ResNet50 oder MobileNet werden vermehrt zur Klassifikation von Bildmaterial genutzt
  • Objekterkennung: Ähnlich zur Klassifikation von Bildern, bei der das Bild als Ganzes betrachtet wird und genau ein Label zugewiesen hat, kann Transfer Learning auch zur Objekterkenung genutzt werden. Dabei sind in einem Bild mehrere Objekte zu finden, denen eine Klasse zugewiesen ist.

Text #

  • Übersetzungen: Anwendungen wie DeepL oder andere Übersetzer erfordern extrem große Datenmengen und viel Zeit, um die neuronalen Netze zu trainieren und dabei gute Ergebnisse zu trainieren. Bei weiteren Anwendungen in der Textverarbeitung können vortrainierte Netze verwendet werden.
  • Textgenerierung: Im Gegensatz zur Übersetzung ist kein Text durch NutzerInnen vorgegeben, stattdessen müssen Modelle auf Basis von Stichworten Texte generieren. Auch dabei wird häufig Transfer Learning genutzt.

Beispiel: Bildklassifikation mit ResNet50 #

Abschließend soll das Thema Transfer Learning an einem Beispiel vertieft werden. Der nachfolgende Codeblock zeigt, wie in TensorFlow mit der Keras Model API in wenigen Zeilen Code ein Modell auf Basis des vortrainierten ResNet-50 erstellt werden kann. Bei der Verwendung ist generell darauf zu achten, welche Input Formate bzw. Shapes von einem Netzwerk untersützt werden. Im Bereich der Bildklassifikation ist es mehr oder weniger immer erforderlich, dass die Bilder drei Kanäle haben.

Das vollständige Notebook lässt sich unter dem folgenden Link finden:
https://www.kaggle.com/code/nilshmeier/transfer-learning-approach

from tensorflow import keras
from tensorflow.keras import layers, activations, applications, optimizers, losses

# Create Input Layer
input_layer = layers.Input(shape=(224,224,3))

# Add ResNet50 model and the corresconding preprocessing layer
preprocess_layer = applications.resnet50.preprocess_input(input_layer)
transfer_net = applications.ResNet50(weights='imagenet', input_tensor=preprocess_layer, include_top=False)

# Fix the weights of the ResNet Model
transfer_net.trainable = False

# Flatten the output of the transfer net and add Dropout + Classifier layers
flatten_layer = layers.Flatten()(transfer_net.output)
dropout_layer = layers.Dropout(rate=0.5)(flatten_layer)
clf_layer = layers.Dense(units=100, activation=activations.softmax)(dropout_layer)

# Create the final Keras model using input and final output layer
model = keras.Model(name='Sports-Model', inputs=input_layer, outputs=clf_layer)

# Compile the model and print summary
model.compile(optimizer=optimizers.Adam(learning_rate=0.001), loss=losses.categorical_crossentropy, metrics=['accuracy'])

# Print the model summary
print(model.summary())

Weiterführende Links:
A Gentle Introduction to Transfer Learning: https://machinelearningmastery.com/transfer-learning-for-deep-learning/
Transfer Learning – Anwendungsfälle und Beispiele: https://datasolut.com/was-ist-transfer-learning/
Transfer Learning for Machine Learning: https://www.seldon.io/transfer-learning

Updated on 13/05/2022

What are your Feelings

  • Happy
  • Normal
  • Sad
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest

Schreibe einen Kommentar Antworten abbrechen

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

Inhalt
  • Begriffsdefinition
  • Anwendungsfelder
    • Bilder
    • Text
  • Beispiel: Bildklassifikation mit ResNet50

LG4ML

Promoting Machine Learning from Lüneburg!

© 2025 LG4ML

Navigation

  • Kontakt
  • Datenschutzerklärung
  • Impressum

Folge uns auf

Github Slack Instagram

Made with 🍺 in Lüneburg.

Cookie-Hinweis
Wir verwenden Cookies auf unserer Website, um Ihnen die bestmögliche Erfahrung zu bieten, indem wir uns an Ihre Präferenzen und wiederholten Besuche erinnern. Wenn Sie auf "Alle akzeptieren" klicken, erklären Sie sich mit der Verwendung aller Cookies einverstanden. Sie können jedoch die Einstellungen besuchen, um eine kontrollierte Zustimmung zu erteilen.
EinstellungenAlle akzeptieren
Zustimmung verwalten

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
immer aktiv
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDauerBeschreibung
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SPEICHERN & AKZEPTIEREN