15 template <
typename math_t>
16 math_t
max(math_t a, math_t b)
18 return (a < b) ? b : a;
22 template <
typename math_t>
25 return (eta / pow(t, power_t));
28 template <
typename math_t>
34 template <
typename math_t>
37 math_t typw = sqrt(math_t(1.0) / sqrt(alpha));
38 math_t initial_eta0 = typw /
max(math_t(1.0),
regDLoss(-typw, math_t(1.0)));
39 return (math_t(1.0) / (initial_eta0 * alpha));
42 template <
typename math_t>
43 math_t
optimal(math_t alpha, math_t optimal_init,
int t)
45 return math_t(1.0) / (alpha * (optimal_init + t - 1));
48 template <
typename math_t>
math_t max(math_t a, math_t b)
Definition: learning_rate.h:16
math_t invScaling(math_t eta, math_t power_t, int t)
Definition: learning_rate.h:23
math_t optimal(math_t alpha, math_t optimal_init, int t)
Definition: learning_rate.h:43
math_t regDLoss(math_t a, math_t b)
Definition: learning_rate.h:29
math_t calLearningRate(ML::lr_type lr_type, math_t eta, math_t power_t, math_t alpha, math_t t)
Definition: learning_rate.h:49
math_t calOptimalInit(math_t alpha)
Definition: learning_rate.h:35
Definition: dbscan.hpp:18
lr_type
Definition: params.hpp:10
@ OPTIMAL
Definition: params.hpp:11
@ INVSCALING
Definition: params.hpp:13
@ CONSTANT
Definition: params.hpp:12