Skip to content

Commit b9ad815

Browse files
committed
Remove sudden jump
1 parent debc11b commit b9ad815

File tree

6 files changed

+12
-46
lines changed

6 files changed

+12
-46
lines changed

examples/bo_compare.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
int main(int nargs, char *args[])
2828
{
2929
bayesopt::Parameters par;
30+
3031
par.verbose_level = 0;
3132
par.noise = 1e-10;
32-
par.force_jump = 30;
3333

3434
std::ofstream log;
3535
std::clock_t start_t;

include/bayesopt/parameters.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,6 @@ namespace bayesopt {
9797
bool l_all; /**< Learn all hyperparameters or only kernel */
9898

9999
double epsilon; /**< For epsilon-greedy exploration */
100-
size_t force_jump; /**< If >0, and the difference between two
101-
consecutive observations is pure noise,
102-
for n consecutive steps, force a random
103-
jump. Avoid getting stuck if model is bad
104-
and there is few data, however, it might
105-
reduce the accuracy. */
106100

107101
KernelParameters kernel; /**< Kernel parameters */
108102
MeanParameters mean; /**< Mean (parametric function) parameters */

src/bayesoptbase.cpp

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -111,30 +111,6 @@ namespace bayesopt
111111
// Find what is the next point.
112112
vectord xNext = nextPoint();
113113
double yNext = evaluateSampleInternal(xNext);
114-
115-
// If we are stuck in the same point for several iterations, try a random jump!
116-
if (mParameters.force_jump)
117-
{
118-
if (std::pow(mYPrev - yNext,2) < mParameters.noise)
119-
{
120-
mCounterStuck++;
121-
FILE_LOG(logDEBUG) << "Stuck for "<< mCounterStuck << " steps";
122-
}
123-
else
124-
{
125-
mCounterStuck = 0;
126-
}
127-
mYPrev = yNext;
128-
129-
if (mCounterStuck > mParameters.force_jump)
130-
{
131-
FILE_LOG(logINFO) << "Forced random query!";
132-
xNext = samplePoint();
133-
yNext = evaluateSampleInternal(xNext);
134-
mCounterStuck = 0;
135-
}
136-
}
137-
138114
double expectation = getPrediction(xNext)->getMean();
139115

140116
mModel->addSample(xNext,yNext);

src/bopt_state.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ namespace bayesopt
9191
}
9292

9393
fp.readOrWrite("mParameters.l_all", mParameters.l_all);
94+
9495
fp.readOrWrite("mParameters.epsilon", mParameters.epsilon);
95-
fp.readOrWrite("mParameters.force_jump", mParameters.force_jump);
96-
96+
9797
fp.readOrWrite("mParameters.kernel.name", mParameters.kernel.name);
9898
fp.readOrWrite("mParameters.kernel.hp_mean", mParameters.kernel.hp_mean);
9999
fp.readOrWrite("mParameters.kernel.hp_std", mParameters.kernel.hp_std);

src/parameters.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,7 @@ bopt_params initialize_parameters_to_default(void)
199199
params.sc_type = SC_MAP;
200200

201201
params.epsilon = 0.0;
202-
params.force_jump = 20;
203-
202+
204203
params.crit_name = new char[128];
205204
strcpy(params.crit_name,CRIT_NAME.c_str());
206205
params.n_crit_params = 0;
@@ -274,10 +273,9 @@ namespace bayesopt {
274273
l_type = c_params.l_type;
275274

276275
l_all = c_params.l_all;
277-
276+
278277
epsilon = c_params.epsilon;
279-
force_jump = c_params.force_jump;
280-
278+
281279
kernel.name = std::string(c_params.kernel.name);
282280
kernel.hp_mean = bayesopt::utils::array2vector(c_params.kernel.hp_mean,
283281
c_params.kernel.n_hp);
@@ -325,10 +323,9 @@ namespace bayesopt {
325323
c_params.l_type = l_type;
326324

327325
c_params.l_all = l_all;
328-
326+
329327
c_params.epsilon = epsilon;
330-
c_params.force_jump = force_jump;
331-
328+
332329
strcpy(c_params.kernel.name, kernel.name.c_str());
333330
//TODO (Javier): Should it be necessary to check size?
334331
for(size_t i=0; i<kernel.hp_mean.size(); i++){
@@ -404,10 +401,9 @@ namespace bayesopt {
404401
l_all = false;
405402
l_type = L_EMPIRICAL;
406403
sc_type = SC_MAP;
407-
404+
408405
epsilon = 0.0;
409-
force_jump = 20;
410-
406+
411407
crit_name = CRIT_NAME;
412408
}
413409
}//namespace bayesopt

utils/param_loader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ namespace bayesopt
7474
}
7575

7676
fp.readOrWrite("l_all", par.l_all);
77+
7778
fp.readOrWrite("epsilon", par.epsilon);
78-
fp.readOrWrite("force_jump", par.force_jump);
79-
79+
8080
fp.readOrWrite("kernel.name", par.kernel.name);
8181
fp.readOrWrite("kernel.hp_mean", par.kernel.hp_mean);
8282
fp.readOrWrite("kernel.hp_std", par.kernel.hp_std);

0 commit comments

Comments
 (0)