Intro bakgrunn
Innenfor et konvolusjonalt nevralt nettverk har vi vanligvis en generell struktur / flyt som ser slik ut:
- inngangsbilde (dvs. en 2D-vektor
x
)
(1. konvolusjonslag (Conv1) starter her …)
- samle et sett med filtre (
w1
) langs 2D-bildet (dvs. gjørz1 = w1*x + b1
produktproduktmultiplikasjoner), derz1
er 3D, ogb1
er skjevheter. - bruk en aktiveringsfunksjon (f.eks. ReLu) for å gjøre
z1
ikke-lineær (f.eks.a1 = ReLu(z1)
), dera1
er 3D.
(2. konvolusjonslag (Conv2) starter her …)
- involverer et sett med filtre langs de nylig beregnede aktiveringene (dvs. gjør
z2 = w2*a1 + b2
multiplikasjoner for punktprodukt), derz2
3D, og ogb2
er skjevheter. - bruk en aktiveringsfunksjon (f.eks. ReLu) for å gjøre
z2
ikke-lineær (f.eks.a2 = ReLu(z2)
), dera2
er 3D .
Spørsmålet
Definisjonen av begrepet " funksjonskart " ser ut til å variere fra litteratur til litteratur. Konkret:
- For det første konvolusjonslaget tilsvarer " kart " inngangsvektoren
x
, eller utdatapunktproduktetz1
, eller utgangsaktiveringenea1
, eller " prosess " konvertererx
tila1
, eller noe annet? - Tilsvarende, for det 2. konvolusjonslaget, tilsvarer " kart " inngangsaktiveringene
a1
, eller utdatapunktproduktetz2
, eller utgangsaktiveringa2
, eller " prosessen " konverterera1
tila2
, eller noe annet?
I tillegg er det sant at begrepet " feat ure kart " er nøyaktig det samme som " aktiveringskart "? (eller betyr de egentlig to forskjellige ting?)
Ytterligere referanser:
Utdrag fra Nevrale nettverk og dyp læring – kapittel 6 :
* Nomenklaturen brukes løst her. Spesielt bruker jeg " funksjonskart " for ikke å bety funksjonen beregnet av konvolusjonslaget, men heller aktivering av skjulte nevroner som kommer fra laget. Denne typen mild misbruk av nomenklatur er ganske vanlig i forskningslitteraturen.
Utdrag fra Visualisering og forståelse av konvolusjonsnettverk av Matt Zeiler :
I denne artikkelen introduserer vi en visualiseringsteknikk som avslører inngangsstimuli som begeistrer individuelle funksjonskart på ethvert lag i modellen. […] Vår tilnærming gir derimot et ikke-parametrisk syn på uforanderlighet, som viser hvilke mønstre fra treningssettet som aktiverer funksjonskartet. [. ..] en lokal kontrastoperasjon som normaliserer responsene på tvers av funksjonskart. […] For å undersøke en gitt konvnetaktivering, setter vi alle andre aktiveringer i laget til null og sender funksjonskartet s som inngang til det vedlagte deconvnet-laget. […] Convnet bruker relu-ikke-lineariteter, som korrigerer funksjonskartene og dermed sikrer at funksjonskartene alltid er positive. […] Convnet bruker lærte filtre for å samle funksjonskartene fra forrige lag. […] Fig. 6, disse visualiseringene er nøyaktige representasjoner av inngangsmønsteret som stimulerer det gitte funksjonskartet i modellen […] når delene av det originale inngangsbildet som tilsvarer mønsteret er okkludert, ser vi en tydelig fall i aktivitet innenfor funksjonskartet. […]
Merknader: introduserer også begrepet " funksjonskart " og " rettet funksjonskart " i figur 1.
Utdrag fra Stanford CS231n kapittel på CNN :
[…] En farlig fallgruve som lett kan legges merke til med denne visualiseringen er at noen aktiveringskart kan være null for mange forskjellige innganger, noe som kan indikere døde filtre, og kan være et symptom på høye læringsgrader […] Typisk utseende aktiveringer på det første CONV-laget (til venstre) og det 5. CONV-laget (til høyre) av en trent AlexNet som ser på et bilde av en katt. Hver rute viser et aktiveringskart som tilsvarer noe filter. Legg merke til at aktiveringene er sparsomme (de fleste verdiene er null, i denne visualiseringen vist i svart) og for det meste lokale.
Utdrag fra En-nybegynner-s-Guide-To-Understanding-Convolutional-Neural-Networks
[…] Hvert unike sted på inngangsvolumet gir et tall. Etter å ha skyvet filteret over alle stedene, vil du finne ut at det du sitter igjen med er et 28 x 28 x 1 utvalg av tall, som vi kaller et aktiveringskart eller funksjonskart.
Svar
Et funksjonskart, eller aktiveringskart, er utgangsaktiveringene for et gitt filter (a1 i ditt tilfelle) og definisjonen er den samme uansett hvilket lag du er på.
Funksjonskart og aktiveringskart betyr nøyaktig det samme. Det er kalt et aktiveringskart fordi det er en kartlegging som tilsvarer aktivering av forskjellige deler av bildet, og også et funksjonskart fordi det også er en kartlegging av hvor en bestemt type funksjon finnes i bildet. En høy aktivering betyr at en bestemt funksjon ble funnet.
Et «rettet funksjonskart» er bare et funksjonskart som ble opprettet ved hjelp av Relu. Du kan muligens se begrepet «funksjonskart» brukt for resultatet av punktproduktene (z1) fordi dette også er et kart over hvor visse funksjoner er i bildet, men det er ikke vanlig å se.
Kommentarer
Svar
I CNN-terminologi kalles 3 × 3-matrisen et «filter» eller «kjerne» eller «funksjonsdetektor» og matrisen som dannes ved å skyve filteret over bildet og beregne punktproduktet kalles Convolved Feature eller Activation Map eller Feature Map. Det er viktig å merke seg at filtre fungerer som funksjonsdetektorer fra det opprinnelige inngangsbildet.
kilde: https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
Svar
før du snakker om hva funksjonskart betyr, la oss bare definere begrepet funksjonsvektor.
funksjonsvektor er vektorrepresentasjon av objekter. For eksempel kan en bil representeres av [antall hjul, dør. windows, age ..etc].
funksjonskart er en funksjon som tar funksjonsvektorer i ett rom og transformerer dem til funksjonsvektorer i et annet. For eksempel gitt en funksjonsvektor [volum, vekt, høyde, bredde] kan den returnere [1, volum / vekt, høyde * bredde] eller [høyde * bredde] eller til og med bare [volum]
a1
,a2
osv.). I Conv2 antar jeg at jeg vil kallea1
inngangsaktiveringskartet, oga2
utgangsaktiveringskartet. I Conv1,x
inngangsbildet, oga1
utgangsaktiveringskartet.