Giải quyết vấn đề tối ưu hóa lồi được sử dụng để khử nhiễu chất lượng cao


8

Câu trả lời được bình chọn cao nhất cho câu hỏi này cho thấy rằng để khử tín hiệu trong khi duy trì chuyển tiếp sắc nét, người ta nên

giảm thiểu chức năng mục tiêu:

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

Trong đó là tín hiệu nhiễu, là tín hiệu bị khử , là tham số chính quy vàlà một số hình phạt định mức L1. Việc khử nhiễu được thực hiện bằng cách tìm giải pháp cho vấn đề tối ưu hóa này và phụ thuộc vào mức độ tiếng ồn.y b | f ( y ) | y bxyb|f(y)|yb

Tuy nhiên, không có dấu hiệu nào cho thấy người ta có thể thực hiện điều đó như thế nào trong thực tế vì đó là một vấn đề trong không gian rất cao, đặc biệt là nếu tín hiệu này dài 10 triệu mẫu. Trong thực tế, loại vấn đề này được giải quyết như thế nào cho các tín hiệu lớn?


Bạn có quan tâm đến thời gian chạy? Mặt khác, việc lặp đi lặp lại về cách giảm thiểu một chức năng là khá rộng rãi (Levenberg-Marquest, Nelder-Mead, v.v. đến với tâm trí). Thậm chí có một số phiên bản sửa đổi được làm riêng cho việc này.
thang

Trên thực tế, tôi có một câu hỏi cho những người trả lời dưới đây. Bên cạnh việc chậm chạp, có gì sai với chỉ một thứ như Levenberg-Marquest hay Nelder-Mead? Đây là những tối ưu hóa tổng quát, do đó bạn thậm chí có thể xấp xỉ bằng số . f
thang

Vâng, tôi quan tâm đến thời gian chạy, nhưng cảm ơn vì đã chỉ ra các phương pháp này.
John Robertson

Câu trả lời:


6

Boyd có Bộ giải Matlab cho các vấn đề bình phương tối thiểu ℓ1 thường xuyên . Việc xây dựng vấn đề trong đó có một chút khác biệt, nhưng phương pháp có thể được áp dụng cho vấn đề.

Phương pháp tiếp cận tối thiểu hóa cổ điển hóa cũng hoạt động tốt. Điều này tương ứng với việc thực hiện lặp đi lặp lại mềm ( đối với TV, cắt ).

Các giải pháp có thể được nhìn thấy từ các liên kết. Tuy nhiên, có nhiều phương pháp để giảm thiểu các chức năng này bằng cách sử dụng rộng rãi các tài liệu tối ưu hóa.

PS: Như đã đề cập trong các bình luận khác, FISTA sẽ hoạt động tốt. Một họ thuật toán 'rất nhanh' khác là thuật toán primal-dual. Bạn có thể xem bài báo thú vị của Chambolle để lấy ví dụ, tuy nhiên có rất nhiều tài liệu nghiên cứu về phương pháp nguyên thủy - kép cho các công thức bài toán ngược tuyến tính.


'Primal-dual' chính xác đề cập đến điều gì?
Spacey

Mohammad, tôi đã không thực hiện bất kỳ thuật toán primal-dual nào cho các vấn đề nghịch đảo. Tuy nhiên, bạn có thể thấy một ví dụ từ liên kết tôi đã đề cập trong câu trả lời: bài báo của Chambolle. Từ bài báo này, bạn có thể thấy chính xác thuật toán primal-dual nghĩa là gì. Các phương pháp này chỉ cung cấp một giải pháp khác (và hội tụ nhanh) cho các vấn đề nghịch đảo.
Deniz

Tôi nghĩ kép nguyên thủy là tối ưu hóa tổ hợp? Làm thế nào bạn có thể chuyển đổi vấn đề này một cách khái quát (cho một chung ) vào khung đó? f
thang

thang, như tôi đã đề cập trước đây, tôi không phải là một chuyên gia về lĩnh vực này. Bạn có thể xem bài báo của Chambolle và xem rằng có thể sử dụng các phương pháp kép như thế nào để giải quyết các vấn đề như hoặc chính quy hóa TV. 1
Deniz

4

Để giải quyết các vấn đề tối ưu hóa với hình phạt trên TV, chúng tôi sử dụng thuật toán được đề xuất gần đây có tên là Thuật toán dựa trên độ dốc nhanh cho các vấn đề khử nhiễu và khử nhiễu hình ảnh bị hạn chế (FISTA) , có tốc độ hội tụ tốt hơn các phương pháp lặp thông thường, như ASD-POCS.


1
Bạn có thể thêm một số thông tin về thuật toán không, vì tài liệu tham khảo duy nhất bạn liên kết yêu cầu mua bài viết?
Jason R


@JasonR, về cơ bản là Nesterov Gia tốc của Proxtoán tử. Làm việc rất tốt
Royi

3

Trong trường hợp cụ thể trong đó , hàm mục tiêu có thể được viết làf(y)=y1

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

giảm thiểu nó yêu cầu giảm thiểu mỗi mục của tổng:

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

Sử dụng các phân số phụ có thể chỉ ra rằng bộ giảm thiểu là toán tử ngưỡng mềm có ngưỡng . Đó là phương pháp được Donoho và Johnstone đề xuất để khử tín hiệu. Xem bài viết của họ Thích ứng không gian lý tưởng bằng cách thu nhỏ sóng con để biết thêm chi tiết.b

Vì vậy, trong trường hợp này, tôi nghĩ rằng bạn không cần một người giải phức tạp hơn để ước tính tín hiệu của bạn.


Bạn có hình phạt định mức thay vì tổng hình phạt biến thể . Đó có phải là một lỗi đánh máy? L1|yi||yi+1yi|
John Robertson

Trong câu hỏi có ghi: "và | f (y) | là một số hình phạt định mức L1", vì vậy tôi chỉ cắm định mức , đây là trường hợp kinh điển trong việc khử tín hiệu. Nhưng có thể tôi đang hiểu nhầm câu hỏi. 1
Alejandro

Yah, điều đó có thể đã rõ ràng hơn. Trong trích dẫn đó là một hàm trên toàn bộ tín hiệu, không nhất thiết là một hàm đang chạy trên từng thành phần của tín hiệu, đó là có thể kết hợp các mẫu tín hiệu khác nhau với nhau, ví dụ là hoàn toàn hợp pháp. fff(x0,x1,...)=(x1x0,x2x1,...)
John Robertson

Tôi hiểu rồi. Tôi sẽ thêm câu trả lời của mình nếu trong trường hợp cụ thể trong đó là định mức . f(y)1
Alejandro

2

Đã thêm: if, các điều khoản đều độc lập - như @Alejandro chỉ ra, bạn chỉ có thể tự tối thiểu hóa mỗi thuật ngữ. Thật thú vị hơn khi giảm thiểu trong đó thay vì nhằm đẩy nhiều lên 0. Các ghi chú sau đây dành cho trường hợp này. (Tôi gọi các biến , không phải .)f(x)=1(x)=|xi|
Axb22+λx1
x1x2xi
xy


(Một năm sau) một tên khác cho trường hợp này định mức là Chính quy hóa mạng đàn hồi . Hastie và cộng sự, Các yếu tố của học thống kê p. 661 ff. thảo luận về điều này để phân loại.f(x)=1

Một cách đơn giản nhanh chóng để có được một giải pháp gần đúng với nhiều là thay thếxi=0

  1. giảm thiểubằng bình phương tối thiểuAxb
  2. thu nhỏ aka ngưỡng mềm: đặt nhỏ .xi=0

Đây là một hình thức lặp lại bình phương tối thiểu lặp lại , với trọng số 0 hoặc 1. Tôi hy vọng rằng các phương pháp trong bài viết được trích dẫn trong các câu trả lời trước sẽ cho kết quả tốt hơn; cái này đơn giản.

(Khi thu nhỏ tổng , bạn nên vẽ biểu đồ và trên thang đo log-log cho iter 1 2 3 ... khác, và bạn thậm chí sẽ không nhận thấy - đặc biệt là khi chúng có quy mô khác nhau.)f ( ) λ g ( )f()+λg()f()λg()

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.