Diese Seite wurde mit Hilfe von KI aus dem Englischen übersetzt und kann Fehler enthalten.
Essay
Zirkulante Matrizen - Teil I
414 Wörter · 4 Min. Lesezeit
Kürzlich habe ich an einer Vorlesung über geometrisches Deep Learning teilgenommen. Die Vorlesung war wirklich beeindruckend. Ich habe eine völlig neue Perspektive auf Methoden kennengelernt, die ich bereits kannte, wie CNNs und Transformer. In dieser Vorlesung bin ich auf das Konzept der zirkulanten Matrizen gestoßen.
Eine zirkulante Matrix ist eine spezielle Matrix, bei der jede Zeile eine zyklische Verschiebung der vorherigen Zeile ist. Mathematisch ausgedrückt ist eine zirkulante Matrix C der Größe n×n eine quadratische Matrix, bei der jede Zeile durch zirkuläres Verschieben der vorherigen Zeile um eine Position nach rechts (oder links) entsteht. Sie lässt sich schreiben als:
Wir können einen Shift-Operator als Matrixmultiplikation mit einer zirkulanten Matrix darstellen. Wenn wir also die Spalten einer Matrix um eins nach rechts verschieben möchten, können wir dazu eine zirkulante Matrix verwenden. Zum Beispiel:
Wenn wir die zirkulante Matrix bei der Matrixmultiplikation rechts platzieren, erzeugen wir stattdessen eine Verschiebung der Zeilen.
Nun ist leicht zu erkennen, dass wir tatsächlich jede beliebige Permutation der Matrixzeilen oder -spalten erzeugen können, je nachdem, wie wir die Einsen in den Zeilen der Matrix platzieren.
Bezeichnen wir die obige Matrix mit S (Rechtsverschiebung):
S=0001100001000010
Wendet man die Matrix S mehrmals (k-mal) an, verschiebt sich die ursprüngliche Matrix um k nach rechts:
S2=0010000110000100
Die Inverse eines Shift-Operators ist seine Transponierte, d. h. S−1=S⊤.
Shift-Operatoren sind orthogonal, d. h. S⊤S=I
Mit der oben beschriebenen Shift-Operation können wir beispielsweise ein Bild mittels Matrixmultiplikation nach links oder rechts oder nach oben oder unten verschieben.
Zirkuläre Faltung als Multiplikation mit zirkulanten Matrizen
Schauen wir uns die Multiplikation einer zirkulanten Matrix C mit einem Vektor x an:
Die Indizes können hier als zirkulär betrachtet werden, sodass c−1=cn−1 und so weiter gilt. Die obige Summe stellt dann eine zirkuläre Faltung dar. Auf diese Weise sehen wir, dass eine Faltungsoperation als Multiplikation mit einer zirkulanten Matrix dargestellt werden kann. Dies lässt sich leicht auf zwei Dimensionen erweitern, wodurch wir das Konzept der Block-zirkulanten Matrizen erhalten.