Vowpal Wabbit
Functions
active_cover.h File Reference

Go to the source code of this file.

Functions

LEARNER::base_learneractive_cover_setup (VW::config::options_i &options, vw &all)
 

Function Documentation

◆ active_cover_setup()

LEARNER::base_learner* active_cover_setup ( VW::config::options_i options,
vw all 
)

Definition at line 230 of file active_cover.cc.

References add(), VW::config::options_i::add_and_parse(), LEARNER::as_singleline(), f, vw::get_random_state(), LEARNER::init_learner(), LEARNER::make_base(), VW::config::make_option(), setup_base(), THROW, and VW::config::options_i::was_supplied().

Referenced by parse_reductions().

231 {
232  auto data = scoped_calloc_or_throw<active_cover>();
233  option_group_definition new_options("Active Learning with Cover");
234 
235  bool active_cover_option = false;
236  new_options.add(make_option("active_cover", active_cover_option).keep().help("enable active learning with cover"))
237  .add(make_option("mellowness", data->active_c0)
238  .default_value(8.f)
239  .help("active learning mellowness parameter c_0. Default 8."))
240  .add(make_option("alpha", data->alpha)
241  .default_value(1.f)
242  .help("active learning variance upper bound parameter alpha. Default 1."))
243  .add(make_option("beta_scale", data->beta_scale)
244  .default_value(sqrtf(10.f))
245  .help("active learning variance upper bound parameter beta_scale. Default std::sqrt(10)."))
246  .add(make_option("cover", data->cover_size).keep().default_value(12).help("cover size. Default 12."))
247  .add(make_option("oracular", data->oracular).help("Use Oracular-CAL style query or not. Default false."));
248  options.add_and_parse(new_options);
249 
250  if (!active_cover_option)
251  return nullptr;
252 
253  data->all = &all;
254  data->_random_state = all.get_random_state();
255  data->beta_scale *= data->beta_scale;
256 
257  if (data->oracular)
258  data->cover_size = 0;
259 
260  if (options.was_supplied("lda"))
261  THROW("error: you can't combine lda and active learning");
262 
263  if (options.was_supplied("active"))
264  THROW("error: you can't use --active_cover and --active at the same time");
265 
266  auto base = as_singleline(setup_base(options, all));
267 
268  data->lambda_n = new float[data->cover_size];
269  data->lambda_d = new float[data->cover_size];
270 
271  for (size_t i = 0; i < data->cover_size; i++)
272  {
273  data->lambda_n[i] = 0.f;
274  data->lambda_d[i] = 1.f / 8.f;
275  }
276 
277  // Create new learner
279  data, base, predict_or_learn_active_cover<true>, predict_or_learn_active_cover<false>, data->cover_size + 1);
280 
281  return make_base(l);
282 }
base_learner * make_base(learner< T, E > &base)
Definition: learner.h:462
virtual void add_and_parse(const option_group_definition &group)=0
std::shared_ptr< rand_state > get_random_state()
Definition: global_data.h:553
single_learner * as_singleline(learner< T, E > *l)
Definition: learner.h:476
learner< T, E > & init_learner(free_ptr< T > &dat, L *base, void(*learn)(T &, L &, E &), void(*predict)(T &, L &, E &), size_t ws, prediction_type::prediction_type_t pred_type)
Definition: learner.h:369
virtual bool was_supplied(const std::string &key)=0
int add(svm_params &params, svm_example *fec)
Definition: kernel_svm.cc:546
typed_option< T > make_option(std::string name, T &location)
Definition: options.h:80
LEARNER::base_learner * setup_base(options_i &options, vw &all)
Definition: parse_args.cc:1222
#define THROW(args)
Definition: vw_exception.h:181
float f
Definition: cache.cc:40