Transfer Learning i Computer Vision
Transfer learning gør det muligt at genbruge modeller, der er trænet på store datasæt, til nye opgaver med begrænset data. I stedet for at opbygge et neuralt netværk fra bunden, udnytter vi fortrænede modeller for at forbedre effektivitet og ydeevne. Gennem dette kursus har du allerede stødt på lignende tilgange i tidligere afsnit, hvilket har lagt grundlaget for effektiv anvendelse af transfer learning.
Hvad er Transfer Learning?
Transfer learning er en teknik, hvor en model, der er trænet på én opgave, tilpasses til en anden relateret opgave. Inden for computer vision kan modeller, der er fortrænet på store datasæt som ImageNet, finjusteres til specifikke anvendelser såsom medicinsk billedbehandling eller autonom kørsel.

Hvorfor er Transfer Learning Vigtigt?
- Reducerer træningstid: da modellen allerede har lært generelle træk, kræves kun mindre justeringer;
- Kræver mindre data: nyttigt i situationer, hvor det er dyrt at indsamle mærkede data;
- Forbedrer ydeevne: fortrænede modeller tilbyder robust feature-ekstraktion, hvilket øger nøjagtigheden.
Arbejdsgang for Transfer Learning
Den typiske arbejdsgang for transfer learning omfatter flere nøgletrin:
-
Valg af fortrænet model:
- Vælg en model, der er trænet på et stort datasæt (f.eks. ResNet, VGG, YOLO);
- Disse modeller har lært nyttige repræsentationer, der kan tilpasses nye opgaver.
-
Modificering af den fortrænede model:
- Feature-ekstraktion: frys de tidlige lag og gen-træn kun de senere lag til den nye opgave;
- Finjustering: optø nogle eller alle lag og gen-træn dem på det nye datasæt.
-
Træning på det nye datasæt:
- Træn den modificerede model ved hjælp af et mindre datasæt, der er specifikt for målopgaven;
- Optimer ved hjælp af teknikker som backpropagation og loss-funktioner.
-
Evaluering og iteration:
- Vurder ydeevnen ved hjælp af målinger som nøjagtighed, præcision, recall og mAP;
- Finjuster yderligere om nødvendigt for at forbedre resultaterne.
Populære Fortrænede Modeller
Nogle af de mest anvendte fortrænede modeller til computer vision omfatter:
- ResNet: dybe residual-netværk, der muliggør træning af meget dybe arkitekturer;
- VGG: en simpel arkitektur med ensartede konvolutionslag;
- EfficientNet: optimeret for høj nøjagtighed med færre parametre;
- YOLO: state-of-the-art (SOTA) realtidsobjektdetektion.
Finjustering vs. Feature Extraction
Feature extraction indebærer brug af lagene fra en fortrænet model som faste feature-udtrækkere. I denne tilgang fjernes modellens oprindelige klassifikationslag typisk og erstattes med et nyt, der er specifikt for målopgaven. De fortrænede lag forbliver låste, hvilket betyder, at deres vægte ikke opdateres under træning. Dette gør træningen hurtigere og kræver mindre data.
from tensorflow.keras.applications import VGG16
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Flatten
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in base_model.layers:
layer.trainable = False # Freeze base model layers
x = Flatten()(base_model.output)
x = Dense(256, activation='relu')(x)
x = Dense(10, activation='softmax')(x) # Task-specific output
model = Model(inputs=base_model.input, outputs=x)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Finjustering går derimod et skridt videre ved at låse nogle eller alle de fortrænede lag op og genuddanne dem på det nye datasæt. Dette gør det muligt for modellen at tilpasse de lærte features mere præcist til de specifikke karakteristika ved den nye opgave, hvilket ofte fører til forbedret ydeevne—særligt når det nye datasæt er tilstrækkeligt stort eller adskiller sig væsentligt fra de oprindelige træningsdata.
for layer in base_model.layers[-10:]: # Unfreeze last 10 layers
layer.trainable = True
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Anvendelser af Transfer Learning

1. Billedklassificering
Billedklassificering indebærer tildeling af etiketter til billeder baseret på deres visuelle indhold. Fortrænede modeller som ResNet og EfficientNet kan tilpasses til specifikke opgaver såsom medicinsk billedbehandling eller vildtklassificering.
Eksempel:
- Vælg en fortrænet model (f.eks. ResNet);
- Tilpas klassifikationslaget til at matche målklasserne;
- Finjuster med en lavere læringsrate.
2. Objektgenkendelse
Objektgenkendelse indebærer både identifikation af objekter og lokalisering af dem i et billede. Transfer learning muliggør, at modeller som Faster R-CNN, SSD og YOLO effektivt kan detektere specifikke objekter i nye datasæt.
Eksempel:
- Brug en fortrænet objektgenkendelsesmodel (f.eks. YOLOv8);
- Finjuster på et brugerdefineret datasæt med nye objektklasser;
- Evaluer ydeevne og optimer efter behov.
3. Semantisk segmentering
Semantisk segmentering klassificerer hver pixel i et billede i foruddefinerede kategorier. Modeller som U-Net og DeepLab anvendes bredt i applikationer som autonom kørsel og medicinsk billedbehandling.
Eksempel:
- Brug en fortrænet segmenteringsmodel (f.eks. U-Net);
- Træn på et domænespecifikt datasæt;
- Juster hyperparametre for bedre nøjagtighed.
4. Stiloverførsel
Stiloverførsel anvender den visuelle stil fra ét billede til et andet, mens det oprindelige indhold bevares. Denne teknik bruges ofte i digital kunst og billedforbedring ved hjælp af fortrænede modeller som VGG.
Eksempel:
- Vælg en stiloverførselsmodel (f.eks. VGG);
- Indsæt indholds- og stilbilleder;
- Optimer for visuelt tiltalende resultater.
1. Hvad er den største fordel ved at bruge transfer learning i computer vision?
2. Hvilken tilgang anvendes i transfer learning, når kun det sidste lag af en foruddannet model ændres, mens de tidligere lag holdes faste?
3. Hvilken af følgende modeller anvendes ofte til transfer learning i objektgenkendelse?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain the difference between fine-tuning and feature extraction in more detail?
What are some real-world examples where transfer learning is especially useful?
How do I choose which pre-trained model to use for my specific task?
Awesome!
Completion rate improved to 3.45
Transfer Learning i Computer Vision
Stryg for at vise menuen
Transfer learning gør det muligt at genbruge modeller, der er trænet på store datasæt, til nye opgaver med begrænset data. I stedet for at opbygge et neuralt netværk fra bunden, udnytter vi fortrænede modeller for at forbedre effektivitet og ydeevne. Gennem dette kursus har du allerede stødt på lignende tilgange i tidligere afsnit, hvilket har lagt grundlaget for effektiv anvendelse af transfer learning.
Hvad er Transfer Learning?
Transfer learning er en teknik, hvor en model, der er trænet på én opgave, tilpasses til en anden relateret opgave. Inden for computer vision kan modeller, der er fortrænet på store datasæt som ImageNet, finjusteres til specifikke anvendelser såsom medicinsk billedbehandling eller autonom kørsel.

Hvorfor er Transfer Learning Vigtigt?
- Reducerer træningstid: da modellen allerede har lært generelle træk, kræves kun mindre justeringer;
- Kræver mindre data: nyttigt i situationer, hvor det er dyrt at indsamle mærkede data;
- Forbedrer ydeevne: fortrænede modeller tilbyder robust feature-ekstraktion, hvilket øger nøjagtigheden.
Arbejdsgang for Transfer Learning
Den typiske arbejdsgang for transfer learning omfatter flere nøgletrin:
-
Valg af fortrænet model:
- Vælg en model, der er trænet på et stort datasæt (f.eks. ResNet, VGG, YOLO);
- Disse modeller har lært nyttige repræsentationer, der kan tilpasses nye opgaver.
-
Modificering af den fortrænede model:
- Feature-ekstraktion: frys de tidlige lag og gen-træn kun de senere lag til den nye opgave;
- Finjustering: optø nogle eller alle lag og gen-træn dem på det nye datasæt.
-
Træning på det nye datasæt:
- Træn den modificerede model ved hjælp af et mindre datasæt, der er specifikt for målopgaven;
- Optimer ved hjælp af teknikker som backpropagation og loss-funktioner.
-
Evaluering og iteration:
- Vurder ydeevnen ved hjælp af målinger som nøjagtighed, præcision, recall og mAP;
- Finjuster yderligere om nødvendigt for at forbedre resultaterne.
Populære Fortrænede Modeller
Nogle af de mest anvendte fortrænede modeller til computer vision omfatter:
- ResNet: dybe residual-netværk, der muliggør træning af meget dybe arkitekturer;
- VGG: en simpel arkitektur med ensartede konvolutionslag;
- EfficientNet: optimeret for høj nøjagtighed med færre parametre;
- YOLO: state-of-the-art (SOTA) realtidsobjektdetektion.
Finjustering vs. Feature Extraction
Feature extraction indebærer brug af lagene fra en fortrænet model som faste feature-udtrækkere. I denne tilgang fjernes modellens oprindelige klassifikationslag typisk og erstattes med et nyt, der er specifikt for målopgaven. De fortrænede lag forbliver låste, hvilket betyder, at deres vægte ikke opdateres under træning. Dette gør træningen hurtigere og kræver mindre data.
from tensorflow.keras.applications import VGG16
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Flatten
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in base_model.layers:
layer.trainable = False # Freeze base model layers
x = Flatten()(base_model.output)
x = Dense(256, activation='relu')(x)
x = Dense(10, activation='softmax')(x) # Task-specific output
model = Model(inputs=base_model.input, outputs=x)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Finjustering går derimod et skridt videre ved at låse nogle eller alle de fortrænede lag op og genuddanne dem på det nye datasæt. Dette gør det muligt for modellen at tilpasse de lærte features mere præcist til de specifikke karakteristika ved den nye opgave, hvilket ofte fører til forbedret ydeevne—særligt når det nye datasæt er tilstrækkeligt stort eller adskiller sig væsentligt fra de oprindelige træningsdata.
for layer in base_model.layers[-10:]: # Unfreeze last 10 layers
layer.trainable = True
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Anvendelser af Transfer Learning

1. Billedklassificering
Billedklassificering indebærer tildeling af etiketter til billeder baseret på deres visuelle indhold. Fortrænede modeller som ResNet og EfficientNet kan tilpasses til specifikke opgaver såsom medicinsk billedbehandling eller vildtklassificering.
Eksempel:
- Vælg en fortrænet model (f.eks. ResNet);
- Tilpas klassifikationslaget til at matche målklasserne;
- Finjuster med en lavere læringsrate.
2. Objektgenkendelse
Objektgenkendelse indebærer både identifikation af objekter og lokalisering af dem i et billede. Transfer learning muliggør, at modeller som Faster R-CNN, SSD og YOLO effektivt kan detektere specifikke objekter i nye datasæt.
Eksempel:
- Brug en fortrænet objektgenkendelsesmodel (f.eks. YOLOv8);
- Finjuster på et brugerdefineret datasæt med nye objektklasser;
- Evaluer ydeevne og optimer efter behov.
3. Semantisk segmentering
Semantisk segmentering klassificerer hver pixel i et billede i foruddefinerede kategorier. Modeller som U-Net og DeepLab anvendes bredt i applikationer som autonom kørsel og medicinsk billedbehandling.
Eksempel:
- Brug en fortrænet segmenteringsmodel (f.eks. U-Net);
- Træn på et domænespecifikt datasæt;
- Juster hyperparametre for bedre nøjagtighed.
4. Stiloverførsel
Stiloverførsel anvender den visuelle stil fra ét billede til et andet, mens det oprindelige indhold bevares. Denne teknik bruges ofte i digital kunst og billedforbedring ved hjælp af fortrænede modeller som VGG.
Eksempel:
- Vælg en stiloverførselsmodel (f.eks. VGG);
- Indsæt indholds- og stilbilleder;
- Optimer for visuelt tiltalende resultater.
1. Hvad er den største fordel ved at bruge transfer learning i computer vision?
2. Hvilken tilgang anvendes i transfer learning, når kun det sidste lag af en foruddannet model ændres, mens de tidligere lag holdes faste?
3. Hvilken af følgende modeller anvendes ofte til transfer learning i objektgenkendelse?
Tak for dine kommentarer!