summaryrefslogtreecommitdiff
path: root/training/utils/entropy.h
blob: 796589ca9e97135fc91d6da2e37b1f3fac0c8b3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef _CSENTROPY_H_
#define _CSENTROPY_H_

#include <vector>
#include "sparse_vector.h"

namespace training {
  class CandidateSet;

  class CandidateSetEntropy {
   public:
    explicit CandidateSetEntropy(const CandidateSet& cs) : cands_(cs) {}
    // compute the entropy (expected log likelihood) of a CandidateSet
    // (optional) the gradient of the entropy with respect to params
    double operator()(const std::vector<double>& params,
                      SparseVector<double>* g = NULL) const;
   private:
    const CandidateSet& cands_;
  };
};

#endif