If you’re not aware of the excellent edX MOOC course currently running from the Technion on applications of sparsity in signal restoration you should definitely take a look. It’s being taught by Professor Michael Elad, the mind behind the K-SVD algorithm. This is an excellent opportunity to learn from the best.

In one of his early lectures he provides an overview of the Majorization-Minimization method for ISTA, where he defines the auxiliary function:

And states that this can be simplified into :

This is an important result, as the subtracted term in the norm is not a function of . Therefore, we can compact the equation into the following form:

The full derivation of this result is left to the students, but as many taking the class may not have had fresh exposure to linear algebra, I have decided to provide the full derivation here as an educational reference.

Let’s consider expanding out the additional terms in the cost function, folding all of the original terms into J:

Which factored yields:

Let’s replace J with the original expression and expand out the norm:

Where we have observed the following two terms are equivalent constants due to the structure of the problem:

Since:

Let’s hold off considering the term and the fractions for simplicity in the following:

Note that the first three terms do not depend on , and we can simplify them as a constant factor:

To give some intuition about the next few steps we’re going to take, it would be advantageous from an optimization framework if we could redefine the form of this equation in terms of an norm. Let’s remind ourselves what an norm looks like when expanded:

We already have an equation with the modulus of our dependent vector subtracted by two times a constant times our dependent vector. This is already pretty close! To that end, let’s define:

Then redefining our equation in terms of b:

And therefore we can redefine Q in terms of an norm and replace the fraction 1/2 we removed previously:

Thus:

Note that we are interested in the derivative of Q, and everything outside of the norm is a constant with respect to ! Folding these terms into the constant, replacing b, and returning the norm, we are left with the result from the class:

Therefore:

Next time I will demonstrate how to implement ISTA for image deblurring in Python.