tiepvupsu / FISTA

FISTA implementation in MATLAB (recently updated FISTA with backtracking)
184 stars 61 forks source link

Question about the Matrix D #8

Open HoracceFeng opened 3 years ago

HoracceFeng commented 3 years ago

Hi @tiepvupsu ,

I am now reproducing the FISTA code based on the paper. I find out that the matrix A defined in the paper is the same as the matrix D in your code. My question is, if I am doing a image restoration task, I need to construct a matrix A as the paper section 5.1 states (A=RW), but in your code, this step is ignored and replaced as D=normc(rand(d,k)), would you please explain how to use your code to reproduce the result shown in the paper? I have tried your way to define D, but thing's not work.

Thank you.

tiepvupsu commented 3 years ago

Hi @HoracceFeng, I'm not which paper you are taking about, but A in your equation looks different from D in my code.

Specifically, my code try to solve X from minimizing ||Y - DX||_s^2 with some regularization, while it looks like you are solving R or W from ||A - RW||_2^2 with some regularization. So A in yours is equivalent to Y in this code.

HoracceFeng commented 3 years ago

Hi @tiepvupsu,

Acutally, the paper I am talking about is the origin FISTA paper (“a fast iterative shrinkage-thresholding algorithm”), your code should be based on this paper. In the experiment part of this paper (Section 5.1, Page 15), the author are solving problem ||Ax-b||_s^2 and the matrix A will be constructed by A=RW, where R is the matrix representing the blur operator and W is the inverse of a three stage Haar wavelet transform.

Now I try to use your code to reproduce the result shown in this paper but get stuck when using this code. Would you please help?

Thank you so much

From: tiepvupsu @.> Date: Friday, September 03, 2021 at 11:31 To: tiepvupsu/FISTA @.> Cc: XavierFlow @.>, Mention @.> Subject: Re: [tiepvupsu/FISTA] Question about the Matrix D (#8)

Hi @HoracceFenghttps://github.com/HoracceFeng, I'm not which paper you are taking about, but A in your equation looks different from D in my code.

Specifically, my code try to solve X from minimizing ||Y - DX||_s^2 with some regularization, while it looks like you are solving R or W from ||A - RW||_2^2 with some regularization. So A in yours is equivalent to Y in this code.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/tiepvupsu/FISTA/issues/8#issuecomment-912227832, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE6372L6KEJZE6FBESENG6LUAA6RZANCNFSM5DKSIHAQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

tiepvupsu commented 3 years ago

Hi @HoracceFeng,

This repo focuses on solving x to minimize ||y - Ax||_s^2 with some regularization given y and A. How to set up y and A in a specific problem is out of scope here. Sorry I couldn't help with it.