Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Transfer Learning inom Datorseende | Översikt över Avancerade Ämnen
Grunder i Datorseende

bookTransfer Learning inom Datorseende

Transfer learning möjliggör återanvändning av modeller som tränats på stora datamängder för nya uppgifter med begränsad data. Istället för att bygga ett neuralt nätverk från grunden utnyttjas förtränade modeller för att förbättra effektivitet och prestanda. Under denna kurs har du redan stött på liknande metoder i tidigare avsnitt, vilket har lagt grunden för att tillämpa transfer learning på ett effektivt sätt.

Vad är Transfer Learning?

Transfer learning är en teknik där en modell som tränats på en uppgift anpassas till en annan relaterad uppgift. Inom datorseende kan modeller förtränade på stora datamängder som ImageNet finjusteras för specifika tillämpningar såsom medicinsk avbildning eller autonom körning.

transfer_learning_idea

Varför är transfer learning viktigt?

  • Minskar träningstiden: eftersom modellen redan har lärt sig generella egenskaper krävs endast mindre justeringar;
  • Kräver mindre data: användbart när det är dyrt att samla in märkta data;
  • Förbättrar prestanda: förtränade modeller erbjuder robust egenskapsutvinning, vilket ökar noggrannheten.

Arbetsflöde för transfer learning

Det typiska arbetsflödet för transfer learning omfattar flera viktiga steg:

  1. Val av förtränad modell:

    • Välj en modell som tränats på en stor datamängd (t.ex. ResNet, VGG, YOLO);
    • Dessa modeller har lärt sig användbara representationer som kan anpassas till nya uppgifter.
  2. Modifiering av den förtränade modellen:

    • Egenskapsutvinning: frys de tidiga lagren och träna om de senare lagren för den nya uppgiften;
    • Finjustering: avfrys vissa eller alla lager och träna om dem på den nya datamängden.
  3. Träning på den nya datamängden:

    • Träna den modifierade modellen med en mindre datamängd specifik för måluppgiften;
    • Optimera med tekniker som backpropagation och förlustfunktioner.
  4. Utvärdering och iteration:

    • Bedöm prestanda med hjälp av mått som noggrannhet, precision, återkallelse och mAP;
    • Finjustera ytterligare vid behov för att förbättra resultaten.

Populära förtränade modeller

Några av de mest använda förtränade modellerna för datorseende är:

  • ResNet: djupa residualnätverk som möjliggör träning av mycket djupa arkitekturer;
  • VGG: en enkel arkitektur med enhetliga konvolutionslager;
  • EfficientNet: optimerad för hög noggrannhet med färre parametrar;
  • YOLO: toppmodern (SOTA) realtidsobjektdetektering.

Finjustering vs. Funktionsextraktion

Funktionsextraktion innebär att använda lagren i en förtränad modell som fasta funktionsutdragare. I detta tillvägagångssätt tas modellens ursprungliga klassificeringslager vanligtvis bort och ersätts med ett nytt, specifikt för måluppgiften. De förtränade lagren förblir frysta, vilket betyder att deras vikter inte uppdateras under träningen. Detta snabbar upp träningen och 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 däremot ett steg längre genom att låsa upp vissa eller alla förtränade lager och träna om dem på den nya datamängden. Detta gör det möjligt för modellen att anpassa de inlärda funktionerna närmare de specifika egenskaperna hos den nya uppgiften, vilket ofta leder till förbättrad prestanda—särskilt när den nya datamängden är tillräckligt stor eller skiljer sig avsevärt från den ursprungliga träningsdatan.

for layer in base_model.layers[-10:]:  # Unfreeze last 10 layers
    layer.trainable = True

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Tillämpningar av transferinlärning

transfer_learning_uses

1. Bildklassificering

Bildklassificering innebär att tilldela etiketter till bilder baserat på deras visuella innehåll. Förtränade modeller som ResNet och EfficientNet kan anpassas för specifika uppgifter såsom medicinsk avbildning eller djurlivsklassificering.

Exempel:

  • Välj en förtränad modell (t.ex. ResNet);
  • Ändra klassificeringslagret för att matcha målklasserna;
  • Finjustera med en lägre inlärningshastighet.

2. Objektigenkänning

Objektigenkänning innebär både identifiering av objekt och lokalisering av dem inom en bild. Transfer learning möjliggör att modeller som Faster R-CNN, SSD och YOLO effektivt kan upptäcka specifika objekt i nya datamängder.

Exempel:

  • Använd en förtränad objektigenkänningsmodell (t.ex. YOLOv8);
  • Finjustera på en anpassad datamängd med nya objektklasser;
  • Utvärdera prestanda och optimera därefter.

3. Semantisk segmentering

Semantisk segmentering klassificerar varje pixel i en bild till fördefinierade kategorier. Modeller som U-Net och DeepLab används ofta i tillämpningar som autonom körning och medicinsk avbildning.

Exempel:

  • Använd en förtränad segmenteringsmodell (t.ex. U-Net);
  • Träna på en domänspecifik datamängd;
  • Justera hyperparametrar för bättre noggrannhet.

4. Stilöverföring

Stilöverföring applicerar den visuella stilen från en bild till en annan samtidigt som det ursprungliga innehållet bevaras. Denna teknik används ofta inom digital konst och bildförbättring, med hjälp av förtränade modeller som VGG.

Exempel:

  • Välj en stilöverföringsmodell (t.ex. VGG);
  • Ange innehålls- och stilbilder;
  • Optimera för visuellt tilltalande resultat.

1. Vad är den största fördelen med att använda transfer learning inom datorseende?

2. Vilket tillvägagångssätt används i transfer learning när endast det sista lagret i en förtränad modell modifieras medan de tidigare lagren hålls fasta?

3. Vilken av följande modeller används ofta för transfer learning inom objektigenkänning?

question mark

Vad är den största fördelen med att använda transfer learning inom datorseende?

Select the correct answer

question mark

Vilket tillvägagångssätt används i transfer learning när endast det sista lagret i en förtränad modell modifieras medan de tidigare lagren hålls fasta?

Select the correct answer

question mark

Vilken av följande modeller används ofta för transfer learning inom objektigenkänning?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.45

bookTransfer Learning inom Datorseende

Svep för att visa menyn

Transfer learning möjliggör återanvändning av modeller som tränats på stora datamängder för nya uppgifter med begränsad data. Istället för att bygga ett neuralt nätverk från grunden utnyttjas förtränade modeller för att förbättra effektivitet och prestanda. Under denna kurs har du redan stött på liknande metoder i tidigare avsnitt, vilket har lagt grunden för att tillämpa transfer learning på ett effektivt sätt.

Vad är Transfer Learning?

Transfer learning är en teknik där en modell som tränats på en uppgift anpassas till en annan relaterad uppgift. Inom datorseende kan modeller förtränade på stora datamängder som ImageNet finjusteras för specifika tillämpningar såsom medicinsk avbildning eller autonom körning.

transfer_learning_idea

Varför är transfer learning viktigt?

  • Minskar träningstiden: eftersom modellen redan har lärt sig generella egenskaper krävs endast mindre justeringar;
  • Kräver mindre data: användbart när det är dyrt att samla in märkta data;
  • Förbättrar prestanda: förtränade modeller erbjuder robust egenskapsutvinning, vilket ökar noggrannheten.

Arbetsflöde för transfer learning

Det typiska arbetsflödet för transfer learning omfattar flera viktiga steg:

  1. Val av förtränad modell:

    • Välj en modell som tränats på en stor datamängd (t.ex. ResNet, VGG, YOLO);
    • Dessa modeller har lärt sig användbara representationer som kan anpassas till nya uppgifter.
  2. Modifiering av den förtränade modellen:

    • Egenskapsutvinning: frys de tidiga lagren och träna om de senare lagren för den nya uppgiften;
    • Finjustering: avfrys vissa eller alla lager och träna om dem på den nya datamängden.
  3. Träning på den nya datamängden:

    • Träna den modifierade modellen med en mindre datamängd specifik för måluppgiften;
    • Optimera med tekniker som backpropagation och förlustfunktioner.
  4. Utvärdering och iteration:

    • Bedöm prestanda med hjälp av mått som noggrannhet, precision, återkallelse och mAP;
    • Finjustera ytterligare vid behov för att förbättra resultaten.

Populära förtränade modeller

Några av de mest använda förtränade modellerna för datorseende är:

  • ResNet: djupa residualnätverk som möjliggör träning av mycket djupa arkitekturer;
  • VGG: en enkel arkitektur med enhetliga konvolutionslager;
  • EfficientNet: optimerad för hög noggrannhet med färre parametrar;
  • YOLO: toppmodern (SOTA) realtidsobjektdetektering.

Finjustering vs. Funktionsextraktion

Funktionsextraktion innebär att använda lagren i en förtränad modell som fasta funktionsutdragare. I detta tillvägagångssätt tas modellens ursprungliga klassificeringslager vanligtvis bort och ersätts med ett nytt, specifikt för måluppgiften. De förtränade lagren förblir frysta, vilket betyder att deras vikter inte uppdateras under träningen. Detta snabbar upp träningen och 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 däremot ett steg längre genom att låsa upp vissa eller alla förtränade lager och träna om dem på den nya datamängden. Detta gör det möjligt för modellen att anpassa de inlärda funktionerna närmare de specifika egenskaperna hos den nya uppgiften, vilket ofta leder till förbättrad prestanda—särskilt när den nya datamängden är tillräckligt stor eller skiljer sig avsevärt från den ursprungliga träningsdatan.

for layer in base_model.layers[-10:]:  # Unfreeze last 10 layers
    layer.trainable = True

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Tillämpningar av transferinlärning

transfer_learning_uses

1. Bildklassificering

Bildklassificering innebär att tilldela etiketter till bilder baserat på deras visuella innehåll. Förtränade modeller som ResNet och EfficientNet kan anpassas för specifika uppgifter såsom medicinsk avbildning eller djurlivsklassificering.

Exempel:

  • Välj en förtränad modell (t.ex. ResNet);
  • Ändra klassificeringslagret för att matcha målklasserna;
  • Finjustera med en lägre inlärningshastighet.

2. Objektigenkänning

Objektigenkänning innebär både identifiering av objekt och lokalisering av dem inom en bild. Transfer learning möjliggör att modeller som Faster R-CNN, SSD och YOLO effektivt kan upptäcka specifika objekt i nya datamängder.

Exempel:

  • Använd en förtränad objektigenkänningsmodell (t.ex. YOLOv8);
  • Finjustera på en anpassad datamängd med nya objektklasser;
  • Utvärdera prestanda och optimera därefter.

3. Semantisk segmentering

Semantisk segmentering klassificerar varje pixel i en bild till fördefinierade kategorier. Modeller som U-Net och DeepLab används ofta i tillämpningar som autonom körning och medicinsk avbildning.

Exempel:

  • Använd en förtränad segmenteringsmodell (t.ex. U-Net);
  • Träna på en domänspecifik datamängd;
  • Justera hyperparametrar för bättre noggrannhet.

4. Stilöverföring

Stilöverföring applicerar den visuella stilen från en bild till en annan samtidigt som det ursprungliga innehållet bevaras. Denna teknik används ofta inom digital konst och bildförbättring, med hjälp av förtränade modeller som VGG.

Exempel:

  • Välj en stilöverföringsmodell (t.ex. VGG);
  • Ange innehålls- och stilbilder;
  • Optimera för visuellt tilltalande resultat.

1. Vad är den största fördelen med att använda transfer learning inom datorseende?

2. Vilket tillvägagångssätt används i transfer learning när endast det sista lagret i en förtränad modell modifieras medan de tidigare lagren hålls fasta?

3. Vilken av följande modeller används ofta för transfer learning inom objektigenkänning?

question mark

Vad är den största fördelen med att använda transfer learning inom datorseende?

Select the correct answer

question mark

Vilket tillvägagångssätt används i transfer learning när endast det sista lagret i en förtränad modell modifieras medan de tidigare lagren hålls fasta?

Select the correct answer

question mark

Vilken av följande modeller används ofta för transfer learning inom objektigenkänning?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 1
some-alt