Beziehung zwischen Faltung in Mathematik und CNN


10

Ich habe die Erklärung der Faltung gelesen und verstehe sie bis zu einem gewissen Grad. Kann mir jemand helfen zu verstehen, wie diese Operation mit der Faltung in Faltungs-Neuronalen Netzen zusammenhängt? Ist eine filterähnliche Funktion, gdie Gewicht anwendet?



Genau das lese ich und sehe von dort aus, dass die Faltung in CNN eine Matrixoperation ist. Und "funktionale" Faltung wird dort nie verwendet? Das sind also nur 2 verschiedene Operationen mit demselben Namen?
VladimirLenin

2
Möglicherweise besteht der Unterschied zwischen diskreten und kontinuierlichen Ansichten der Faltung - es handelt sich im Wesentlichen um dieselbe Operation, die jedoch in diesen beiden unterschiedlichen Räumen unterschiedlich ausgeführt werden muss. CNNs verwenden diskrete Windungen. Und sie tun es nur, weil es eine bequeme Möglichkeit ist, die Mathematik der Verbindungen auszudrücken (dies gilt in beide Richtungen - es ist eine mathematische Bequemlichkeit angesichts des Designs und wahrscheinlich ein Grund, warum dieses Design beliebt ist, weil es ordentlich auf einen Brunnen abgebildet wird -verstandene Funktion bereits in der Signalverarbeitung verwendet)
Neil Slater

Antworten:


2

Unter Verwendung der Notation aus der Wikipedia - Seite, die Faltung in einem CNN wird der Kern sein , von denen wir einige Gewichte lernen , um die Daten , die wir brauchen , und dann vielleicht anwenden eine Aktivierungsfunktion zu extrahieren.G

Diskrete Windungen

Auf der Wikipedia-Seite wird die Faltung als beschrieben

(fG)[n]]=m=- -infinff[m]]G[n- -m]]

Angenommen, ist die Funktion f und b ist die Faltungsfunktion g ,einfbG

Geben Sie hier die Bildbeschreibung ein

Um dies zu lösen, können wir zuerst die Gleichung verwenden , indem wir die Funktion aufgrund des in der Gleichung erscheinenden - m vertikal umdrehen . Dann berechnen wir die Summe für jeden Wert von n . Während der Änderung von n bewegt sich die ursprüngliche Funktion nicht, jedoch wird die Faltungsfunktion entsprechend verschoben. Ab n = 0 ,b- -mnnn=0

c[0]=ma[m]b[m]=00.25+00.5+11+0.50+10+10=1

c[1]=ma[m]b[m]=00.25+10.5+0.51+10+10=1

c[2]=ma[m]b[m]=10.25+0.50.5+11+10+10=1.5

c[3]=ma[m]b[m]=10+0.50.25+10.5+11=1.625

c[4]=ma[m]b[m]=10+0.50+10.25+10.5+01=0.75

c[5]=ma[m]b[m]=10+0.50+10+10.25+00.501=0.25

As you can see that is exactly what we get on the plot c[n]. So we shifted around the function b[n] over the function a[n].

2D Discrete Convolution

For example, if we have the matrix in green

enter image description here

with the convolution filter

enter image description here

Then the resulting operation is a element-wise multiplication and addition of the terms as shown below. Very much like the wikipedia page shows, this kernel (orange matrix) g is shifted across the entire function (green matrix) f.

enter image description here

taken from the link that @Hobbes reference. You will notice that there is no flip of the kernel g like we did for the explicit computation of the convolution above. This is a matter of notation as @Media points out. This should be called cross-correlation. However, computationally this difference does not affect the performance of the algorithm because the kernel is being trained such that its weights are best suited for the operation, thus adding the flip operation would simply make the algorithm learn the weights in different cells of the kernel to accommodate the flip. So we can omit the flip.


1

Yes they are related. As an example, consider Gaussian smoothing (en.wikipedia.org/wiki/Gaussian_blur) which is a convolution with a kernel of Gaussian values. A CNN learns the weights of filters (i.e. kernels), and thus can learn to perform smoothing if needed.


1

Although CNN stands for convolutional neural networks, what they do is named cross-correlation in mathematics and not convolution. Take a look at here.

Now, before moving on there is a technical comment I want to make about cross-correlation versus convolutions and just for the facts what you have to do to implement convolutional neural networks. If you reading different math textbook or signal processing textbook, there is one other possible inconsistency in the notation which is that, if you look at the typical math textbook, the way that the convolution is defined before doing the element Y's product and summing, there's actually one other step ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.