Lösen des konvexen Optimierungsproblems beim Entrauschen von hoher Qualität


8

Die am höchsten bewertete Antwort auf diese Frage legt nahe, dass man ein Signal unter Beibehaltung scharfer Übergänge entrauschen sollte

Minimieren Sie die Zielfunktion:

|xy|2+b|f(y)|

Dabei ist das verrauschte Signal, das entrauschte Signal, der Regularisierungsparameter undist eine L1-Normstrafe. Das Entrauschen wird erreicht, indem die Lösung für dieses Optimierungsproblem gefunden wird, und hängt vom Geräuschpegel ab.y b | f ( y ) | y bxyb|f(y)|yb

Es gibt jedoch keinen Hinweis darauf, wie dies in der Praxis erreicht werden könnte, da dies in einem sehr hochdimensionalen Raum ein Problem darstellt, insbesondere wenn das Signal z. B. 10 Millionen Abtastwerte lang ist. Wie wird diese Art von Problem in der Praxis für große Signale rechnerisch gelöst?


Beschäftigen Sie sich mit der Laufzeit? Ansonsten ist die Iteratur zum Minimieren einer Funktion ziemlich umfangreich (Levenberg-Marquardt, Nelder-Mead usw. kommen in den Sinn). Es gibt sogar einige modifizierte Versionen, die speziell dafür entwickelt wurden.
Thang

Eigentlich habe ich eine Frage an die Leute, die unten antworten. Was ist nicht nur langsam, sondern auch falsch an etwas wie Levenberg-Marquardt oder Nelder-Mead? Dies sind verallgemeinerte Optimierer, sodass Sie sogar numerisch approximieren können . f
Thang

Ja, ich beschäftige mich mit der Laufzeit, aber danke, dass Sie auf diese Methoden hingewiesen haben.
John Robertson

Antworten:


6

Boyd hat einen Matlab-Löser für große Probleme mit ℓ1-regulierten kleinsten Quadraten . Die Problemformulierung dort ist etwas anders, aber die Methode kann für das Problem angewendet werden.

Der klassische Ansatz der Majorisierung und Minimierung funktioniert ebenfalls gut. Dies entspricht einer iterativen Durchführung eines Soft-Thresholding ( für TV, Clipping ).

Die Lösungen können den Links entnommen werden. Es gibt jedoch viele Methoden, um diese Funktionen durch die umfangreiche Verwendung von Optimierungsliteratur zu minimieren.

PS: Wie in anderen Kommentaren erwähnt, wird FISTA gut funktionieren. Eine andere "sehr schnelle" Algorithmusfamilie sind Primal-Dual-Algorithmen. Sie können die interessante Arbeit von Chambolle als Beispiel sehen, es gibt jedoch eine Vielzahl von Forschungsarbeiten zu Primal-Dual-Methoden für lineare inverse Problemformulierungen.


Worauf bezieht sich "Primal-Dual" genau?
Spacey

Mohammad, ich habe keinen Primal-Dual-Algorithmus für inverse Probleme implementiert. Sie können jedoch ein Beispiel aus dem Link sehen, den ich in der Antwort erwähnt habe: das Papier von Chambolle. In diesem Artikel können Sie sehen, was ein Primal-Dual-Algorithmus genau bedeutet. Diese Methoden bieten nur eine weitere (und schnell konvergente) Lösung für inverse Probleme.
Deniz

Ich dachte, Primal Dual ist kombinatorische Optimierung? Wie können Sie dieses Problem generisch (für ein generisches ) in dieses Framework umwandeln ? f
Thang

Wie ich bereits erwähnt habe, bin ich kein Experte auf diesem Gebiet. Sie können das Papier von Chambolle sehen und sehen, wie Primal-Dual-Methoden verwendet werden können, um Probleme wie oder TV-Regularisierung zu lösen . 1
Deniz

4

Um Optimierungsprobleme mit TV-Strafen zu lösen, verwenden wir einen kürzlich vorgeschlagenen Algorithmus namens Fast Gradient Based Algorithms für Constrained Total Variation Image Denoising- und Deblurring-Probleme (FISTA) , der eine bessere Konvergenzrate aufweist als herkömmliche iterative Methoden wie ASD-POCS.


1
Können Sie weitere Informationen zum Algorithmus hinzufügen, da für die einzige von Ihnen verknüpfte Referenz der Kauf des Artikels erforderlich ist?
Jason R


@ JasonR, Es ist im Grunde Nesterov Beschleunigung des ProxBedieners. Wirklich gute Arbeit.
Royi

3

In dem speziellen Fall, in dem , kann die Zielfunktion wie folgt geschrieben werdenf(y)=y1

xy2+by1=i(xiyi)2+bi|yi|,

Um dies zu minimieren, muss jeder Eintrag der Summe minimiert werden:

yi^=argmin{(xiyi)2+b|yi|}

Mit Hilfe von Subdifferentialen kann gezeigt werden, dass der Minimierer der Soft-Thresholding-Operator mit dem Schwellenwert . Dies ist die von Donoho und Johnstone vorgeschlagene Methode zur Signalentstörung. Weitere Informationen finden Sie in ihrem Artikel Ideale räumliche Anpassung durch Wavelet-Schrumpfung .b

In diesem Fall benötigen Sie meines Erachtens keinen komplexeren Löser, um Ihr Signal abzuschätzen.


Sie haben eine -Normstrafe | y i | anstatt eine Gesamtvariation Strafe | y i + 1 - y i | . Ist das ein Tippfehler? L.1|yich||yich+1- -yich|
John Robertson

In der Frage heißt es: "und | f (y) | ist eine L1-Normstrafe", also habe ich einfach die Norm eingesteckt, was der klassische Fall beim Entrauschen von Signalen ist. Aber vielleicht verstehe ich die Frage falsch. 1
Alejandro

Yah, das hätte klarer sein können. In diesem Zitat ist eine Funktion des gesamten Signals, die nicht unbedingt eine Funktion auf jede Komponente des Signals , das ausgeführt wird , das heißt f unterschiedliche Signalabtastwerte zusammen zB kombinieren f ( x 0 , x 1 , . . . ) = ( X 1 - x 0 , x 2 - x 1 , . . . ) ist völlig legitim. fff(x0,x1,...)=(x1- -x0,x2- -x1,...)
John Robertson

Aha. Ich werde diese Antwort hinzufügen, wenn für den speziellen Fall, in dem die Norm 1 ist. f(y)1
Alejandro

2

Hinzugefügt: wenn sind die Begriffe alle unabhängig - wie @Alejandro hervorhebt, können Sie jeden Begriff einfach für sich minimieren. Es ist interessanter zu minimierenf(x)=1(x)=|xich|
wobeix 1 anstelle vonx 2 viele x i auf 0drücken soll. Die folgenden Hinweise gelten für diesen Fall. (Ich nenne die Variablen x , nicht y .)EINx- -b22+λx1
x1x2xich
xy


(Ein Jahr später) Ein anderer Name für den Fall Norm ist Elastic Net Regularization . Hastie et al., Elemente des statistischen Lernens p. 661 ff. Besprechen Sie dies zur Klassifizierung.f(x)=1

Ein schneller und einfacher Weg, um eine ungefähre Lösung mit vielen ist das Abwechselnxich=0

  1. Minimieren Sie durch einfache kleinste QuadrateEINx- -b
  2. Shrink aka Soft-Schwelle: Setze klein .xich=0

Dies ist eine Form von iterativ neu gewichteten kleinsten Quadraten mit Gewichten 0 oder 1. Ich würde erwarten, dass Methoden in Papieren, die in früheren Antworten zitiert wurden, bessere Ergebnisse liefern; das ist einfach.

f()+λG()f()λG()

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.