LDA++
MultinomialSupervisedMStep.hpp
1 #ifndef _LDAPLUSPLUS_EM_MULTINOMIALSUPERVISEDMSTEP_HPP_
2 #define _LDAPLUSPLUS_EM_MULTINOMIALSUPERVISEDMSTEP_HPP_
3 
4 #include "ldaplusplus/em/MStepInterface.hpp"
5 
6 namespace ldaplusplus {
7 namespace em {
8 
9 
10 template <typename Scalar>
12 {
13  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> MatrixX;
14  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> VectorX;
15 
16  public:
17  MultinomialSupervisedMStep(Scalar mu = 2.)
18  : mu_(mu)
19  {}
20 
24  virtual void m_step(
25  std::shared_ptr<parameters::Parameters> parameters
26  ) override;
27 
31  virtual void doc_m_step(
32  const std::shared_ptr<corpus::Document> doc,
33  const std::shared_ptr<parameters::Parameters> v_parameters,
34  std::shared_ptr<parameters::Parameters> m_parameters
35  ) override;
36 
37  private:
38  MatrixX phi_scaled_;
39  VectorX phi_scaled_sum_;
40  MatrixX b_;
41  MatrixX h_;
42  Scalar mu_;
43 
44  Scalar log_py_;
45 };
46 
47 } // namespace em
48 } // namespace ldaplusplus
49 
50 #endif // _LDAPLUSPLUS_EM_MULTINOMIALSUPERVISEDMSTEP_HPP_
virtual void doc_m_step(const std::shared_ptr< corpus::Document > doc, const std::shared_ptr< parameters::Parameters > v_parameters, std::shared_ptr< parameters::Parameters > m_parameters) override
Definition: MultinomialSupervisedMStep.cpp:33
Definition: MStepInterface.hpp:24
Definition: MultinomialSupervisedMStep.hpp:11
virtual void m_step(std::shared_ptr< parameters::Parameters > parameters) override
Definition: MultinomialSupervisedMStep.cpp:11
Definition: Document.hpp:11