Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Konvolusjonslag | Konvolusjonelle Nevrale Nettverk
Datamaskinsyn-Essensielt med Python

Konvolusjonslag

Sveip for å vise menyen

Forståelse av konvolusjonslag

Konvolusjonslag er kjernen i konvolusjonelle nevrale nettverk (CNN-er). De utfører konvolusjon, der en liten matrise kalt et filter (eller kjerne) beveger seg over et bilde for å oppdage kanter, teksturer og former. Dette gjør at CNN-er kan behandle bilder mer effektivt enn tradisjonelle nettverk.

I stedet for å analysere hele bildet samtidig, deler CNN-er det opp i mindre seksjoner og oppdager trekk på ulike nivåer. Tidlige lag gjenkjenner enkle mønstre som kanter, mens dypere lag oppdager komplekse strukturer.

Hvordan konvolusjon fungerer

Konvolusjon innebærer at et filter (kjerne) beveger seg over et bilde, og følger disse trinnene:

  1. Plasser kjernen øverst til venstre i bildet.
  2. Utfør elementvis multiplikasjon mellom kjernen og pikselverdiene.
  3. Summer produktene for å generere en utgangspiksel.
  4. Flytt kjernen i henhold til steglengden og gjenta.
  5. Generer et trekkart som fremhever oppdagede mønstre.
Konvolusjon GIF

Flere filtre gjør at CNN-er kan fange opp ulike trekk, som vertikale kanter, kurver og teksturer.

Filtre (Kjerner):

Filtre har en avgjørende rolle i å trekke ut meningsfulle mønstre fra bilder. Ulike typer filtre er spesialisert på å identifisere ulike trekk:

  • Kantdeteksjonsfiltre: identifiserer objektgrenser ved å oppdage brå endringer i intensitet (f.eks. Sobel-, Prewitt- og Laplacian-filtre);

  • Teksturfiltre: fanger opp repeterende mønstre som bølger eller rutenett (f.eks. Gabor-filtre);

  • Skarphetsfiltre: forsterker bildedetaljer ved å forsterke høyfrekvente komponenter;

  • Uskarphetsfiltre: reduserer støy og glatter ut bilder (f.eks. Gaussisk uskarphetsfilter);

  • Pregningsfiltre: fremhever kanter og gir en 3D-effekt ved å understreke dybde.

Sammenligning av kjerner

Hvert filter trenes til å oppdage spesifikke mønstre og bidrar til å bygge hierarkiske representasjoner av trekk i dype CNN-er.

Konvolusjonslag gjenbruker samme filter over hele bildet, noe som reduserer antall parametere og gjør CNN-er effektive. Spesialiserte lokalt tilkoblede lag bruker derimot forskjellige filtre for ulike områder når det er nødvendig.

Ved å stable konvolusjonslag kan CNN-er trekke ut detaljerte mønstre, noe som gjør dem kraftige for bildeklassifisering, objektdeteksjon og synsoppgaver.

Hyperparametere:

  • Steglengde (stride): styrer hvor langt filteret flyttes per steg;
  • Utfylling (padding): legger til piksler for å kontrollere utdataens størrelse (samme utfylling bevarer størrelsen, gyldig utfylling reduserer den);
  • Antall filtre (dybde): flere filtre forbedrer trekkdeteksjon, men øker beregningsmengden.
Note
Merk

Eksempel: For et 24×24 gråtonebilde med en 3×3 kjerne og 64 filters, er utdataens størrelse 22×22×64, beregnet som:

(WF+1)×(HF+1)×D==(243+1)×(243+1)×64==22×22×64,(W - F + 1) \times (H - F + 1) \times D =\\= (24 - 3 + 1) \times (24 - 3 + 1) \times 64 =\\= 22\times22\times64,

Hvor:

  • WW: bredde på inngangsbildet = 24;
  • HH: høyde på inngangsbildet = 24;
  • FF: størrelse på filteret (kjerne) = 3 (antar en kvadratisk 3×3 kjerne);
  • DD: antall filtre (dybde på utdata) = 64.

Før neste kapittel

Selv om konvolusjonslag kan redusere utgangsstørrelsen, er deres hovedformål funksjonsekstraksjon, ikke dimensjonsreduksjon. Pooling-lag derimot, reduserer eksplisitt dimensjonalitet samtidig som viktig informasjon beholdes, noe som sikrer effektivitet i dypere lag.

1. Hva er hovedrollen til et konvolusjonslag i et CNN?

2. Hvilken hyperparameter bestemmer hvor langt et filter beveger seg under konvolusjon?

3. Hva er formålet med å bruke flere filtre i et konvolusjonslag?

question mark

Hva er hovedrollen til et konvolusjonslag i et CNN?

Velg det helt riktige svaret

question mark

Hvilken hyperparameter bestemmer hvor langt et filter beveger seg under konvolusjon?

Velg det helt riktige svaret

question mark

Hva er formålet med å bruke flere filtre i et konvolusjonslag?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

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

Seksjon 3. Kapittel 2
some-alt