X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=loss_machine.cc;h=63a65cc208f67348358f492adb2b1e90cb745498;hb=5b78a555f6c7ff20a71d0520db63bc43e69e1f41;hp=6ff78d59ab9f200b75575585b1df299f66e8f399;hpb=d922ad61d35e9a6996730bec24b16f8bf7bc426c;p=folded-ctf.git
diff --git a/loss_machine.cc b/loss_machine.cc
index 6ff78d5..63a65cc 100644
--- a/loss_machine.cc
+++ b/loss_machine.cc
@@ -12,7 +12,9 @@
// 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 //
+// Written by Francois Fleuret //
+// (C) Idiap Research Institute //
+// //
// Contact for comments & bug reports //
///////////////////////////////////////////////////////////////////////////
@@ -38,47 +40,6 @@ void LossMachine::get_loss_derivatives(SampleSet *samples,
}
break;
- case LOSS_EV_REGULARIZED:
- {
- scalar_t sum_pos = 0, sum_sq_pos = 0, nb_pos = 0, m_pos, v_pos;
- scalar_t sum_neg = 0, sum_sq_neg = 0, nb_neg = 0, m_neg, v_neg;
-
- for(int n = 0; n < samples->nb_samples(); n++) {
- if(samples->label(n) > 0) {
- sum_pos += responses[n];
- sum_sq_pos += sq(responses[n]);
- nb_pos += 1.0;
- }
- else if(samples->label(n) < 0) {
- sum_neg += responses[n];
- sum_sq_neg += sq(responses[n]);
- nb_neg += 1.0;
- }
- }
-
- m_pos = sum_pos / nb_pos;
- v_pos = sum_sq_pos/(nb_pos - 1) - sq(sum_pos)/(nb_pos * (nb_pos - 1));
-
- scalar_t loss_pos = nb_pos * exp(v_pos/2 - m_pos);
-
- m_neg = sum_neg / nb_neg;
- v_neg = sum_sq_neg/(nb_neg - 1) - sq(sum_neg)/(nb_neg * (nb_neg - 1));
-
- scalar_t loss_neg = nb_neg * exp(v_neg/2 + m_neg);
-
- for(int n = 0; n < samples->nb_samples(); n++) {
- if(samples->label(n) > 0) {
- derivatives[n] =
- ( - 1/nb_pos + (responses[n] - m_pos)/(nb_pos - 1)) * loss_pos;
- } else if(samples->label(n) < 0) {
- derivatives[n] =
- ( 1/nb_neg + (responses[n] - m_neg)/(nb_neg - 1)) * loss_neg;
- }
- }
- }
-
- break;
-
case LOSS_HINGE:
{
for(int n = 0; n < samples->nb_samples(); n++) {