Momentum
// Without policy class..
Optimize(arma::mat& iterate){
arma::mat v = arma::zeros<arma::mat>(iterate.n_rows, iterate.n_cols);
for(;;){
v = momentum*v - stepSize * gradient;
iterate += v;
}
}
// The above code in MomentumSGD wil be changed to the following by using a Momentum updatePolicy class:
Optimize(arma::mat& iterate){
updatePolicy.init(iterate.n_rows, iterate.n_cols);
for(;;){
iterate += updatePolicy.update(stepSize,gradient)
}
}