In neuronalen Faltungsnetzen (CNN) werden die Zeilen und Spalten der Gewichtungsmatrix bei jedem Schritt umgedreht, um die Kernelmatrix zu erhalten, bevor mit der Faltung fortgefahren wird. Dies wird in einer Reihe von Videos von Hugo Larochelle hier erklärt :
Berechnung der versteckten Karten entspräche eine diskrete Faltung mit einem Kanal von der vorherige Schicht zu tun, unter Verwendung einer Kernel - Matrix [...], und das Kernel wird von der verborgenen Gewichtungsmatrix berechnet , wo wir die Zeilen und der Flip Säulen.
Wenn wir die reduzierten Schritte einer Faltung mit einer regulären Matrixmultiplikation wie bei anderen Arten von NN vergleichen würden, wäre die Zweckmäßigkeit eine klare Erklärung . Dies ist jedoch möglicherweise nicht der zutreffendste Vergleich ...
In der digitalen Bildverarbeitung scheint die Anwendung der Faltung eines Filters auf ein Bild ( dies ist ein großartiges Youtube-Video für eine praktische Intuition ) mit Folgendem verbunden zu sein:
- Die Tatsache, dass Faltung assoziativ ist, während (Kreuz-) Korrelation nicht.
- Die Möglichkeit, Filter im Frequenzbereich des Bildes als Multiplikationen anzuwenden, da die Faltung im Zeitbereich der Multiplikation im Frequenzbereich entspricht ( Faltungssatz ).
In diesem speziellen technischen Umfeld der DSP- Korrelation ist definiert als:
Dies ist im Wesentlichen die Summe aller Zellen in einem Hadamard-Produkt:
Dabei ist eine Filterfunktion (ausgedrückt als Matrix) und I ( x , y ) der Pixelwert eines Bildes an der Stelle ( x , y ) :
Das Ziel der Kreuzkorrelation besteht darin, festzustellen, wie ähnlich ein Sondenbild einem Testbild ist. Die Berechnung einer Kreuzkorrelationskarte beruht auf dem Faltungssatz.
Andererseits ist Faltung definiert als:
Solange das Filter symmetrisch ist, ist es dasselbe wie eine Korrelationsoperation mit den umgedrehten Zeilen und Spalten des Filters:
Beide Operationen sind rechnerisch ein Frobenius-Innenprodukt, das der Berechnung der Spur einer Matrixmultiplikation gleichkommt .
Fragen (Neuformulierung nach Kommentaren und erster Antwort):
- Ist die Verwendung von Faltungen in CNN mit FFT verbunden?
Soweit ich weiß, lautet die Antwort nein. FFTs wurden verwendet, um GPU-Implementierungen von Faltungen zu beschleunigen . FFT sind jedoch normalerweise nicht Teil der Struktur oder Aktivierungsfunktionen in CNNs, trotz der Verwendung von Faltungen in den Voraktivierungsschritten.
- Entspricht Faltung und Kreuzkorrelation in CNN?
Ja, sie sind gleichwertig.
- Wenn es einfach ist, wie "es gibt keinen Unterschied", wozu werden die Gewichte in die Kernelmatrix gespiegelt?
Weder die Assoziativität der Faltung (nützlich für mathematische Beweise) noch irgendwelche Überlegungen zu FTs und dem Faltungssatz sind anwendbar. Tatsächlich scheint es, als ob das Umdrehen nicht einmal stattfindet (Kreuzkorrelation wird einfach als Faltung falsch bezeichnet) (?).