Memecahkan Masalah Optimasi Cembung Digunakan untuk Denoising Kualitas Tinggi

8

Jawaban pilihan tertinggi untuk pertanyaan ini menunjukkan bahwa untuk membatalkan sinyal sambil mempertahankan transisi yang tajam, seseorang harus melakukannya

meminimalkan fungsi tujuan:

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

di mana adalah sinyal berisik, adalah sinyal denoised, adalah parameter regulerisasi, danadalah beberapa hukuman norma L1. Denoising dilakukan dengan mencari solusi untuk masalah optimisasi ini, dan tergantung pada tingkat kebisingan.xyb|f(y)|yb

Namun, tidak ada indikasi bagaimana seseorang dapat melakukannya dalam praktek karena itu adalah masalah dalam ruang dimensi yang sangat tinggi, terutama jika sinyalnya misalnya 10 juta sampel panjang. Dalam prakteknya bagaimana masalah semacam ini diselesaikan secara komputasional untuk sinyal besar?

John Robertson
sumber
Apakah Anda khawatir dengan run time? Jika tidak, iterature tentang cara meminimalkan suatu fungsi cukup luas (Levenberg-Marquardt, Nelder-Mead, dll. Datang ke pikiran). Bahkan ada beberapa versi modifikasi yang dibuat khusus untuk ini.
thang
Sebenarnya, saya punya pertanyaan untuk orang-orang yang menjawab di bawah ini. Selain lambat, apa yang salah dengan sesuatu seperti Levenberg-Marquardt atau Nelder-Mead? Ini adalah pengoptimal umum, sehingga Anda bahkan dapat memperkirakan secara numerik . f
thang
Ya, saya khawatir dengan run time, tetapi terima kasih telah menunjukkan metode ini.
John Robertson

Jawaban:

6

Boyd memiliki A Matlab Solver untuk Skala Besar ℓ1-Regulerised Soal Kuadrat . Perumusan masalah di sana sedikit berbeda, tetapi metode ini dapat diterapkan untuk masalah tersebut.

Pendekatan mayorisasi-minimisasi klasik juga bekerja dengan baik. Ini sesuai dengan iteratif melakukan soft-thresholding ( untuk TV, kliping ).

Solusinya bisa dilihat dari tautannya. Namun, ada banyak metode untuk meminimalkan fungsi-fungsi ini dengan menggunakan literatur optimasi yang luas.

PS: Seperti disebutkan dalam komentar lain, FISTA akan berfungsi dengan baik. Kelompok algoritma 'sangat cepat' lainnya adalah algoritma primal-dual. Anda dapat melihat makalah menarik Chambolle sebagai contoh, namun ada banyak makalah penelitian tentang metode primal-dual untuk formulasi masalah invers linier.

Deniz
sumber
Apa yang dimaksud dengan 'primal-dual' tepatnya?
Spacey
Mohammad, saya tidak menerapkan algoritma primal-dual untuk masalah terbalik. Namun, Anda dapat melihat contoh dari tautan yang saya sebutkan di jawaban: kertas Chambolle. Dari makalah ini, Anda dapat melihat apa artinya algoritma primal-dual tepat. Metode-metode ini hanya menyediakan solusi (dan cepat konvergen) untuk membalikkan masalah.
Deniz
Saya pikir dual primal adalah optimasi kombinatorial? Bagaimana Anda bisa mengubah masalah ini secara umum (untuk generik ) ke dalam kerangka itu? f
thang
thang, seperti yang saya sebutkan sebelumnya, saya bukan ahli dalam domain ini. Anda dapat melihat kertas Chambolle dan melihat bagaimana metode primal-dual dapat digunakan untuk memecahkan masalah seperti atau regularisasi TV. 1
Deniz
4

Untuk mengatasi masalah optimisasi dengan penalti TV, kami menggunakan algoritma yang baru-baru ini diusulkan yang disebut Algoritma Berbasis Gradien Cepat untuk Masalah Total Variasi Gambar Denoising dan Deblurring (FISTA) , yang memiliki tingkat konvergensi yang lebih baik daripada metode iteratif konvensional, seperti ASD-POCS.

chaohuang
sumber
1
Apakah mungkin bagi Anda untuk menambahkan beberapa informasi lebih lanjut tentang algoritma, karena satu-satunya referensi yang Anda tautkan memerlukan pembelian artikel?
Jason R
@JasonR, Ini pada dasarnya adalah Nesterov Percepatan Proxoperator. Kerja yang sangat bagus.
Royi
3

Dalam kasus khusus di mana , fungsi objektif dapat ditulis sebagaif(y)=y1

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

meminimalkan itu perlu untuk meminimalkan setiap entri jumlah:

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

Dengan menggunakan subdifferensial, dimungkinkan untuk menunjukkan bahwa minimizer adalah operator soft-thresholding dengan ambang batas . Itulah metode yang diusulkan oleh Donoho dan Johnstone untuk denoising sinyal. Lihat makalah mereka Adaptasi spasial yang ideal dengan susut wavelet untuk detail lebih lanjut.b

Jadi dalam hal ini, saya pikir Anda tidak perlu pemecah yang lebih canggih untuk memperkirakan sinyal Anda.

Alejandro
sumber
Anda memiliki hukuman norma daripada hukuman variasi total . Apakah itu salah cetak? L1|yi||yi+1yi|
John Robertson
Dalam pertanyaan itu tertulis: "dan | f (y) | adalah beberapa hukuman norma L1", jadi saya hanya norma , yang merupakan kasus klasik dalam denoising sinyal. Tapi mungkin saya salah paham soal itu. 1
Alejandro
Yah, itu bisa lebih jelas. Dalam kutipan itu adalah fungsi pada keseluruhan sinyal, tidak harus fungsi yang dijalankan pada setiap komponen sinyal, yaitu dapat menggabungkan sampel sinyal yang berbeda bersama-sama, misalnya sangat sah. fff(x0,x1,...)=(x1x0,x2x1,...)
John Robertson
Saya melihat. Saya akan menambahkan jawaban saya jika untuk kasus khusus di mana adalah norma . f(y)1
Alejandro
2

Ditambahkan: jika, semua persyaratannya independen - seperti yang ditunjukkan @Alejandro, Anda dapat meminimalkan setiap istilah dengan sendirinya. Lebih menarik untuk meminimalkan mana alih-alih dimaksudkan untuk mendorong banyak ke 0. Catatan berikut untuk kasus ini. (Saya memanggil variabel , bukan .)f(x)=1(x)=|xi|
Axb22+λx1
x1x2xi
xy


(Setahun kemudian) nama lain untuk kasus ini untuk kasus norma adalah regularisasi jaring elastis . Hastie et al., Elemen Pembelajaran Statistik hal. 661 ff. bahas ini untuk klasifikasi.f(x)=1

Cara mudah dan cepat untuk mendapatkan solusi perkiraan dengan banyak adalah dengan bergantianxi=0

  1. kecilkandengan kuadrat terkecilAxb
  2. shrink alias soft-threshold: atur kecil .xi=0

Ini adalah bentuk kuadrat terkecil yang berulang , dengan bobot 0 atau 1. Saya berharap metode dalam makalah yang dikutip dalam jawaban sebelumnya akan memberikan hasil yang lebih baik; ini sederhana.

(Saat meminimalkan jumlah , sebaiknya plot dan pada skala log-log untuk iter 1 2 3 ... Jika tidak, satu istilah dapat membanjiri yang lain, dan Anda bahkan tidak akan menyadarinya - terutama ketika skalanya berbeda.)f()+λg()f()λg()

denis
sumber