Schnelle Berechnung der komponentenweisen


8

Ich habe folgende Frage:

Angenommen, ich habe zwei Matrizen X,Y der Größe m×p und eine zufällige iid-Gauß-Matrix G der Größe m×k , m≫p>k .

Gibt es eine schnelle Möglichkeit, zu berechnen exp⁡(−XYT)G? Vielleicht durch die Tatsache, dass sowohl X als auch Y viel kleiner als XYT ? Hier bedeutet exp⁡(⋅) eintragsbezogener Exponent (dh each Eintrags der Matrix). Ohne den Exponenten ist es natürlich einfach und kann einfach mit X(YTG) , aber das Problem ist, dass der elementweise Exponent keinen niedrigen Rang mehr hat.

Die Motivation für die Frage ist das Multiplizieren eines Kernels der Form

Dij=exp⁡(−dij) oderDij=exp⁡(−dij2)

dij=‖xi−yj‖xi,yi∈Rp

Eine ungefähre Lösung ist ebenfalls in Ordnung.


5
Ich finde die Frage klar (ich habe selbst leider keine Ideen), aber die Tatsache, dass das Exponential komponentenweise ist, wird meiner Meinung nach viele Leute irreführen - ist eine sehr Standardnotation für Matrix exponentiell , insbesondere in der Theorie der ODEs und PDEs. Könnten Sie den Titel vielleicht etwas umformulieren? exp⁡(A)
— Kirill

Schnell definieren? Sie vektorisiert, ohne die gesamte Matrix ? −XYT
— Nluigi

Rechenkomplexität niedriger als . O(m2k)
— Gil

1
NIPS'16-Papier, das möglicherweise relevant ist. Papers.nips.cc/paper/6246-orthogonal-random-features
— Memming

1
Ich habe in die Zeitung geschaut, es ist sehr hilfreich. Vielen Dank! @Memming
— Gil

Antworten:


1

Wenn Annäherungen ausreichen, könnten wir vielleicht damit beginnen, den Operator wie folgt zu entwickeln: Beachten Sie, dass die Potenzbegriffe Ihrer elementweisen Notation und folgen beziehen sich auf die Hadamard-Mächte und missbrauchen leicht die Standardkonventionen.exp

exp⁡(Z)=∑k=0∞Zkk!=1+Z+Z22+Z36+Z424+...

Dies gibt Möglichkeiten zum Umschreiben des Ausdrucks: wo eine entsprechend große Identitätsmatrix . Wenn man mit Näherungen erster Ordnung leben könnte, dann: was zu einer einfacheren Operation führt. Für Annäherungen höherer Ordnung möchten Sie die Lösung für die Hadamard-Leistung ausarbeiten, die wahrscheinlich etwas schwieriger ist, oder ich habe noch keine sofortige Lösung gesehen.

exp⁡(−XYT)G=(I−XYT+(XYT)22−(XYT)36+(XYT)424−...)G=G−XYTG+(XYT)2G2−(XYT)3G6+(XYT)4G24−...
I
exp⁡(−XYT)G=G−XYTG+O(max(|XYT|)2)≈G−XYTG=G−X(YTG)

Gute Idee. Kleines Detail: dass stattdessen so etwas wie sollte. O(n2)O((‖X‖‖Y‖)2)
— Federico Poloni

@ FedericoPoloni, ich stimme zu. Wenn Sie eine passendere Notation als die Verwendung der Matrizennormen einführen könnten, würde ich diese gerne aktualisieren.
— Tolga Birdal

Die Verwendung von Normen erscheint mir angemessen, aber wenn Sie es vorziehen, können Sie sie als schreiben . O(max(|XYT|)2)
— Federico Poloni

ok, aktualisiert.
— Tolga Birdal
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.