Cảm biến nén thông qua mã MATLAB


13

Tôi mới đến chủ đề của cảm biến nén. Tôi đã đọc một vài bài báo về nó bởi R.Baranuik, Y.Eldar, Terence Tao, v.v ... Tất cả các bài viết này về cơ bản cung cấp các chi tiết toán học đằng sau nó, ví dụ, tối thiểu hóa Sparsity, RIP, L1, v.v. Tuy nhiên, bất cứ ai cũng có thể cung cấp mã MATLAB mà đạt được cảm biến nén?

Cảm ơn trước sự giúp đỡ nào.


1
Yêu cầu mã là lạc đề ở đây.
pichenettes

Câu trả lời:


18
  • Hầu hết các mã là mã Matlab đơn giản
  • Mỗi thư mục trong gói bao gồm thuật toán khôi phục CS dựa trên một mô hình tín hiệu cụ thể và tập lệnh kiểm tra thuật toán khôi phục đó. Tên của các tập lệnh thường kết thúc bằng '_example.m'
  • Manopt . Có thể những gì bạn sử dụng để thực sự làm cho các thuật toán được bao gồm trong các hộp công cụ khác.

Tối ưu hóa trên đa tạp là một mô hình mạnh mẽ để giải quyết các vấn đề tối ưu hóa phi tuyến.

Hộp công cụ này thực hiện một số thuật toán để tính toán mở rộng thưa thớt trong các từ điển dư thừa và để giải quyết các vấn đề nghịch đảo với chính quy hóa thưa thớt (và cả chính quy TV).

Nhưng tất cả những thứ đó, và hơn thế nữa, được bao gồm trong danh sách các hộp công cụ này .

Tôi đã tìm thấy phần khó là tìm psuedocode - đó là nơi họ thực sự mô tả thuật toán. Dưới đây là một số ví dụ về các thuật toán bao gồm mã psuedocode:


7

Tôi cho rằng tôi đang trả lời ngoài chủ đề ở đây, nhưng đối với các phương pháp tối ưu hóa L1, tôi tìm thấy YALL1 ( http://yall1.bloss.rice.edu/ ) và SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) gói rất hữu ích và hiệu quả. TFOCS ( http://cvxr.com/tfocs/ ) có lẽ khó sử dụng hơn một chút, nhưng nên khá linh hoạt. Ngoài ra còn có CVX ( http://cvxr.com/cvx/ ) giúp dễ dàng nhập các vấn đề tối ưu hóa lồi trực tiếp vào mã, nhưng nó chậm hơn đáng kể để giải quyết các loại vấn đề cụ thể về cảm biến nén vì nó là một vấn đề người giải quyết rất chung chung.

Ngoài ra còn có một số thuật toán xây dựng lại có sẵn trong Sparselab ( http://sparselab.stanford.edu/ ).

Danh sách mã xây dựng thưa thớt hơn được liệt kê tại đây: https://sites.google.com/site/igorcarron2/cs#reconevelop


6

Hãy nhớ rằng, L1 không phải là phương pháp duy nhất để cảm nhận nén. Trong nghiên cứu của chúng tôi , chúng tôi đã thành công hơn với Truyền thông điệp gần đúng (AMP). Tôi đang định nghĩa "thành công" là lỗi thấp hơn, chuyển pha tốt hơn (khả năng phục hồi với ít quan sát hơn) và độ phức tạp thấp hơn (cả bộ nhớ và cpu).

Thuật toán Truyền thông điệp gần đúng thiết lập một khung Bayes để ước tính các vectơ chưa biết trong một hệ thống tuyến tính quy mô lớn, nơi đầu vào và đầu ra của hệ thống tuyến tính được xác định bởi các mô hình xác suất (ví dụ: "vectơ này được đo bằng nhiễu", "vectơ này có một số số không "). Cách tiếp cận AMP ban đầu được Donoho giả mạo đã được Rangan cải tiến thành Thông điệp gần đúng Tổng quát Truyền với mã Matlab có sẵn. Các đầu vào và đầu ra có thể là các hàm mật độ xác suất gần như tùy ý. Trong nghiên cứu của chúng tôi, chúng tôi đã phát hiện ra rằng GAMP thường nhanh hơn, chính xác hơn và mạnh mẽ hơn (đọc: đường cong chuyển pha tốt hơn) so với phương pháp tiếp cận lồi L1 và phương pháp tiếp cận tham lam (ví dụ: Theo đuổi kết hợp trực giao).

Cố vấn của tôi và tôi vừa viết một bài báo về việc sử dụng GAMP cho Phân tích CS, trong đó người ta mong đợi có nhiều số không, không phải trong vectơ x chưa biết, mà là trong hàm tuyến tính của Wx chưa biết đó.



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.