Samiksha Jaiswal (Editor)

Coordinate descent

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Coordinate descent

Coordinate descent is a derivative-free optimization algorithm. To find a local minimum of a function, one does line search along one coordinate direction at the current point in each iteration. One uses different coordinate directions cyclically throughout the procedure.

Contents

Description

Coordinate descent is based on the idea that the minimization of a multivariable function F ( x ) can be achieved by minimizing it along one direction at a time, i.e., solving univariate (or at least much simpler) optimization problems in a loop. In the simplest case of cyclic coordinate descent, one cyclically iterates through the directions, one at a time, minimizing the objective function with respect to each coordinate direction at a time. That is, starting with initial variable values

x 0 = ( x 1 0 , , x n 0 ) ,

round k + 1 defines x k + 1 from x k by iteratively solving the single variable optimization problems

x i k + 1 = a r g m i n y R f ( x 1 k + 1 , , x i 1 k + 1 , y , x i + 1 k , , x n k )

for each variable x i of x , for i from 1 to n .

Thus, one begins with an initial guess x 0 for a local minimum of F , and gets a sequence x 0 , x 1 , x 2 , iteratively.

By doing line search in each iteration, one automatically has

F ( x 0 ) F ( x 1 ) F ( x 2 ) .

It can be shown that this sequence has similar convergence properties as steepest descent. No improvement after one cycle of line search along coordinate directions implies a stationary point is reached.

This process is illustrated below.

Differentiable case

In the case of a continuously differentiable function F, a coordinate descent algorithm can be sketched as:

The step size can be chosen in various ways, e.g., by solving for the exact minimizer of f(xi) = F(x) (i.e., F with all variables but xi fixed), or by traditional line search criteria.

Limitations

Coordinate descent has two problems. One of them is having a non-smooth multivariable function. The following picture shows that coordinate descent iteration may get stuck at a non-stationary point if the level curves of a function are not smooth. Suppose that the algorithm is at the point (-2, -2); then there are two axis-aligned directions it can consider for taking a step, indicated by the red arrows. However, every step along these two directions will increase the objective function's value (assuming a minimization problem), so the algorithm will not take any step, even though both steps together would bring the algorithm closer to the optimum.

The other problem is difficulty in parallelism. Since the nature of Coordinate Descent is to cycle through the directions and minimize the objective function with respect to each coordinate direction, Coordinate Descent is not an obvious candidate for massive parallelism. Recent research works have shown that massive parallelism is applicable to Coordinate Descent by relaxing the change of the objective function with respect to each coordinate direction.

Applications

Coordinate descent algorithms are popular with practitioners owing to their simplicity, but the same property has led optimization researchers to largely ignore them in favor of more interesting (complicated) methods. An early application of coordinate descent optimization was in the area of computed tomography where it has been found to have rapid convergence and was subsequently used for clinical multi-slice helical scan CT reconstruction. Moreover, there has been increased interest in the use of coordinate descent with the advent of large-scale problems in machine learning, where coordinate descent has been shown competitive to other methods when applied to such problems as training linear support vector machines (see LIBLINEAR) and non-negative matrix factorization. They are attractive for problems where computing gradients is infeasible, perhaps because the data required to do so are distributed across computer networks.

References

Coordinate descent Wikipedia