Intro Bakgrund
Inom ett omvälvande neurala nätverk har vi vanligtvis en allmän struktur / flöde som ser ut så här:
- ingångsbild (dvs. en 2D-vektor
x
)
(1: a konvolutionsskiktet (Conv1) börjar här …)
- konvolverar en uppsättning filter (
w1
) längs 2D-bilden (dvs. görz1 = w1*x + b1
multiplikationer med produktprodukter), därz1
är 3D, ochb1
är förspänningar. - tillämpa en aktiveringsfunktion (t.ex. ReLu) för att göra
z1
icke-linjär (t.ex.a1 = ReLu(z1)
), dära1
är 3D.
(2: a konvolutionslagret (Conv2) börjar här …)
- konvolverar en uppsättning filter längs de nyligen beräknade aktiveringarna (dvs. gör
z2 = w2*a1 + b2
multiplikationer för produktprodukter), därz2
är 3D, och ochb2
är förspänningar. - tillämpa en aktiveringsfunktion (t.ex. ReLu) för att göra
z2
icke-linjär (t.ex.a2 = ReLu(z2)
), dära2
är 3D .
Frågan
Definitionen av termen " funktionskarta " verkar variera från litteratur till litteratur. Konkret:
- För det första fällningsskiktet motsvarar " karta " motsvarande inmatningsvektorn
x
, eller utdataproduktenz1
, eller utdataaktiveringarnaa1
, eller " process " omvandling avx
tilla1
eller något annat? - På samma sätt, för det andra fällningsskiktet, motsvarar " karta " ingångsaktiveringarna
a1
, eller utdatapunktproduktenz2
, eller utgångsaktiveringa2
, eller " processen " omvandlara1
tilla2
eller något annat?
Är det dessutom sant att termen " feat ure karta " är exakt samma som " aktiveringskarta "? (eller menar de egentligen två olika saker?)
Ytterligare referenser:
Utdrag från Neurala nätverk och djupinlärning – Kapitel 6 :
* Nomenklaturen används löst här. I synnerhet använder jag " funktionskarta " för att inte betyda den funktion som beräknas av fällningsskiktet utan snarare aktivering av dolda nervceller från lagret. Denna typ av milt missbruk av nomenklatur är ganska vanligt i forskningslitteraturen.
Utdrag från Visualisering och förståelse av konvolutionella nätverk av Matt Zeiler :
I denna artikel presenterar vi en visualiseringsteknik som avslöjar ingångsstimuli som väcker enskilda funktionskartor i vilket skikt som helst i modellen. […] Vårt tillvägagångssätt ger däremot en icke-parametrisk bild av invarians som visar vilka mönster från träningsuppsättningen som aktiverar funktionskartan. ..] en lokal kontraståtgärd som normaliserar svaren över funktionskartor. […] För att undersöka en given konve-ntsaktivering sätter vi alla andra aktiveringar i skiktet till noll och skickar funktionskartan s som ingång till det bifogade deconvnet-lagret. […] Convnet använder relo-icke-linjärer, som korrigerar funktionskartorna och ser till att funktionskartorna alltid är positiva. […] Convnet använder inlärda filter för att sammanföra funktionskartor från föregående lager. […] Fig. 6, dessa visualiseringar är exakta representationer av inmatningsmönstret som stimulerar den givna funktionskartan i modellen […] när de delar av den ursprungliga inmatningsbilden som motsvarar mönstret är ockluderade ser vi en tydlig nedgång i aktivitet inom funktionskartan. […]
Anmärkningar: introducerar också termen " funktionskarta " och " rättad funktionskarta " i figur 1.
Utdrag från Stanford CS231n kapitel på CNN :
[…] En farlig fallgrop som lätt kan märkas med denna visualisering är att vissa aktiveringskartor kan vara helt noll för många olika ingångar, vilket kan indikera döda filter, och kan vara ett symptom på höga inlärningshastigheter […] Typiskt utseende aktiveringar på det första CONV-lagret (vänster) och det femte CONV-lagret (till höger) på en utbildad AlexNet som tittar på en bild av en katt. Varje ruta visar en aktiveringskarta som motsvarar något filter. Observera att aktiveringarna är glesa (de flesta värdena är noll, i denna visualisering visas i svart) och mestadels lokala.
Utdrag från A-nybörjare-s-Guide-To-Understanding-Convolutional-Neural-Networks
[…] Varje unik plats på inmatningsvolymen ger ett nummer. Efter att ha skjutit filtret över alla platser kommer du att upptäcka att det du har kvar är en 28 x 28 x 1 rad med nummer, som vi kallar en aktiveringskarta eller funktionskarta.
Svar
En funktionskarta, eller aktiveringskarta, är utgångsaktiveringarna för ett visst filter (a1 i ditt fall) och definitionen är densamma oavsett vilket lager du befinner dig i.
Funktionskarta och aktiveringskarta betyder exakt samma sak. Det är kallas en aktiveringskarta eftersom det är en kartläggning som motsvarar aktiveringen av olika delar av bilden, och också en funktionskarta eftersom den också är en kartläggning av var en viss typ av funktion finns i bilden. En hög aktivering innebär att en viss funktion hittades.
En ”korrigerad funktionskarta” är bara en funktionskarta som skapades med Relu. Du kan eventuellt se termen ”funktionsmapp” som används för resultatet av punktprodukterna (z1) eftersom det här också är en karta över där vissa funktioner finns i bilden, men det är inte vanligt att se.
Kommentarer
Svar
I CNN-terminologi kallas 3 × 3-matrisen ett ”filter” eller ”kärna” eller ”funktionsdetektor” och matrisen som bildas genom att skjuta filtret över bilden och beräkna punktprodukten kallas Convolved Feature eller Activation Map eller Feature Map. Det är viktigt att notera att filter fungerar som funktionsdetektorer från den ursprungliga inmatningsbilden.
källa: https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
Svara
innan du talar om vad funktionskarta betyder, låt oss bara definiera termen för funktionsvektor.
funktionsvektor är vektorbild av objekt. Till exempel kan en bil representeras av [antal hjul, dörr. windows, age ..etc].
funktionskarta är en funktion som tar funktionsvektorer i ett utrymme och förvandlar dem till funktionsvektorer i ett annat. Till exempel med en funktionsvektor [volym, vikt, höjd, bredd] kan den returnera [1, volym / vikt, höjd * bredd] eller [höjd * bredd] eller till och med bara [volym]
a1
,a2
etc). I Conv2 antar jag att jag skulle kallaa1
ingångsaktiveringskartan ocha2
aktiveringskartan för utdata. I Conv1 anger jagx
inmatningsbilden ocha1
aktiveringskartan för utdata.