2

I am looking at implementing Nesterov's method for my algorithm being written in python. Can anyone please point me to docs which can help me get started in terms of implementation of this method? I am a programmer by profession and hence looking at non-theoretical versions.

I tried going through this http://www.ee.ucla.edu/~vandenbe/236C/lectures/fgrad.pdf but am struck at a point when they mention the prox operator. what is the prox operator and are there any pointers for implementing a prox operator ?

Thanks a lot for your time.

Ananth
  • 105
  • 1
  • 4

1 Answers1

0

This paper by Boyd explains the proximal operator and how it's used very nicely. Equation 1.2 shows the definition of prox_{\lambda f}(v) which is essentially a small convex optimization problem trading off "between minimizing f and being near to v". As for implementation, it will generally depend on the function f. For example, if f is the indicator function of a convex set (0 if the point is in the set, and +infinity elsewhere) then the proximal operator is a Euclidean projection onto the set. You can look into the source code of the POGS solver and see some of the various proximal operators they have defined (they are only solvable analytically for a handful of functions and even then they can involve the Lambert W function or finding the roots of a cubic polynomial.)

Casey
  • 417
  • 3
  • 10