Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Transfer Learning i Computer Vision | Oversigt Over Avancerede Emner
Computer Vision Essentials

bookTransfer 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.

transfer_learning_idea

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

transfer_learning_uses

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?

question mark

Hvad er den største fordel ved at bruge transfer learning i computer vision?

Select the correct answer

question mark

Hvilken tilgang anvendes i transfer learning, når kun det sidste lag af en foruddannet model ændres, mens de tidligere lag holdes faste?

Select the correct answer

question mark

Hvilken af følgende modeller anvendes ofte til transfer learning i objektgenkendelse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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

bookTransfer 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.

transfer_learning_idea

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

transfer_learning_uses

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?

question mark

Hvad er den største fordel ved at bruge transfer learning i computer vision?

Select the correct answer

question mark

Hvilken tilgang anvendes i transfer learning, når kun det sidste lag af en foruddannet model ændres, mens de tidligere lag holdes faste?

Select the correct answer

question mark

Hvilken af følgende modeller anvendes ofte til transfer learning i objektgenkendelse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 1
some-alt