15 #ifndef __MLPACK_CORE_OPTIMIZERS_ADADELTA_ADA_DELTA_HPP 16 #define __MLPACK_CORE_OPTIMIZERS_ADADELTA_ADA_DELTA_HPP 21 namespace optimization {
62 template<
typename DecomposableFunctionType>
83 AdaDelta(DecomposableFunctionType&
function,
84 const double rho = 0.95,
85 const double eps = 1e-6,
86 const size_t maxIterations = 100000,
87 const double tolerance = 1e-5,
88 const bool shuffle =
true);
101 const DecomposableFunctionType&
Function()
const {
return function; }
103 DecomposableFunctionType&
Function() {
return function; }
106 double Rho()
const {
return rho; }
108 double&
Rho() {
return rho; }
132 DecomposableFunctionType&
function;
141 size_t maxIterations;
155 #include "ada_delta_impl.hpp" Adadelta is an optimizer that uses two ideas to improve upon the two main drawbacks of the Adagrad me...
Linear algebra utility functions, generally performed on matrices or vectors.
AdaDelta(DecomposableFunctionType &function, const double rho=0.95, const double eps=1e-6, const size_t maxIterations=100000, const double tolerance=1e-5, const bool shuffle=true)
Construct the AdaDelta optimizer with the given function and parameters.
The core includes that mlpack expects; standard C++ includes and Armadillo.
double Rho() const
Get the smoothing parameter.
double Optimize(arma::mat &iterate)
Optimize the given function using AdaDelta.
double Epsilon() const
Get the value used to initialise the mean squared gradient parameter.
size_t MaxIterations() const
Get the maximum number of iterations (0 indicates no limit).
double & Rho()
Modify the smoothing parameter.
bool Shuffle() const
Get whether or not the individual functions are shuffled.
DecomposableFunctionType & Function()
Modify the instantiated function.
const DecomposableFunctionType & Function() const
Get the instantiated function to be optimized.
double Tolerance() const
Get the tolerance for termination.
double & Tolerance()
Modify the tolerance for termination.
size_t & MaxIterations()
Modify the maximum number of iterations (0 indicates no limit).
bool & Shuffle()
Modify whether or not the individual functions are shuffled.
double & Epsilon()
Modify the value used to initialise the mean squared gradient parameter.