Intro-achtergrond
Binnen een convolutioneel neuraal netwerk hebben we meestal een algemene structuur / stroom die er als volgt uitziet:
- invoerafbeelding (dwz een 2D-vector
x
)
(1e convolutionele laag (Conv1) begint hier …)
- convolueer een set filters (
w1
) langs de 2D-afbeelding (dwz doe dez1 = w1*x + b1
puntproductvermenigvuldigingen), waarbijz1
3D is enb1
vooroordelen. - pas een activeringsfunctie toe (bijv. ReLu) om
z1
niet-lineair te maken (bijv.a1 = ReLu(z1)
), waarbija1
is 3D.
(2e convolutionele laag (Conv2) begint hier …)
- convolueer een reeks filters langs de nieuw berekende activeringen (dwz doe de
z2 = w2*a1 + b2
puntproductvermenigvuldigingen), waarbijz2
is 3D, en enb2
is vooringenomenheid. - een activeringsfunctie toepassen (bijv. ReLu) om
z2
niet-lineair te maken (bijv.a2 = ReLu(z2)
), waarbija2
3D is .
De vraag
De definitie van de term " feature map " lijkt te variëren van literatuur tot literatuur. Concreet:
- Voor de eerste convolutionele laag, komt " feature map " overeen met de invoervector
x
, of het output-puntproductz1
, of de outputactiveringena1
, of de " proces " converteren vanx
naara1
, of iets anders? - Evenzo komt voor de 2e convolutionele laag " feature map " overeen met de invoeractiveringen
a1
, of het outputpuntproductz2
, of de uitvoeractiveringa2
, of het " proces " converteerta1
naara2
of iets anders?
Is het bovendien waar dat de term " feat ure map " is exact hetzelfde als " activeringskaart "? (of bedoelen ze eigenlijk twee verschillende dingen?)
Aanvullende verwijzingen:
Fragmenten van Neurale netwerken en diep leren – Hoofdstuk 6 :
* De nomenclatuur wordt hier losjes gebruikt. In het bijzonder “gebruik ik " feature map " om niet de functie te bedoelen die wordt berekend door de convolutionele laag, maar eerder de activering van de verborgen neuronen die uit de laag komen. Dit soort mild misbruik van de nomenclatuur komt vrij vaak voor in de onderzoeksliteratuur.
Fragmenten van Convolutionele netwerken visualiseren en begrijpen door Matt Zeiler :
In dit artikel introduceren we een visualisatietechniek die onthult de inputstimuli die individuele feature maps op elke laag in het model prikkelen. […] Onze benadering daarentegen biedt een niet-parametrische weergave van invariantie, die laat zien welke patronen uit de trainingsset de feature map activeren. ..] een lokale contrastoperatie die de reacties op de feature maps normaliseert. […] Om een bepaalde convnet-activering te onderzoeken, zetten we alle andere activeringen in de laag op nul en geven we de feature map door s als invoer voor de bijgevoegde deconvnet-laag. […] Het convnet maakt gebruik van relu non-lineariteiten, die de feature maps corrigeren waardoor de feature maps altijd positief zijn. […] Het convnet gebruikt aangeleerde filters om de feature maps van de vorige laag te convolueren. […] Afb. 6, deze visualisaties zijn nauwkeurige representaties van het invoerpatroon dat de gegeven kenmerkkaart in het model stimuleert […] wanneer de delen van het originele invoerbeeld die overeenkomen met het patroon worden afgesloten, zien we een duidelijke daling van de activiteit binnen de functiekaart. […]
Opmerkingen: introduceert ook de term " feature map " en " gecorrigeerde feature map " in figuur 1.
Fragmenten van Stanford CS231n-hoofdstuk op CNN :
[…] Een gevaarlijke valkuil die gemakkelijk opgemerkt kan worden met deze visualisatie is dat sommige activeringskaarten allemaal nul kunnen zijn voor veel verschillende inputs, wat op dode filters kan duiden, en een symptoom kan zijn van hoge leerpercentages […] Typisch ogende activeringen op de eerste CONV-laag (links) en de 5e CONV-laag (rechts) van een getrainde AlexNet die naar een foto van een kat kijkt. Elk vak toont een activeringskaart die overeenkomt met een bepaald filter. Merk op dat de activeringen schaars zijn (de meeste waarden zijn nul, in deze visualisatie in het zwart weergegeven) en meestal lokaal.
Fragmenten van A-Beginner “s-Guide-To-Understanding-Convolutional-Neural-Networks
[…] Elke unieke locatie op het invoervolume levert een nummer op. Nadat je het filter over alle locaties hebt geschoven, zul je ontdekken dat je een 28 x 28 x 1 reeks nummers overhoudt, die we noemen een activeringskaart of feature-map.
Answer
Een feature-map, of activeringskaart, zijn de uitvoeractiveringen voor een bepaald filter (a1 in uw geval) en de definitie is hetzelfde, ongeacht op welke laag u zich bevindt.
Functiekaart en activeringskaart betekenen precies hetzelfde. Het is een activatiekaart genoemd omdat het een mapping is die overeenkomt met de activering van verschillende delen van de afbeelding, en ook een feature map omdat het ook een mapping is van waar een bepaald soort feature in de afbeelding te vinden is. Een hoge activering betekent dat een bepaalde functie is gevonden.
Een “gecorrigeerde feature map” is slechts een feature map die gemaakt is met Relu. Mogelijk ziet u de term “feature map” gebruikt worden voor het resultaat van de puntproducten (z1) omdat dit ook echt een kaart is van waar bepaalde features in de afbeelding staan, maar dat is niet gebruikelijk.
Reacties
Answer
In CNN-terminologie wordt de 3 × 3-matrix een filter of kernel of feature detector genoemd en de matrix die wordt gevormd door het filter over de afbeelding te schuiven en het puntproduct te berekenen, wordt de Convolved Feature of Activation Map of de Feature Map. Het is belangrijk op te merken dat filters fungeren als kenmerkdetectoren van de originele invoerafbeelding.
source: https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
Antwoord
Laten we, voordat we praten over wat feature map betekent, de term feature vector definiëren.
kenmerkvector is een vectoriële weergave van objecten. Een auto kan bijvoorbeeld worden weergegeven door [aantal wielen, deur. windows, age ..etc].
feature map is een functie die feature vectoren in de ene ruimte neemt en ze omzet in feature vectoren in een andere. Gegeven een kenmerkvector [volume, gewicht, hoogte, breedte] kan deze bijvoorbeeld [1, volume / gewicht, hoogte * breedte] of [hoogte * breedte] of zelfs slechts [volume]
retourneren
a1
,a2
enz.). In Conv2 denk ik dat ika1
de input-activeringskaart zou aanroepen ena2
de output-activeringskaart. In Conv1, ikx
de invoerafbeelding ena1
de uitvoeractiveringskaart.