Jeg undersøgte noget litteratur relateret til fuldt konvolutionelle netværk og stødte på følgende sætning ,

Et fuldstændigt konvolutionsnet opnås ved at erstatte de parameterrige fuldt forbundne lag i standard CNN-arkitekturer med konvolutionslag med $ 1 \ gange 1 $ kerner.

Jeg har to spørgsmål.

  1. Hvad menes der med parameterrig ? Kaldes det parameterrig, fordi de fuldt forbundne lag videregiver parametre uden nogen form for “rumlig” reduktion?

  2. Hvordan fungerer $ 1 \ gange 1 $ kerner? Betyder ikke “t $ 1 \ gange 1 $ kerne, at man glider en enkelt pixel over billedet? Jeg er forvirret over dette.

Svar

Fuldt konvolutionsnetværk

A fuldt foldningsnetværk (FCN) er et neuralt netværk, der kun udfører sammenfald (og undersampling eller upsampling). Tilsvarende er et FCN et CNN uden fuldt forbundne lag.

Convolution neurale netværk

Det typiske convolution neurale netværk (CNN) er ikke fuldstændigt convolutional, fordi det indeholder ofte også fuldt forbundne lag (som ikke udfører sammenfaldsoperationen), som er parameterrige i den forstand, at de har mange parametre (sammenlignet med deres ækvivalente fældning) lag), selvom de fuldt forbundne lag også kan ses som krumninger med ker nels, der dækker hele inputregionerne , hvilket er hovedideen bag konvertering af et CNN til et FCN. Se denne video af Andrew Ng, der forklarer, hvordan man konverterer et fuldt tilsluttet lag til et sammenblandingslag.

Et eksempel på et FCN

Et eksempel på et fuldstændigt sammenblandet netværk er U-net (kaldes på denne måde på grund af dens U-form, som du kan se på nedenstående illustration), som er et berømt netværk, der bruges til semantisk segmentering , dvs. klassificere pixels i et billede, så pixels, der hører til den samme klasse (f.eks. en person), er knyttet til den samme etiket (dvs. person), også pixelvis ( eller tæt) klassificering.

indtast billedbeskrivelse her

Semantisk segmentering

Så i semantisk segmentering vil du knytte en etiket til hver pixel (eller lille pixelplaster) i inputbilledet. Her “er en mere suggestiv illustration af et neuralt netværk, der udfører semantisk segmentering.

indtast billedbeskrivelse her

Instanssegmentering

Der er også forekomstssegmentering , hvor du også vil differentiere forskellige forekomster af samme klasse (f.eks. vil du skelne mellem to personer i det samme billede ved at mærke dem forskelligt). Et eksempel på et neuralt netværk, der bruges for eksempel segmentering er maske R-CNN . Blogindlægget Segmentering: U-Net, Mask R-CNN og Medical Applications (2020) af Rachel Draelos beskriver disse to problemer og netværk meget godt.

Her er et eksempel på et billede, hvor forekomster af samme klasse (dvs. person) er blevet mærket forskelligt (orange og blå).

indtast billedebeskrivelse her

Både semantisk og instanssegmentering er tæt klassifikationsopgaver (specifikt falder de i kategorien billedsegmentering ), det vil sige, at du vil klassificere hver pixel eller mange små patches af et billede.

$ 1 \ gange 1 $ indviklinger

I U-net-diagrammet ovenfor kan du se, at der kun er indviklinger, kopiering og beskæring, maks. pooling og upsampling-operationer. Der er ingen fuldt forbundne lag.

Så hvordan knytter vi en etiket til hver pixel (eller en lille patch af p ixels) af input? Hvordan udfører vi klassificeringen af hver pixel (eller patch) uden et endeligt fuldt tilsluttet lag?

Det er her $ 1 \ gange 1 $ nedbrydnings- og upsampling-operationer er nyttige!

I tilfælde af U-net-diagrammet ovenfor (specifikt den øverste højre del af diagrammet, som illustreres nedenfor for at gøre det tydeligt), to $ 1 \ gange 1 \ gange 64 $ kerner anvendes til inputvolumenet (ikke billederne!) for at producere to funktionskort i størrelse $ 388 \ gange 388 $ . De brugte to $ 1 \ gange 1 $ kerner, fordi der var to klasser i deres eksperimenter (celle og ikke-celle). Det nævnte blogindlæg giver dig også intuitionen bag dette, så du bør læse det.

indtast billedbeskrivelse her

Hvis du har forsøgt at analysere U-net-diagrammet omhyggeligt, vil du bemærke, at outputen kortlægges har forskellige rumlige (højde og vægt) dimensioner end inputbillederne, som har dimensioner $ 572 \ gange 572 \ gange 1 $ .

Det er fint, fordi vores generelle mål er at udføre tæt klassificering (dvs. klassificere patches af billedet, hvor patches kun kan indeholde en pixel ), selvom jeg sagde, at vi ville have udført pixelvis klassificering, så måske forventede du, at outputene skulle have de samme nøjagtige rumlige dimensioner af inputne. Bemærk dog, at du i praksis også kunne have output-kortene den samme rumlige dimension som input: du ville bare ne ed for at udføre en anden upsampling (deconvolution) -handling.

Hvordan fungerer $ 1 \ gange 1 $ indviklinger?

A $ 1 \ gange 1 $ konvolution er bare den typiske 2d-konvolution, men med en $ 1 \ times1 $ kerne.

Som du sikkert allerede ved (og hvis du ikke vidste dette, ved du det nu), hvis du har en $ g \ gange g $ kerne, der anvendes på en input af størrelse $ h \ times w \ times d $ , hvor $ d $ er dybden af inputvolumenet (som f.eks. i tilfælde af gråtonebilleder $ 1 $ ), kernen har faktisk formen $ g \ gange g \ gange d $ , dvs. kernens tredje dimension er lig med den tredje dimension af det input, som den anvendes til. Dette er altid tilfældet, bortset fra 3d-krængninger, men vi taler nu om de typiske 2d-krængninger! Se dette svar for mere info.

Så hvis vi vil anvende en $ 1 \ gange 1 $ foldning til et input med form $ 388 \ gange 388 \ gange 64 $ , hvor $ 64 $ er inputdybden, så de faktiske $ 1 \ gange 1 $ kerner, som vi skal bruge, har form $ 1 \ gange 1 \ gange 64 $ (som jeg sagde ovenfor for U-net). Den måde, hvorpå du reducerer inputdybden med $ 1 \ gange 1 $ , bestemmes af antallet af $ 1 \ gange 1 $ kerner, som du vil bruge. Dette er nøjagtigt det samme som for enhver 2d-konvolutionsoperation med forskellige kerner (f.eks. $ 3 \ gange 3 $ ).

I tilfælde af U-net reduceres inputens rumlige dimensioner på samme måde som de rumlige dimensioner for ethvert input til et CNN reduceres (dvs. 2d-foldning efterfulgt af downsampling-operationer). Hovedforskellen (bortset fra ikke at bruge fuldt forbundne lag) mellem U-net og andre CNNer er, at U-net udfører samplingsoperationer, så det kan ses som en indkoder (venstre del) efterfulgt af en dekoder (højre del) .

Kommentarer

  • Tak for dit detaljerede svar, jeg sætter stor pris på det!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *