Ich muss zufällige, nicht quadratische Matrizen mit Zeilen und C Spalten erzeugen , Elemente, die zufällig mit dem Mittelwert = 0 verteilt sind und so beschränkt sind, dass die Länge (L2-Norm) jeder Zeile 1 und die Länge jeder Spalte √ beträgt . Entsprechend ist die Summe der Quadratwerte 1 für jede Zeile undR für jede Spalte.
Bisher habe ich einen Weg gefunden, dies zu erreichen: einfach die Matrixelemente nach dem Zufallsprinzip zu initialisieren (z. B. aus einer gleichmäßigen, normalen oder Laplace-Verteilung mit einem Mittelwert von Null und einer willkürlichen Varianz) und dann abwechselnd Zeilen und Spalten auf normalisieren 1 , endet mit der Zeilennormalisierung. Dies scheint ziemlich schnell zum gewünschten Ergebnis zu konvergieren (z. B. für R = 40 und C = 80 beträgt die Varianz der Spaltenlänge nach 2 Iterationen in der Regel ~ 0,00001 ), aber ich bin nicht sicher, ob ich mich auf diese schnelle Konvergenzrate in verlassen kann allgemein (für verschiedene Matrixdimensionen und Anfangselementverteilungen).
Meine Frage ist: ist es eine Möglichkeit , das gewünschte Ergebnis (zu erreichen , c o l u m n l e n g t h s = √ ) direkt ohne Iteration zwischen Zeilen- / Spaltennormalisierung? ZB so etwas wie der Algorithmus zum Normalisieren eines Zufallsvektors (Elemente zufällig initialisieren, Summe der Quadratwerte messen, dann jedes Element mit einem gemeinsamen Skalar skalieren). Wenn nicht, gibt es eine einfache Charakterisierung für die Konvergenzrate (zB num Iterationenbis Fehler<ε) des iterativen Verfahrens oben beschrieben?
quelle
Antworten:
Wie @ cardinal in einem Kommentar sagte:
... der iterative Algorithmus, den ich in der ursprünglichen Frage vorgeschlagen habe, scheint dem Sinkhorn-Knopp-Algorithmus sehr ähnlich zu sein. Interessanterweise scheint es auch der iterativen proportionalen Anpassung (IPF) sehr ähnlich zu sein , die, wie auf der IPF-Wikipedia-Seite beschrieben, mit Newtons Methode und Erwartungsmaximierung zusammenhängt (alle haben das gleiche Limit).
Diese iterativen Methoden werden häufig auf Probleme angewendet, bei denen keine geschlossene Lösung vorliegt. Daher gehe ich versuchsweise davon aus, dass die Antwort auf die Frage negativ ist: Es gibt keine Möglichkeit, die gewünschte Lösung ohne Zeilen- / Spalteniteration zu erzielen.
quelle