Wat is Convolutie?

Bewerking die een van twee reeksen in de tijd omkeert en die, terwijl ze verschoven wordt, met de andere vermenigvuldigt en de producten optelt. In discrete tijd is ze y[n] = Σx[k]h[n − k], en de uitgang van een LTI-systeem is de convolutie van de ingang met de impulsrespons. De convolutie van reeksen met lengtes L en M heeft de lengte L + M − 1. Convolutie in het tijddomein wordt vermenigvuldiging in het frequentiedomein, dus lange convoluties kunnen met de FFT snel worden berekend. De „convolutie” van convolutionele neurale netwerken wordt in veel implementaties berekend als kruiscorrelatie zonder het filter om te keren, maar omdat de gewichten worden geleerd, werken beide definities na de training op dezelfde manier. Het „constant folding” van compilers is iets anders.

Japanse benaming: 畳み込み

“Convolutie” komt voor in 7 oefenvragen uit 4 onderwerpen, bijv. AI-hardware en softwarestack, Basis van machine learning, Basis van digitale signaalverwerking.

Vakgebied: Basis van digitale signaalverwerking

Nu oefenen: vragen over Convolutie

Waarom wordt bij convolutionele neurale netwerken de convolutie soms met methoden zoals im2col omgezet in een matrixproduct?

  1. AOmdat het aantal bewerkingen na omzetting tien keer kleiner wordt
  2. BOmdat sterk geoptimaliseerde matrixproductbibliotheken en matrixrekeneenheden zoals tensor cores kunnen worden gebruikt
  3. COmdat het geheugengebruik na omzetting altijd afneemt
Antwoord en toelichting tonen

Antwoord: B. Omdat sterk geoptimaliseerde matrixproductbibliotheken en matrixrekeneenheden zoals tensor cores kunnen worden gebruikt

im2col maakt een grote matrix waarin de ingangswaarden van elk convolutievenster in een kolom staan en berekent de convolutie als product met de matrix van gerangschikte filters. Doordat de vensters overlappen wordt de ingang gedupliceerd en neemt het geheugen toe, maar omdat matrixproductbibliotheken die al tientallen jaren zijn geoptimaliseerd en matrixrekeneenheden zoals tensor cores rechtstreeks kunnen worden gebruikt, wordt het over het geheel vaak sneller. Er bestaan ook implementaties die hetzelfde doen zonder duplicatie.

Op een beeld van 28×28 met één kanaal wordt een convolutie met een filter van 5×5 (stride 1, geen padding) toegepast, gevolgd door max-pooling van 2×2 (stride 2). Wat zijn de hoogte en breedte van de uitvoer?

  1. A12×12
  2. B14×14
  3. C24×24
Antwoord en toelichting tonen

Antwoord: A. 12×12

De uitvoergrootte van een convolutie is (N + 2P − F) ÷ S + 1, met N de invoergrootte, F de filtergrootte, P de padding en S de stride. (28 + 0 − 5) ÷ 1 + 1 = 24, dus na de convolutie is de uitvoer 24×24. Max-pooling van 2×2 met stride 2 houdt per gebied van 2×2 alleen het maximum over en halveert zo hoogte en breedte tot 12×12. Pooling heeft geen trainbare parameters; het verkleint de gegevens om rekenwerk te besparen en maakt het netwerk minder gevoelig voor kleine verschuivingen in positie.

“Convolutie” in de toelichting

Vragen met “Convolutie” (7)

  1. Waarom wordt bij convolutionele neurale netwerken de convolutie soms met methoden zoals im2col omgezet in een matrixproduct?
  2. Op een beeld van 28×28 met één kanaal wordt een convolutie met een filter van 5×5 (stride 1, geen padding) toegepast, gevolgd door max-pooling van 2×2 (stride 2). Wat zijn de hoogte en breedte van de uitvoer?
  3. De reeks x[n] = {1, 2, 3} (n = 0, 1, 2) wordt aangeboden aan een LTI-systeem met impulsrespons h[n] = {1, −1} (n = 0, 1). Wat zijn de uitgangswaarden y[0] tot en met y[3]?
  4. Wat veroorzaakt gemakkelijk meetfouten wanneer met AFM de vorm van zeer smalle grachten of steile zijwanden wordt gemeten?
  5. Welke uitspraak over "weight stationary" (gewichten vast), een van de dataflow-methoden van AI-versnellers, is juist?
  6. Welke volgorde van de AI-softwarestack, van de bovenste laag dicht bij de gebruiker naar de onderste laag dicht bij de hardware, is juist?
  7. Hoeveel trainbare parameters heeft een volledig verbonden laag met 64 ingangen en 32 uitgangen (met één bias per uitgang)?

Verwante termen

Convolutioneel neuraal netwerk (CNN) Impulsrespons AFM (atomic force microscope) AI-compiler Rekengraaf (computational graph) GPU NPU (neural processing unit) Decimatie Differentievergelijking Discrete fouriertransformatie

Naar de woordenlijst