高品質ノイズ除去に使用される凸最適化問題の解決


8

この質問に対する最高投票数の回答は、鋭い遷移を維持しながら信号のノイズを除去するには、

目的関数を最小化します。

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

ここで、xはノイズの多い信号、yはノイズ除去された信号、bは正則化パラメーター、|f(y)|いくつかのL1標準ペナルティです。ノイズ除去は、この最適化問題の解yを見つけることによって行われ、bはノイズレベルに依存します。

しかしながら、特に信号が例えば1000万サンプルの長さである場合、それが非常に高次元の空間における問題であるので、実際にそれをどのようにして達成することができるかを示すものはありません。実際には、この種の問題はどのようにして大きな信号に対して計算で解決されますか?


ランタイムに関心がありますか?それ以外の場合、関数を最小化する方法に関する反復は非常に広範囲です(Levenberg-Marquardt、Nelder-Meadなどが思い浮かびます)。このために特別に作成されたいくつかの変更バージョンもあります。
タン

実は、以下の方に質問があります。遅いだけでなく、Levenberg-MarquardtやNelder-Meadのような問題は何ですか?これらは一般化されたオプティマイザなので、数値で近似することもできます。f
タン

はい、ランタイムに関心がありますが、これらのメソッドを指摘してくれてありがとう。
ジョンロバートソン

回答:


6

Boydには、大規模なℓ1正規化最小二乗問題のMatlabソルバーがあります。そこにある問題の定式化は少し異なりますが、この方法は問題に適用できます。

古典的なメジャー化-最小化アプローチもうまく機能します。これは、ソフトしきい値を繰り返し実行することに対応します(TVの場合、クリッピング)。

解決策はリンクから見ることができます。ただし、最適化に関する文献を多用することにより、これらの機能を最小限に抑える方法は数多くあります。

PS:他のコメントで述べたように、FISTAはうまく機能します。もう1つの「非常に高速な」アルゴリズムファミリは、主双対アルゴリズムです。例として興味深いChambolleの論文を見ることができますが、線形逆問題定式化の主双対法に関する研究論文は多数あります。


「primal-dual」は正確に何を指しますか?
Spacey

モハマド、私は逆問題のための主双対アルゴリズムを実装しませんでした。しかし、私が回答で言及したリンクからの例、Chambolleの論文を見ることができます。このペーパーから、primal-dualアルゴリズムが正確に何を意味するかを理解できます。これらの方法は、逆問題に対するもう1つの(そして高速に収束する)ソリューションを提供します。
Deniz

f

1

4

TVペナルティに関する最適化問題を解決するために、ASD-POCSなどの従来の反復法よりも収束率が高い、制約付き全変動画像ノイズ除去およびブレ除去問題の高速勾配ベースのアルゴリズム(FISTA)と呼ばれる最近提案されたアルゴリズムを使用します。


1
リンクした参照のみが記事の購入を必要とするため、アルゴリズムについてさらに情報を追加することは可能ですか?
Jason R


@JasonR、基本的にはProxオペレーターのNesterov Accelerationです。本当にいい仕事です。
Royi

3

f(y)=y1

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

最小化するには、合計の各エントリを最小化する必要があります。

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

劣微分を使用すると、最小化子がしきい値ソフトしきい値演算子であることを示すことができます。これが、信号のノイズ除去のためにDonohoとJohnstoneによって提案された方法です。詳細については、論文「ウェーブレット収縮による理想的な空間適応」を参照してください。b

したがって、この場合、信号を推定するためのより高度なソルバーは必要ないと思います。


総変動ペナルティではなく、ノルムペナルティます。それはタイプミスですか?L1|yi||yi+1yi|
ジョンロバートソン、

「そして| f(y)|はL1ノルムのペナルティである」という質問で、信号ノイズ除去の古典的なケースであるノルムをプラグインしただけです。しかし、私は質問を誤解しているかもしれません。1
アレハンドロ

ええ、それはもっと明確だったかもしれません。その引用では、は信号全体の関数であり、必ずしも信号の各コンポーネントで実行される関数ではありません。つまり、は異なる信号サンプルを組み合わせることができます。例:は完全に正当です。fff(x0,x1,...)=(x1x0,x2x1,...)
ジョンロバートソン

そうですか。がノルムである特定のケースの場合、私の回答を追加します。f(y)1
アレハンドロ

2

追加:if、用語はすべて独立しています。@ Alejandroが指摘するように、各用語を単独で最小化できます。を最小化する方が興味深いです ここで、ではなくは、 多くのを0 にプッシュすることを目的としてい ます。この場合の注意事項は次のとおりです。(私は、変数は呼び出しない、。)f(x)=1(x)=|xi|
Axb22+λx1
x1x2xi
xy


(1年後)ノルムの場合のこれの別名は Elastic net regularizationです。 Hastie et al。、 Elements of Statistical Learning p。661 ff。これを分類のために議論します。f(x)=1

多くの近似解を取得する高速で簡単な方法は、xi=0

  1. 最小化単純最小二乗法Axb
  2. 縮小(別名:ソフトしきい値):小さい設定し。xi=0

これは、重み付けが0または1 の反復的に重み付けされた最小二乗法の形式です。以前の回答で引用された論文の方法でより良い結果が得られると思います。これは簡単です。

(合計最小化するとき、とをiter 1 2 3の対数対数スケールでプロットすることをお勧めします。もう1つ、そしてあなたは気付かないでしょう- 特にそれらが異なるようにスケーリングするとき)。f()+λg()f()λg()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.