Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Konvolutionslag | Konvolutionelle Neurale Netværk
Computer Vision Essentials med Python

Konvolutionslag

Stryg for at vise menuen

Forståelse af konvolutionslag

Konvolutionslag udgør kernen i convolutional neural networks (CNNs). De anvender konvolution, hvor en lille matrix kaldet et filter (eller kernel) bevæger sig hen over et billede for at registrere kanter, teksturer og former. Dette gør det muligt for CNNs at behandle billeder mere effektivt end traditionelle netværk.

I stedet for at analysere hele billedet på én gang, opdeler CNNs det i mindre sektioner og registrerer egenskaber på forskellige niveauer. Tidlige lag genkender simple mønstre som kanter, mens dybere lag identificerer komplekse strukturer.

Sådan fungerer konvolution

Konvolution involverer et filter (kernel), der bevæger sig hen over et billede og følger disse trin:

  1. Anvend kernel øverst til venstre på billedet.
  2. Udfør elementvis multiplikation mellem kernel og pixelværdier.
  3. Summér produkterne for at generere en outputpixel.
  4. Flyt kernel i henhold til stride og gentag.
  5. Generér et feature map, der fremhæver de registrerede mønstre.
Konvolutions-GIF

Flere filtre hjælper CNN'er med at opfange forskellige træk, såsom lodrette kanter, kurver og teksturer.

Filtre (Kerne):

Filtre spiller en afgørende rolle i at udtrække meningsfulde mønstre fra billeder. Forskellige typer filtre specialiserer sig i at identificere forskellige træk:

  • Kantdetekteringsfiltre: identificerer objektgrænser ved at opdage pludselige intensitetsændringer (f.eks. Sobel, Prewitt og Laplacian filtre);

  • Teksturfiltre: opfanger gentagne mønstre såsom bølger eller gitter (f.eks. Gabor filtre);

  • Skarphedsfiltre: forstærker billeddetaljer ved at forstærke højfrekvente komponenter;

  • Sløringsfiltre: reducerer støj og udglatter billeder (f.eks. Gaussisk sløringsfilter);

  • Prægefiltre: fremhæver kanter og tilføjer en 3D-effekt ved at understrege dybde.

Sammenligning af kerner

Hvert filter trænes til at genkende specifikke mønstre og bidrager til opbygningen af hierarkiske funktionsrepræsentationer i dybe CNN'er.

Convolution-lag genbruger samme filter på tværs af et billede, hvilket reducerer antallet af parametre og gør CNN'er effektive. Specialiserede lokalt forbundne lag anvender dog forskellige filtre til forskellige områder, når det er nødvendigt.

Ved at stable convolution-lag kan CNN'er udtrække detaljerede mønstre, hvilket gør dem effektive til billedklassificering, objektdetektion og vision-opgaver.

Hyperparametre:

  • Stride: styrer hvor langt filteret bevæger sig pr. trin;
  • Padding: tilføjer pixels for at kontrollere outputstørrelsen (samme padding bevarer størrelsen, valid padding reducerer den);
  • Antal filtre (dybde): flere filtre forbedrer funktionsdetektionen, men øger beregningen.
Note
Bemærk

Eksempel: For et 24×24 gråtonebillede med en 3×3 kerne og 64 filters er outputstørrelsen 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å inputbilledet = 24;
  • HH: højde på inputbilledet = 24;
  • FF: størrelse på filteret (kernen) = 3 (forudsat en kvadratisk 3×3 kerne);
  • DD: antal filtre (outputdybde) = 64.

Før næste kapitel

Selvom konvolutionslag kan formindske outputstørrelsen, er deres primære formål feature-ekstraktion, ikke dimensionalitetsreduktion. Pooling-lag derimod reducerer eksplicit dimensionaliteten samtidig med, at vigtige informationer bevares, hvilket sikrer effektivitet i dybere lag.

1. Hvad er den primære rolle for et konvolutionslag i et CNN?

2. Hvilken hyperparameter bestemmer, hvor langt et filter bevæger sig under konvolution?

3. Hvad er formålet med at anvende flere filtre i et konvolutionslag?

question mark

Hvad er den primære rolle for et konvolutionslag i et CNN?

Vælg det korrekte svar

question mark

Hvilken hyperparameter bestemmer, hvor langt et filter bevæger sig under konvolution?

Vælg det korrekte svar

question mark

Hvad er formålet med at anvende flere filtre i et konvolutionslag?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2

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

Sektion 3. Kapitel 2
some-alt