LDA++
CorrespondenceSupervisedMStep.hpp
1 #ifndef _LDAPLUSPLUS_EM_CORRESPONDENCESUPERVISEDMSTEP_HPP_
2 #define _LDAPLUSPLUS_EM_CORRESPONDENCESUPERVISEDMSTEP_HPP_
3 
4 #include "ldaplusplus/em/MStepInterface.hpp"
5 
6 namespace ldaplusplus {
7 namespace em {
8 
9 
29 template <typename Scalar>
31 {
32  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> MatrixX;
33  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> VectorX;
34 
35  public:
36  CorrespondenceSupervisedMStep(Scalar mu = 2.)
37  : mu_(mu)
38  {}
39 
46  virtual void m_step(
47  std::shared_ptr<parameters::Parameters> parameters
48  ) override;
49 
60  virtual void doc_m_step(
61  const std::shared_ptr<corpus::Document> doc,
62  const std::shared_ptr<parameters::Parameters> v_parameters,
63  std::shared_ptr<parameters::Parameters> m_parameters
64  ) override;
65 
66  private:
67  MatrixX phi_scaled_;
68  VectorX phi_scaled_sum_;
69  MatrixX b_;
70  MatrixX h_;
71  Scalar mu_;
72 
73  Scalar log_py_;
74 };
75 
76 } // namespace em
77 } // namespace ldaplusplus
78 
79 #endif // _LDAPLUSPLUS_EM_CORRESPONDENCESUPERVISEDMSTEP_HPP_
Definition: MStepInterface.hpp:24
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: CorrespondenceSupervisedMStep.cpp:33
virtual void m_step(std::shared_ptr< parameters::Parameters > parameters) override
Definition: CorrespondenceSupervisedMStep.cpp:11
Definition: CorrespondenceSupervisedMStep.hpp:30
Definition: Document.hpp:11