Faltning

Faltning (från tyskans Faltung, vikning) eller konvolution är en matematisk operation, som innebär att en ny integrerbar summafunktion kan bildas av två andra integrerbara funktioner, till exempel sannolikhetsfördelningar. Den omvända operationen kallas avfaltning, eller dekonvolution.

Exempel på tillämpning är glidande medelvärde, som kan beräknas som faltningen av en signal (en tidsvarierande funktion) och en fönsterfunktion(en), exempelvis rektangulärfunktion(en) (en puls). Inom datorseende används faltande neurala nät (convolutional neural network(en), CNN) för att lära maskiner att känna igen ett mönster var än mönstret uppträder i bilden. Inom digital kommunikation är faltningskoder en typ av felrättande koder. Inom ljudteknik kan efterklang (reverb) åstadkommas digitalt genom att falta ljudsignalen med det inspelade impulssvaret för ett rum.

Begreppet faltning introducerades i början av 1900-talet. Metoden hade dock existerat långt innan det, utan att ha getts något namn. Ett uttryck som idag skulle ha förklarats som faltning fanns redan 100 år tidigare och användes av en mängd matematiker.

Förklaring

En animerad bild som visar faltningen mellan rött och grönt.
En animerad bild som visar faltningen mellan rött och grönt.

Faltning kan förklaras genom att man låter speglingen av en graf g, glida över en annan graf f, längs en axel. Faltningen av f och g blir då en tredje graf h, som illustrerar den mängd som tillhör både f och g i varje tidpunkt av överlappningen (storleken på den gula arean i varje tidpunkt). Faltningen blir då ett slags korsning av de två funktionerna f och g.

Faltning av funktionerna f och g skrivs på följande sätt:

( f g ) f ( t ) , g ( t ) R n {\displaystyle (f*g)\quad f(t),g(t)\in \mathbb {R} ^{n}}

Definition för det tidskontinuerliga fallet

( f g ) ( t ) = f ( τ ) g ( t τ ) d τ = f ( t τ ) g ( τ ) d τ {\displaystyle (f*g)(t)=\int _{-\infty }^{\infty }f(\tau )g(t-\tau )\,\mathrm {d} \tau =\int _{-\infty }^{\infty }f(t-\tau )g(\tau )\,\mathrm {d} \tau }

I detta fall motsvarar variabeln t inte nödvändigtvis tiden; det är dock vanligt att den inom praktiska tillämpningar gör just detta.

Faltning i matematisk statistik

Faltning kan användas inom sannolikhetsberäkningar där man då kan räkna ut sannolikheten mellan olika utfall. Faltning används inom den matematiska statistiken för att beräkna fördelningen av en stokastisk variabel som är en summa av två andra stokastiska variabler.[1]

Exempel

Två sexsidiga tärningar kastas. Utfallet från var och en av de två tärningarna är antingen 1, 2, 3, 4, 5 eller 6 med vardera en sjättedels sannolikhet. Genom faltning av dessa två stokastiska (slumpmässiga) variabler kommer man fram till att summan av utfallen från de två tärningarna antar värden med sannolikheter enligt följande tabell:

Självkonvolution av en rektangulär fördelning ger en triangelfunktion.
Summa Sannolikhet
2 1:36
3 2:36
4 3:36
5 4:36
6 5:36
7 6:36
8 5:36
9 4:36
10 3:36
11 2:36
12 1:36

Faltning i signalbehandling

Inom signalbehandlingen är faltning en matematisk operation, som bland annat används när linjära filter appliceras. Ett exempel på ett sådant fall är om en signal f innehåller vissa störningar och man istället vill ta fram ett medelvärde av f över en viss tid. Man kan då välja en signal g av lämpligt utseende och låta den "glida" över f. Den resulterande signalen h illustrerar då ett medelvärde av f under valt antal tidsenheter. Detta ger då en tydligare signal där oväsentliga avvikelser eliminerats.

Dekonvolutionen brukar här benämnas inversfiltrering.

Den tidskontinuerliga formen är:

y ( t ) = x ( t ) h ( t ) = x ( t u ) h ( u ) d u {\displaystyle y(t)=x(t)*h(t)=\int _{-\infty }^{\infty }x(t-u)h(u)du}

Den tidsdiskreta formen är:

y [ n ] = ( x h ) [ n ] = m = x n m h m {\displaystyle y[n]=(x*h)[n]=\sum _{m=-\infty }^{\infty }x_{n-m}h_{m}}

Faltning motsvaras i frekvensdomänen av multiplikation och vice versa. Exempelvis gäller för laplacetransformen att

L { f g } = L { f } L { g } {\displaystyle {\mathcal {L}}\{f*g\}={\mathcal {L}}\{f\}{\mathcal {L}}\{g\}}

Räkneregler

Några räkneregler som gäller vid faltning är följande:

  • ( f g ) = ( g f )     {\displaystyle (f*g)=(g*f)\ \ \,}
  • ( f ( g h ) ) = ( ( f g ) h )     {\displaystyle (f*(g*h))=((f*g)*h)\ \ \,}
  • ( f ( g + h ) ) = ( ( f g ) + ( f h ) )     {\displaystyle (f*(g+h))=((f*g)+(f*h))\ \ \,}
  • ( a ( f g ) ) = ( ( a f ) g ) = ( f ( a g ) )     {\displaystyle (a(f*g))=((af)*g)=(f*(ag))\ \ \,}

Exempel

Låt f(t) vara ett mätvärde av någon process som varierar med tiden. I dessa mätvärden har olika störningar dykt upp, vilket ger upphov till ointressanta avvikelser i mätvärdena. Vi vill nu istället ersätta f med en ny funktion f′(t) som är ett medelvärde av f(t) under intervallet [t - τ,t], så att de senaste värdena av f ges störst vikt. Det går då att införa ytterligare en funktion g med lämpligt utseende, till exempel en tidspuls. Vi antar också att 0 τ g ( t ) d t {\displaystyle \scriptstyle {\int _{0}^{\tau }g(t)dt}}  = 1. Vi kan då multiplicera t med g och sedan integrera över intervallet [t - τ,t].

Detta ger att:

f ( t ) = t τ t f ( τ ) g ( t τ ) d τ = ( f g ) {\displaystyle f^{\prime }(t)=\int _{t-\tau }^{t}f(\tau )g(t-\tau )d\tau =(f*g)}

En viktig egenskap hos faltning är att även om f bara är kontinuerlig så blir (f * g) deriverbar om vi väljer g deriverbar. Väljs g' två gånger deriverbar blir också (f * g) två gånger deriverbar.

Se även

  • Voigtprofil

Referenser

  • Blom, Gunnar. Sannolikhetsteori och statistikteori med tillämpningar, Studentlitteratur
  • Persson, Arne; Böiers, Lars-christer (2005). Analys i flera variabler. Lund: Lunds tekniska högskola. Libris 9968536. ISBN 91-88558-34-7 
  • ”Convolution”. Wolfram MathWorld. http://mathworld.wolfram.com/Convolution.html. Läst 10 oktober 2012. 
  • ”The Joy of Convolution”. Signals System Control, Johns Hopkins University. http://www.jhu.edu/~signals/convolve/index.html. Läst 10 oktober 2012. 
  • Miller, Jeff. ”Convolution”. Earliest Known Uses of Some of the Words of Mathematics. http://jeff560.tripod.com/c.html. Läst 10 oktober 2012. 
  • Bock, Rudolf K. (7 april 1998). ”Convolution”. Arkiverad från originalet den 21 februari 2006. https://web.archive.org/web/20060221234856/http://rkb.home.cern.ch/rkb/AN16pp/node38.html#SECTION000380000000000000000. Läst 10 oktober 2012. 

Noter

  1. ^ Gunnar Blom, Sannolikhetsteori och statistikteori med tillämpningar, Studentlitteratur

Externa länkar

  • Wikimedia Commons har media som rör Faltning.
    Bilder & media
v  r
Differentierbar datoranvändning
General
Differentierbar programmering Neural Turing maskin Differentierbar neural dator Automatisk differentiering Neuromorf ingenjörskonst Cable theory Mönsterigenkänning Beräkningslärandeteori Tensorkalkyl
Begrepp
Gradient descent SGD Klusteranalys Regression Overfitting Adversary Attention Faltning Förlustfunktioner Backpropagation Normalization Activation Softmax Sigmoid Rectifier Regularization Datasets Augmentation
Programmeringsspråk
Python Julia
Applikationer
Hårdvara
IPU TPU VPU Memristor SpiNNaker
Mjukvarubibliotek
TensorFlow PyTorch Keras Theano
Implementation
Audiovisuellt
Verbal
Word2vec Transformator BERT NMT Project Debater Watson GPT-2 GPT-3
Beslutande
Alphago AlphaZero Q-learning SARSA OpenAI Five Självkörande bil MuZero Action selection Robot control
Personer
Alex Graves Ian Goodfellow Yoshua Bengio Geoffrey Hinton Yann LeCun Andrew Ng Demis Hassabis David Silver Fei-Fei Li
Organisationer
Deepmind Hi! PARIS Openai MIT CSAIL Mila Google Brain