X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=folded-ctf.git;a=blobdiff_plain;f=loss_machine.h;h=9d7a78c5406771999808706f30cda84f7fa747ca;hp=a293e8b71a9090bb2ed89fc1d31fafd7c819288d;hb=HEAD;hpb=d922ad61d35e9a6996730bec24b16f8bf7bc426c diff --git a/loss_machine.h b/loss_machine.h index a293e8b..9d7a78c 100644 --- a/loss_machine.h +++ b/loss_machine.h @@ -1,20 +1,34 @@ +/* + * folded-ctf is an implementation of the folded hierarchy of + * classifiers for object detection, developed by Francois Fleuret + * and Donald Geman. + * + * Copyright (c) 2008 Idiap Research Institute, http://www.idiap.ch/ + * Written by Francois Fleuret + * + * This file is part of folded-ctf. + * + * folded-ctf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * folded-ctf is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with folded-ctf. If not, see . + * + */ -/////////////////////////////////////////////////////////////////////////// -// This program is free software: you can redistribute it and/or modify // -// it under the terms of the version 3 of the GNU General Public License // -// as published by the Free Software Foundation. // -// // -// This program is distributed in the hope that it will be useful, but // -// WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // -// General Public License for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -// // -// Written by Francois Fleuret, (C) IDIAP // -// Contact for comments & bug reports // -/////////////////////////////////////////////////////////////////////////// +/* + + A LossMachine provides all the methods necessary to do boosting with + a certain loss. Note that only the LOSS_EXPONENTIAL has been really + tested. Using the others may result in unexpected effects. + + */ #ifndef LOSS_MACHINE_H #define LOSS_MACHINE_H @@ -38,14 +52,14 @@ public: scalar_t *weak_learner_responses, scalar_t *current_responses); - // This method returns in sample_nb_occurences[k] the number of time - // the example k was sampled, and in sample_responses[k] the - // consistent response so that the overall loss remains the same. If - // allow_duplicates is set to 1, all samples will have an identical - // response (i.e. weight), but some may have more than one - // occurence. On the contrary, if allow_duplicates is 0, samples - // will all have only one occurence (or zero) but the responses may - // vary to account for the multiple sampling. + /* This method returns in sample_nb_occurences[k] the number of time + the example k was sampled, and in sample_responses[k] the + consistent response so that the overall loss remains the same. If + allow_duplicates is set to 1, all samples will have an identical + response (i.e. weight), but some may have more than one + occurence. On the contrary, if allow_duplicates is 0, samples + will all have only one occurence (or zero) but the responses may + vary to account for the multiple sampling. */ void subsample(int nb, scalar_t *labels, scalar_t *responses, int nb_to_sample, int *sample_nb_occurences, scalar_t *sample_responses,