24/03/2005
Konceptet om det receptive felt i et konvolutionelt neuralt netværk (CNN) er en fundamental byggesten, som er utrolig nyttig at have kendskab til, når man designer nye modeller eller forsøger at forstå eksisterende. At kende til dette koncept giver os mulighed for at analysere den indre funktion af den neurale arkitektur, vi er interesserede i, og tænke over eventuelle forbedringer. I denne artikel vil vi dykke ned i, hvad et receptivt felt præcist er, hvorfor det er vigtigt, og hvordan vi kan beregne dets størrelse og optimere det til specifikke opgaver.

Hvad er et Receptivt Felt?
Formelt set er det receptive felt den region i inputrummet, som en bestemt feature i et CNN er påvirket af. Mere uformelt er det den del af et inputbillede, der efter en række konvolutioner resulterer i en enkelt værdi (en feature) i et dybere lag. Det giver os en idé om, hvor vores resultater stammer fra, mens data flyder gennem netværkets lag. For at belyse konceptet yderligere kan man forestille sig et netværk med flere lag. En neuron i det første lag 'ser' kun en lille del af inputbilledet, bestemt af kernelstørrelsen. En neuron i det andet lag 'ser' på outputtet fra flere neuroner i det første lag. Dermed 'ser' den indirekte på en større del af det oprindelige inputbillede. Denne samlede region i det oprindelige inputbillede er neuronens receptive felt.
Typisk er vi mest interesserede i størrelsen på det receptive felt i forhold til vores oprindelige input for at forstå, hvor stort et område CNN'et dækker. Dette er essentielt i mange computer vision-opgaver.
Hvorfor er det Receptive Felt Vigtigt?
Forståelse og diagnosticering af, hvordan dybe konvolutionelle neurale netværk fungerer, kræver en forståelse for konceptet om det receptive felt. Fordi alt i et inputbillede, der ligger uden for en enheds receptive felt, ikke har nogen indflydelse på dens værdi, skal det receptive felt omhyggeligt styres for at sikre, at det dækker hele den relevante billedregion.
Mange opgaver, især tætte forudsigelsesopgaver som semantisk billedsegmentering, stereo-matching og estimering af optisk flow, kræver, at hver output-pixel har et stort receptivt felt, så ingen væsentlig information går tabt, når forudsigelsen genereres. Hvis netværket for eksempel ikke har kapacitet til at tage højde for nok omkringliggende pixels, når det laver sine forudsigelser, kan større objekter ende med ufuldstændige kanter. Det samme gælder for objektgenkendelse. Hvis det konvolutionelle neurale netværk ikke har et tilstrækkeligt stort receptivt felt, kan nogle af de større objekter på billedet forblive uopdagede.
Beregning af Størrelsen på det Receptive Felt
At kunne beregne størrelsen på det receptive felt er afgørende for at designe en passende arkitektur. Lad os se på, hvordan man gør det. Vi kan beskrive beregningen med en simpel rekursiv formel, der bygger sig op lag for lag.
Størrelsen på det receptive felt (r) for et lag l kan beregnes baseret på det foregående lags receptive felt (rl-1), kernelstørrelsen (kl) og striden (sl) for det nuværende lag.

En almindelig formel ser således ud:
rl = rl-1 + (kl - 1) * Sl-1
Hvor Sl-1 er den kumulative stride op til lag l-1 (produktet af alle foregående strides). Dette viser, at det receptive felt vokser additivt med kernelstørrelsen og multiplikativt med striden.
Eksempel på Beregning
Lad os tage et simpelt eksempel med et netværk bestående af tre konvolutionelle lag. Vi antager, at inputlaget har et receptivt felt på 1.
| Lag | Kernelstørrelse (k) | Stride (s) | Kumulativ Stride (S) | Receptivt Felt (r) |
|---|---|---|---|---|
| Input | - | - | 1 | 1 |
| Conv1 | 3x3 | 1 | 1 | 1 + (3-1)*1 = 3 |
| Conv2 | 3x3 | 2 | 1*1 = 1 | 3 + (3-1)*1 = 5 |
| Conv3 | 5x5 | 1 | 1*2 = 2 | 5 + (5-1)*2 = 13 |
Som tabellen viser, vokser det receptive felt for hver neuron i outputlaget for Conv3 til 13x13 pixels i det oprindelige inputbillede. Denne viden er afgørende for at vurdere, om netværket kan 'se' hele objekter af en given størrelse.
Metoder til at Forøge det Receptive Felt
Der er flere strategier til at øge det receptive felt, hvilket ofte fører til bedre ydeevne.
- Gør netværket dybere: Den mest ligetil metode er at tilføje flere konvolutionelle lag. Hvert ekstra lag øger det receptive felt lineært med kernelstørrelsen, som set i formlen. Moderne arkitekturer som ResNet er ekstremt dybe netop af denne grund.
- Brug subsampling: Metoder som max-pooling eller konvolutioner med en stride større end 1 (stride convolutions) øger det receptive felt markant. En pooling-operation med en 2x2 kerne og stride 2 vil effektivt fordoble det receptive felt for de efterfølgende lag.
- Brug dilaterede konvolutioner (Atrous Convolutions): Dette er en kraftfuld teknik, hvor der indsættes 'huller' i konvolution-kernen. Dette øger kernens synsfelt uden at øge antallet af parametre eller beregningsomkostninger. Ved at 'puste kernen op' kan man eksponentielt øge det receptive felt uden at miste opløsning, hvilket er særligt nyttigt i billedsegmentering.
- Depthwise convolutions: Denne taktik øger det receptive felt med et lille beregningsmæssigt fodaftryk. Selvom depthwise convolutions ikke direkte øger feltet, gør deres effektivitet det muligt at bygge dybere netværk med færre parametre, hvilket indirekte fører til et større receptivt felt.
Det Effektive Receptive Felt (ERF)
En vigtig indsigt er, at ikke alle pixels inden for et receptivt felt bidrager lige meget til output-enhedens respons. Intuitivt har pixels i midten af et receptivt felt en meget større indflydelse på outputtet, fordi de har flere 'stier' eller veje, de kan bidrage til outputtet gennem de forskellige lag.
Dette koncept kaldes det effektive receptive felt (ERF). ERF er den region, der indeholder de input-pixels, som har en ikke-ubetydelig indflydelse på en given output-enhed. Studier har vist, at ERF ofte følger en Gaussisk fordeling, hvor indflydelsen er stærkest i centrum og falder mod kanterne af det teoretiske receptive felt. Under en backward pass (træning) vil gradienterne fra en output-enhed blive fordelt gennem alle stierne, hvilket betyder, at de centrale pixels modtager en meget større gradient og dermed lærer mere.

At forstå ERF er vigtigt, da det teoretiske receptive felt kan være vildledende stort. Selvom en neuron teoretisk kan 'se' et stort område, fokuserer den i praksis på et meget mindre, centralt område. Dette har konsekvenser for design af netværk, da man skal sikre, at ERF er stort nok til at dække de relevante objekter i en opgave.
Ofte Stillede Spørgsmål (FAQ)
Er et stort receptivt felt altid nødvendigt?
Ikke nødvendigvis. Det afhænger fuldstændigt af opgaven. Til opgaver, hvor man skal identificere små, lokale features eller små objekter, kan et for stort receptivt felt være skadeligt, da det kan introducere støj fra baggrunden og omkringliggende kontekst, som ikke er relevant. For opgaver, der kræver en bredere kontekstuel forståelse, som sceneklassificering eller detektion af store objekter, er et stort receptivt felt derimod afgørende.
Hvordan påvirker padding det receptive felt?
Padding i sig selv ændrer ikke på størrelsen af det receptive felt. Formlen for det receptive felt afhænger kun af kernelstørrelse og stride. Paddingens rolle er at kontrollere størrelsen på output-feature-kortet. Ved at tilføje padding kan man bevare den rumlige opløsning gennem lagene, hvilket sikrer, at neuroner i de efterfølgende lag kan have receptive felter, der er korrekt centreret og dækker kanterne af det oprindelige billede.
Hvad er forskellen på et receptivt felt og kernelstørrelse?
Kernelstørrelsen er en hyperparameter for et enkelt konvolutionelt lag. Den definerer størrelsen på det filter, der glider over input-feature-kortet. Det receptive felt er derimod en egenskab ved en neuron i et feature-kort, som beskriver dens forbindelse hele vejen tilbage til inputlaget. For en neuron i det allerførste konvolutionelle lag er dens receptive felt lig med lagets kernelstørrelse. Men for neuroner i dybere lag er det receptive felt et resultat af den kumulative effekt af alle foregående lags kernels og strides og er derfor meget større end nogen enkelt kernelstørrelse.
Konklusion
I denne artikel har vi lært om det receptive felt i et konvolutionelt neuralt netværk, og hvorfor det er afgørende at kende dets størrelse og egenskaber. Fra dets grundlæggende definition som en neurons 'synsfelt' til de praktiske metoder til beregning og forøgelse af det, er det receptive felt en central designovervejelse i moderne deep learning. Vi har også berørt det vigtige koncept om det effektive receptive felt, som giver en mere nuanceret forståelse af, hvordan information faktisk behandles i et netværk. At mestre disse koncepter er et afgørende skridt for enhver, der arbejder med at bygge og optimere konvolutionelle neurale netværk til komplekse opgaver inden for computer vision og andre domæner.
Hvis du vil læse andre artikler, der ligner Forståelse af det Receptive Felt i CNNs, kan du besøge kategorien Teknologi.
