Turi Create  4.0

Functions

template<typename Vector = DenseVector>
solver_return turi::optimization::accelerated_gradient (first_order_opt_interface &model, const DenseVector &init_point, std::map< std::string, flexible_type > &opts, const std::shared_ptr< regularizer_interface > reg=NULL)
 

Detailed Description

Function Documentation

◆ accelerated_gradient()

template<typename Vector = DenseVector>
solver_return turi::optimization::accelerated_gradient ( first_order_opt_interface model,
const DenseVector &  init_point,
std::map< std::string, flexible_type > &  opts,
const std::shared_ptr< regularizer_interface reg = NULL 
)
inline

Solve a first_order_optimization_iterface model with a dense accelerated gradient method.

The algorithm is based on FISTA with backtracking (Beck and Teboulle 2009). Details are in Page 194 of [1].

Parameters
[in,out]modelModel with first order optimization interface.
[in]init_pointStarting point for the solver.
[in,out]optsSolver options.
[in]regShared ptr to an interface to a regularizer.
Returns
stats Solver return stats.
Template Parameters
VectorSparse or dense gradient representation.
Note
Fista is an accelerated gradient method. We can try Nesterov's accelerated gradient method too.

References:

[1] Beck, Amir, and Marc Teboulle. "A fast iterative shrinkage-thresholding algorithm for linear inverse problems." SIAM Journal on Imaging Sciences 2.1 (2009): 183-202. http://mechroom.technion.ac.il/~becka/papers/71654.pdf

Definition at line 63 of file accelerated_gradient-inl.hpp.