Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overføring av læring i datamaskinsyn | Oversikt over avanserte emner
Grunnleggende Datamaskinsyn

bookOverføring av læring i datamaskinsyn

Overføringslæring gjør det mulig å gjenbruke modeller trent på store datasett for nye oppgaver med begrenset datamengde. I stedet for å bygge et nevralt nettverk fra bunnen av, utnytter vi forhåndstrente modeller for å øke effektivitet og ytelse. Gjennom dette kurset har du allerede møtt lignende tilnærminger i tidligere seksjoner, som har lagt grunnlaget for å anvende overføringslæring på en effektiv måte.

Hva er overføringslæring?

Overføringslæring er en teknikk der en modell trent på én oppgave tilpasses til en annen, relatert oppgave. Innen datamaskinsyn kan modeller forhåndstrent på store datasett som ImageNet finjusteres for spesifikke anvendelser som medisinsk bildediagnostikk eller autonom kjøring.

transfer_learning_idea

Hvorfor er overføringslæring viktig?

  • Reduserer treningstid: siden modellen allerede har lært generelle trekk, trengs kun små justeringer;
  • Krever mindre data: nyttig i tilfeller der det er kostbart å skaffe merkede data;
  • Øker ytelsen: forhåndstrente modeller gir robust trekkuttrekking, noe som forbedrer nøyaktigheten.

Arbeidsflyt for overføringslæring

Den typiske arbeidsflyten for overføringslæring innebærer flere sentrale trinn:

  1. Valg av forhåndstrent modell:

    • Velg en modell trent på et stort datasett (f.eks. ResNet, VGG, YOLO);
    • Disse modellene har lært nyttige representasjoner som kan tilpasses nye oppgaver.
  2. Modifisering av den forhåndstrente modellen:

    • Trekkuttrekking: frys de tidlige lagene og tren kun de senere lagene for den nye oppgaven;
    • Finjustering: frys opp noen eller alle lagene og tren dem på det nye datasettet.
  3. Trening på det nye datasettet:

    • Tren den modifiserte modellen med et mindre datasett spesifikt for måloppgaven;
    • Optimaliser ved bruk av teknikker som backpropagation og tap-funksjoner.
  4. Evaluering og iterasjon:

    • Vurder ytelsen ved hjelp av måleverdier som nøyaktighet, presisjon, tilbakekalling og mAP;
    • Finjuster ytterligere om nødvendig for å forbedre resultatene.

Populære forhåndstrente modeller

Noen av de mest brukte forhåndstrente modellene for datamaskinsyn inkluderer:

  • ResNet: dype residualnettverk som muliggjør trening av svært dype arkitekturer;
  • VGG: en enkel arkitektur med ensartede konvolusjonslag;
  • EfficientNet: optimalisert for høy nøyaktighet med færre parametere;
  • YOLO: toppmoderne (SOTA) sanntidsobjektdeteksjon.

Finjustering vs. funksjonsekstraksjon

Funksjonsekstraksjon innebærer å bruke lagene i en forhåndstrent modell som faste funksjonsekstraktorer. I denne tilnærmingen fjernes vanligvis modellens opprinnelige klassifiseringslag og erstattes med et nytt, spesifikt for måloppgaven. De forhåndstrente lagene forblir låst, noe som betyr at vektene deres ikke oppdateres under trening. Dette gir raskere trening og krever 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, derimot, går et steg videre ved å låse opp noen eller alle de forhåndstrente lagene og trene dem på nytt datasett. Dette gjør det mulig for modellen å tilpasse de lærte funksjonene tettere til de spesifikke egenskapene ved den nye oppgaven, noe som ofte gir bedre ytelse—spesielt når det nye datasettet er tilstrekkelig stort eller skiller seg betydelig fra det opprinnelige treningsdatasettet.

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

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

Bruksområder for overføringslæring

transfer_learning_uses

1. Bildeklassifisering

Bildeklassifisering innebærer å tilordne etiketter til bilder basert på deres visuelle innhold. Ferdigtrente modeller som ResNet og EfficientNet kan tilpasses for spesifikke oppgaver som medisinsk bildebehandling eller klassifisering av dyreliv.

Eksempel:

  • Velg en ferdigtrent modell (f.eks. ResNet);
  • Endre klassifiseringslaget for å matche målkategoriene;
  • Finjuster med en lavere læringsrate.

2. Objektgjenkjenning

Objektgjenkjenning innebærer både å identifisere objekter og lokalisere dem i et bilde. Overføringslæring gjør det mulig for modeller som Faster R-CNN, SSD og YOLO å oppdage spesifikke objekter i nye datasett på en effektiv måte.

Eksempel:

  • Bruk en ferdigtrent objektgjenkjenningsmodell (f.eks. YOLOv8);
  • Finjuster på et egendefinert datasett med nye objektklasser;
  • Evaluer ytelsen og optimaliser deretter.

3. Semantisk segmentering

Semantisk segmentering klassifiserer hver piksel i et bilde i forhåndsdefinerte kategorier. Modeller som U-Net og DeepLab er mye brukt i applikasjoner som autonom kjøring og medisinsk bildebehandling.

Eksempel:

  • Bruk en ferdigtrent segmenteringsmodell (f.eks. U-Net);
  • Tren på et domenespesifikt datasett;
  • Juster hyperparametere for bedre nøyaktighet.

4. Stiloverføring

Stiloverføring anvender den visuelle stilen fra ett bilde til et annet, samtidig som det opprinnelige innholdet bevares. Denne teknikken brukes ofte i digital kunst og bildeforbedring, ved å benytte ferdigtrente modeller som VGG.

Eksempel:

  • Velg en stiloverføringsmodell (f.eks. VGG);
  • Legg inn innholds- og stilbilder;
  • Optimaliser for visuelt tiltalende resultater.

1. Hva er den viktigste fordelen med å bruke overføringslæring i datamaskinsyn?

2. Hvilken tilnærming brukes i overføringslæring når kun det siste laget i en forhåndstrent modell endres, mens de tidligere lagene holdes faste?

3. Hvilken av følgende modeller brukes ofte til overføringslæring i objektdeteksjon?

question mark

Hva er den viktigste fordelen med å bruke overføringslæring i datamaskinsyn?

Select the correct answer

question mark

Hvilken tilnærming brukes i overføringslæring når kun det siste laget i en forhåndstrent modell endres, mens de tidligere lagene holdes faste?

Select the correct answer

question mark

Hvilken av følgende modeller brukes ofte til overføringslæring i objektdeteksjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookOverføring av læring i datamaskinsyn

Sveip for å vise menyen

Overføringslæring gjør det mulig å gjenbruke modeller trent på store datasett for nye oppgaver med begrenset datamengde. I stedet for å bygge et nevralt nettverk fra bunnen av, utnytter vi forhåndstrente modeller for å øke effektivitet og ytelse. Gjennom dette kurset har du allerede møtt lignende tilnærminger i tidligere seksjoner, som har lagt grunnlaget for å anvende overføringslæring på en effektiv måte.

Hva er overføringslæring?

Overføringslæring er en teknikk der en modell trent på én oppgave tilpasses til en annen, relatert oppgave. Innen datamaskinsyn kan modeller forhåndstrent på store datasett som ImageNet finjusteres for spesifikke anvendelser som medisinsk bildediagnostikk eller autonom kjøring.

transfer_learning_idea

Hvorfor er overføringslæring viktig?

  • Reduserer treningstid: siden modellen allerede har lært generelle trekk, trengs kun små justeringer;
  • Krever mindre data: nyttig i tilfeller der det er kostbart å skaffe merkede data;
  • Øker ytelsen: forhåndstrente modeller gir robust trekkuttrekking, noe som forbedrer nøyaktigheten.

Arbeidsflyt for overføringslæring

Den typiske arbeidsflyten for overføringslæring innebærer flere sentrale trinn:

  1. Valg av forhåndstrent modell:

    • Velg en modell trent på et stort datasett (f.eks. ResNet, VGG, YOLO);
    • Disse modellene har lært nyttige representasjoner som kan tilpasses nye oppgaver.
  2. Modifisering av den forhåndstrente modellen:

    • Trekkuttrekking: frys de tidlige lagene og tren kun de senere lagene for den nye oppgaven;
    • Finjustering: frys opp noen eller alle lagene og tren dem på det nye datasettet.
  3. Trening på det nye datasettet:

    • Tren den modifiserte modellen med et mindre datasett spesifikt for måloppgaven;
    • Optimaliser ved bruk av teknikker som backpropagation og tap-funksjoner.
  4. Evaluering og iterasjon:

    • Vurder ytelsen ved hjelp av måleverdier som nøyaktighet, presisjon, tilbakekalling og mAP;
    • Finjuster ytterligere om nødvendig for å forbedre resultatene.

Populære forhåndstrente modeller

Noen av de mest brukte forhåndstrente modellene for datamaskinsyn inkluderer:

  • ResNet: dype residualnettverk som muliggjør trening av svært dype arkitekturer;
  • VGG: en enkel arkitektur med ensartede konvolusjonslag;
  • EfficientNet: optimalisert for høy nøyaktighet med færre parametere;
  • YOLO: toppmoderne (SOTA) sanntidsobjektdeteksjon.

Finjustering vs. funksjonsekstraksjon

Funksjonsekstraksjon innebærer å bruke lagene i en forhåndstrent modell som faste funksjonsekstraktorer. I denne tilnærmingen fjernes vanligvis modellens opprinnelige klassifiseringslag og erstattes med et nytt, spesifikt for måloppgaven. De forhåndstrente lagene forblir låst, noe som betyr at vektene deres ikke oppdateres under trening. Dette gir raskere trening og krever 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, derimot, går et steg videre ved å låse opp noen eller alle de forhåndstrente lagene og trene dem på nytt datasett. Dette gjør det mulig for modellen å tilpasse de lærte funksjonene tettere til de spesifikke egenskapene ved den nye oppgaven, noe som ofte gir bedre ytelse—spesielt når det nye datasettet er tilstrekkelig stort eller skiller seg betydelig fra det opprinnelige treningsdatasettet.

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

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

Bruksområder for overføringslæring

transfer_learning_uses

1. Bildeklassifisering

Bildeklassifisering innebærer å tilordne etiketter til bilder basert på deres visuelle innhold. Ferdigtrente modeller som ResNet og EfficientNet kan tilpasses for spesifikke oppgaver som medisinsk bildebehandling eller klassifisering av dyreliv.

Eksempel:

  • Velg en ferdigtrent modell (f.eks. ResNet);
  • Endre klassifiseringslaget for å matche målkategoriene;
  • Finjuster med en lavere læringsrate.

2. Objektgjenkjenning

Objektgjenkjenning innebærer både å identifisere objekter og lokalisere dem i et bilde. Overføringslæring gjør det mulig for modeller som Faster R-CNN, SSD og YOLO å oppdage spesifikke objekter i nye datasett på en effektiv måte.

Eksempel:

  • Bruk en ferdigtrent objektgjenkjenningsmodell (f.eks. YOLOv8);
  • Finjuster på et egendefinert datasett med nye objektklasser;
  • Evaluer ytelsen og optimaliser deretter.

3. Semantisk segmentering

Semantisk segmentering klassifiserer hver piksel i et bilde i forhåndsdefinerte kategorier. Modeller som U-Net og DeepLab er mye brukt i applikasjoner som autonom kjøring og medisinsk bildebehandling.

Eksempel:

  • Bruk en ferdigtrent segmenteringsmodell (f.eks. U-Net);
  • Tren på et domenespesifikt datasett;
  • Juster hyperparametere for bedre nøyaktighet.

4. Stiloverføring

Stiloverføring anvender den visuelle stilen fra ett bilde til et annet, samtidig som det opprinnelige innholdet bevares. Denne teknikken brukes ofte i digital kunst og bildeforbedring, ved å benytte ferdigtrente modeller som VGG.

Eksempel:

  • Velg en stiloverføringsmodell (f.eks. VGG);
  • Legg inn innholds- og stilbilder;
  • Optimaliser for visuelt tiltalende resultater.

1. Hva er den viktigste fordelen med å bruke overføringslæring i datamaskinsyn?

2. Hvilken tilnærming brukes i overføringslæring når kun det siste laget i en forhåndstrent modell endres, mens de tidligere lagene holdes faste?

3. Hvilken av følgende modeller brukes ofte til overføringslæring i objektdeteksjon?

question mark

Hva er den viktigste fordelen med å bruke overføringslæring i datamaskinsyn?

Select the correct answer

question mark

Hvilken tilnærming brukes i overføringslæring når kun det siste laget i en forhåndstrent modell endres, mens de tidligere lagene holdes faste?

Select the correct answer

question mark

Hvilken av følgende modeller brukes ofte til overføringslæring i objektdeteksjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 1
some-alt