Intro baggrund
Inden for et sammenblandet neuralt netværk har vi normalt en generel struktur / flow, der ser sådan ud:
- inputbillede (dvs. en 2D-vektor
x
)
(1. konvolutionslag (Conv1) starter her …)
- samler et sæt filtre (
w1
) langs 2D-billedet (dvs. gørz1 = w1*x + b1
produktproduktmultiplikationer), hvorz1
er 3D, ogb1
er forspændinger. - anvend en aktiveringsfunktion (f.eks. ReLu) for at gøre
z1
ikke-lineær (f.eks.a1 = ReLu(z1)
), hvora1
er 3D.
(2. konvolutionslag (Conv2) starter her …)
- involverer et sæt filtre langs de nyberegnede aktiveringer (dvs. gør
z2 = w2*a1 + b2
dotproduktmultiplikationer), hvorz2
3D, og ogb2
er forspændinger. - anvend en aktiveringsfunktion (f.eks. ReLu) for at gøre
z2
ikke-lineær (f.eks.a2 = ReLu(z2)
), hvora2
er 3D .
Spørgsmålet
Definitionen af udtrykket " funktionskort " synes at variere fra litteratur til litteratur. Konkret:
- For det første sammenblandingslag svarer " til kort " til inputvektoren
x
eller output-punktproduktetz1
eller outputaktiveringernea1
eller " proces " konverteringx
tila1
, eller noget andet? - Tilsvarende " for det 2. konvolutionslag svarer " til inputaktiveringerne
a1
eller output-punktproduktetz2
eller outputaktiveringa2
eller " -processen " konverteringa1
tila2
eller noget andet?
Er det desuden sandt, at udtrykket " feat ure map " er nøjagtigt det samme som " aktiveringskort "? (eller betyder de faktisk to forskellige ting?)
Yderligere referencer:
Stykker fra Neurale netværk og dyb læring – kapitel 6 :
* Nomenklaturen bruges løst her. Især bruger jeg " funktionskort " for ikke at betyde den funktion, der beregnes af det foldende lag, men snarere aktivering af skjulte neuroner udsendes fra laget. Denne form for mild misbrug af nomenklatur er ret almindelig i forskningslitteraturen.
Stykker fra Visualisering og forståelse af konvolutionsnetværk af Matt Zeiler :
I dette papir introducerer vi en visualiseringsteknik, der afslører input-stimuli, der ophidser individuelle funktionskort i ethvert lag i modellen. […] Vores tilgang giver derimod et ikke-parametrisk billede af uforanderlighed, der viser hvilke mønstre fra træningssættet, der aktiverer funktionskortet. [. ..] en lokal kontrastoperation, der normaliserer svarene på tværs af funktionskort. […] For at undersøge en given aktivering af convnet sætter vi alle andre aktiveringer i laget til nul og videregiver funktionskortet s som input til det vedhæftede deconvnet-lag. […] Convnet bruger relu-ikke-lineariteter, som korrigerer funktionskortene, hvilket sikrer, at funktionskortene altid er positive. […] Convnet bruger lærte filtre til at samle funktionskortene fra det forrige lag. […] Fig. 6, disse visualiseringer er nøjagtige repræsentationer af inputmønsteret, der stimulerer det givne funktionskort i modellen […] når de dele af det originale inputbillede, der svarer til mønsteret, er lukket, ser vi en tydeligt fald i aktivitet inden for funktionskortet. […]
Bemærkninger: introducerer også udtrykket " funktionskort " og " rettet funktionskort " i fig. 1.
Snippets fra Stanford CS231n kapitel på CNN :
[…] En farlig faldgrube, der let kan bemærkes med denne visualisering, er at nogle aktiveringskort kan være nul for mange forskellige input, hvilket kan indikere døde filtre og kan være et symptom på høje læringshastigheder […] Typisk udseende aktiveringer på det første CONV-lag (til venstre) og det 5. CONV-lag (til højre) af et trænet AlexNet, der ser på et billede af en kat. Hvert felt viser et aktiveringskort svarende til et eller andet filter. Bemærk, at aktiveringerne er sparsomme (de fleste værdier er nul, i denne visualisering vist i sort) og for det meste lokale.
Stykker fra En-begynder-s-guide-til-forståelse-konvolutions-neurale netværk
[…] Hver unik placering på inputvolumen producerer et tal. Efter at filteret er skubbet over alle placeringer, vil du finde ud af, at hvad du har tilbage, er et 28 x 28 x 1 array med tal, som vi kalder et aktiveringskort eller funktionskort.
Svar
Et funktionskort, eller aktiveringskort, er outputaktiveringerne for et givet filter (a1 i dit tilfælde), og definitionen er den samme uanset hvilket lag du er på.
Funktionskort og aktiveringskort betyder nøjagtigt det samme. Det er kaldes et aktiveringskort fordi det er en kortlægning, der svarer til aktivering af forskellige dele af billedet, og også et funktionskort, fordi det også er en kortlægning af, hvor en bestemt slags funktion findes i billedet. En høj aktivering betyder, at en bestemt funktion blev fundet.
Et “rettet funktionskort” er bare et funktionskort, der blev oprettet ved hjælp af Relu. Du kan muligvis se udtrykket “funktionskort” brugt til resultatet af prikprodukterne (z1), fordi dette også virkelig er et kort over, hvor visse funktioner er i billedet, men det er ikke almindeligt at se.
Kommentarer
Svar
I CNN-terminologi kaldes 3 × 3-matrixen et filter eller kerne eller funktionsdetektor, og den matrix, der dannes ved at skubbe filteret over billedet og beregne punktproduktet kaldes Convolved Feature eller Activation Map eller Feature Map. Det er vigtigt at bemærke, at filtre fungerer som funktionsdetektorer fra det originale inputbillede.
kilde: https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
Svar
inden vi taler om, hvad funktionskort betyder, lad os bare definere udtrykket for funktionsvektor.
funktionsvektor er vektorrepræsentation af objekter. For eksempel kan en bil repræsenteres af [antal hjul, dør. windows, age ..etc].
funktionskort er en funktion, der tager funktionsvektorer i et rum og omdanner dem til funktionsvektorer i et andet. For eksempel med en funktionsvektor [volumen, vægt, højde, bredde] kan den returnere [1, volumen / vægt, højde * bredde] eller [højde * bredde] eller endda bare [volumen]
a1
,a2
osv.). I Conv2 antager jeg, at jeg vil kaldea1
inputaktiveringskortet oga2
outputaktiveringskortet. I Conv1 skal jegx
inputbilledet oga1
outputaktiveringskortet.