opencog / moses

MOSES Machine Learning: Meta-Optimizing Semantic Evolutionary Search. See also AS-MOSES https://github.com/opencog/asmoses but kept to guaranty backward compatibility.
https://wiki.opencog.org/w/Meta-Optimizing_Semantic_Evolutionary_Search
Other
127 stars 83 forks source link

MOSES fails to run when boosting is enabled #63

Open Habush opened 6 years ago

Habush commented 6 years ago

I am trying to run MOSES with the --boost option set to true(1) to enable boosting. However, MOSES keeps failing by throwing the following exception:

terminate called after throwing an instance of 'opencog::AssertionException' what(): bscore error not implemented for bscorer N7opencog5moses19ctruth_table_bscoreE (/home/xabush/moses/moses/moses/scoring/scoring_base.cc:116)

Here the full command line options that I used:

  moses -i train_temp_5b910dc42ae73d236f57cc08 -o 5b910dc42ae73d236f57cc08_fold_0_seed_941 --random-seed=941  '--balance=1' 
 '--boost=1'  '--boost-promote=2'  '--enable-fs=1'  '--fs-algo=simple'  '--fs-target-size=4'  '--hc-widen-search=1'  '--reduct-knob-building-effort=1'  '--result-count=100'  -W1  -j 8 -m 10000
chamorajg commented 4 years ago

Can I take up this issue and work on it ?

linas commented 4 years ago

That code used to work, so, sure. Looks like there is some shared-library linkage problem; the executable wasn't linked correctly.

The meta-issue is that boosting, as a feature in moses, is not very useful. It sounds good, if you blur your eyes and don't think about it much, but, due to the nature of how moses works, boosting is nearly useless/harmful (unlike other machine-learning algos where it makes a big difference). It only works in a corner-case of the parameter space, and that corner is unused in real-world usage scenarios.

Since the boost code introduces extra complexity, while being effectively useless, it might be better to just #ifdef it out or remove entirely. This might be of particular interest for as-moses -- FYI -- @Habush