This commit is contained in:
张壹 2024-12-27 18:27:26 +08:00
parent 4a3ee5c815
commit 78a02fa3fc
2 changed files with 9 additions and 5 deletions

View File

@ -624,6 +624,7 @@ gctl::lgd_return_code gctl::lgd_solver::lgd_momentum(array<double> &best_m, arra
new_mean.resize(lgd_ques_num_); b_m.resize(lgd_ques_num_); alphas.resize(lgd_ques_num_); 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 mt = 1.0, vt = 1.0;
double fhat, shat;
fst_mt.resize(lgd_ques_num_, 0.0); fst_mt.resize(lgd_ques_num_, 0.0);
sec_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<double> &best_m, arra
for (int i = 0; i < lgd_ques_num_; i++) for (int i = 0; i < lgd_ques_num_; i++)
{ {
g[i] = levy_length*alphas[i]*g[i]/direct_mod; 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); 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])/(1.0 - vt); sec_mt[i] = lgd_param_.smt*sec_mt[i] + (1.0 - lgd_param_.smt)*g[i]*g[i];
best_m[i] -= fst_mt[i]/(sqrt(sec_mt[i]) + 1e-10);
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)) if (!vecvalid(best_m))

View File

@ -140,13 +140,13 @@ namespace gctl
double lambda; double lambda;
/** /**
* @brief First order moment. * @brief First order moment. The default value is 0.5.
* *
*/ */
double fmt; double fmt;
/** /**
* @brief Second order moment. * @brief Second order moment. The default value is 0.05.
* *
*/ */
double smt; double smt;