From 78a02fa3fc8b400dd417f2d72d8b3cece2a3a6f0 Mon Sep 17 00:00:00 2001 From: Yi Zhang Date: Fri, 27 Dec 2024 18:27:26 +0800 Subject: [PATCH] tmp --- lib/optimization/lgd.cpp | 10 +++++++--- lib/optimization/lgd.h | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/optimization/lgd.cpp b/lib/optimization/lgd.cpp index 0c24842..a5f4f66 100644 --- a/lib/optimization/lgd.cpp +++ b/lib/optimization/lgd.cpp @@ -624,6 +624,7 @@ gctl::lgd_return_code gctl::lgd_solver::lgd_momentum(array &best_m, arra new_mean.resize(lgd_ques_num_); b_m.resize(lgd_ques_num_); alphas.resize(lgd_ques_num_); double mt = 1.0, vt = 1.0; + double fhat, shat; fst_mt.resize(lgd_ques_num_, 0.0); sec_mt.resize(lgd_ques_num_, 0.0); @@ -736,9 +737,12 @@ gctl::lgd_return_code gctl::lgd_solver::lgd_momentum(array &best_m, arra for (int i = 0; i < lgd_ques_num_; i++) { g[i] = levy_length*alphas[i]*g[i]/direct_mod; - fst_mt[i] = (lgd_param_.fmt*fst_mt[i] + (1.0 - lgd_param_.fmt)*g[i])/(1.0 - mt); - sec_mt[i] = (lgd_param_.smt*sec_mt[i] + (1.0 - lgd_param_.smt)*g[i]*g[i])/(1.0 - vt); - best_m[i] -= fst_mt[i]/(sqrt(sec_mt[i]) + 1e-10); + fst_mt[i] = lgd_param_.fmt*fst_mt[i] + (1.0 - lgd_param_.fmt)*g[i]; + sec_mt[i] = lgd_param_.smt*sec_mt[i] + (1.0 - lgd_param_.smt)*g[i]*g[i]; + + fhat = fst_mt[i]/(1.0 - mt); + shat = sec_mt[i]/(1.0 - vt); + best_m[i] -= fhat/(sqrt(shat) + lgd_param_.sigma); } if (!vecvalid(best_m)) diff --git a/lib/optimization/lgd.h b/lib/optimization/lgd.h index c8d2b38..8ad56da 100644 --- a/lib/optimization/lgd.h +++ b/lib/optimization/lgd.h @@ -140,13 +140,13 @@ namespace gctl double lambda; /** - * @brief First order moment. + * @brief First order moment. The default value is 0.5. * */ double fmt; /** - * @brief Second order moment. + * @brief Second order moment. The default value is 0.05. * */ double smt;