Fleet
0.0.9
Inference in the LOT
|
#include <Bayesable.h>
Public Types | |
typedef _datum_t | datum_t |
typedef _data_t | data_t |
Public Member Functions | |
Bayesable () | |
virtual size_t | hash () const =0 |
virtual std::string | string (std::string prefix="") const =0 |
virtual double | compute_prior ()=0 |
virtual double | compute_single_likelihood (const datum_t &datum) |
Compute the likelihood of a single data point. More... | |
virtual void | clear_bayes () |
virtual double | compute_likelihood (const data_t &data, const double breakout=-infinity) |
Compute the likelihood of a collection of data, by calling compute_single_likelihood on each. This stops if our likelihood falls below breakout. More... | |
virtual double | compute_posterior (const data_t &data, const std::pair< double, double > breakoutpair=std::make_pair(-infinity, 1.0)) |
Compute the posterior, by calling prior and likelihood. This includes only a little bit of fanciness, which is that if our prior is -inf, then we don't both computing the likelihood. More... | |
virtual double | at_temperature (double t) const |
auto | operator (const Bayesable< datum_t, data_t > &other) const |
virtual void | show (std::string prefix="") |
Public Attributes | |
double | prior |
double | likelihood |
double | posterior |
uintmax_t | born |
size_t | born_chain_idx |
typedef _data_t Bayesable< _datum_t, _data_t >::data_t |
typedef _datum_t Bayesable< _datum_t, _data_t >::datum_t |
|
inline |
|
inlinevirtual |
Return my posterior score at a given (likelihood) temperature
t |
|
inlinevirtual |
Zero by prior, likelihood, posterior
|
inlinevirtual |
Compute the likelihood of a collection of data, by calling compute_single_likelihood on each. This stops if our likelihood falls below breakout.
data | |
breakout |
Reimplemented in BaseGrammarHypothesis< this_t, _HYP, datum_t, data_t, _Predict_t >, MyHypothesis, MyHypothesis, VectorNormalHypothesis, VectorHalfNormalHypothesis, MyHypothesis, TNormalVariable<+[](float x) ->, MyGrammarHypothesis, and MyHypothesis.
|
inlinevirtual |
Compute the posterior, by calling prior and likelihood. This includes only a little bit of fanciness, which is that if our prior is -inf, then we don't both computing the likelihood.
To understand breakout, look at MCMCChain.h and see how compute_posterior is called – the first term in breakout is (u + current.at_temperature(temperature) + fb), and the second is the temperature We have to pass in two pieces because the temperature only applies ot the likelihood. Note that when we use breakout in compute_likelihood, it is only for the likelihood temp.
NOTE: The order here is fixed to compute the prior first. This permits us to penalize the "prior" with something in the likelihood – for instance if we want to use a runtime prior that is computed as we run the likelihood
data | |
breakout |
|
pure virtual |
Implemented in BaseGrammarHypothesis< this_t, _HYP, datum_t, data_t, _Predict_t >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, HumanDatum< MyHypothesis >, std::vector< HumanDatum< MyHypothesis > >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< DiscreteDistribution< S > > >, Lexicon< this_t, _key_t, INNER, _input_t, _output_t, datum_t, _VirtualMachineState_t >, Lexicon< MyHypothesis, std::string, InnerHypothesis, BindingTree *, std::string >, Lexicon< MyHypothesis, S, InnerHypothesis, CL, CL, CLDatum >, Lexicon< MyHypothesis, std::string, InnerHypothesis, ignore_t, ignore_t, Utterance >, MyHypothesis, LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >, LOTHypothesis< MyHypothesis, S, S, MyGrammar, grammar, defaultdatum_t< S, S >, std::vector< defaultdatum_t< S, S > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, BindingTree *, bool, MyGrammar, grammar, defaultdatum_t< BindingTree *, bool >, std::vector< defaultdatum_t< BindingTree *, bool > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, utterance, word, MyGrammar, grammar, defaultdatum_t< utterance, word >, std::vector< defaultdatum_t< utterance, word > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, CL, CL, Combinators::SKGrammar, grammar, defaultdatum_t< CL, CL >, std::vector< defaultdatum_t< CL, CL > >, typename Combinators::SKGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, int, NumberSet, MyGrammar, grammar, std::multiset< int >, std::vector< std::multiset< int > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, Utterance, TruthValue, MyGrammar, grammar, defaultdatum_t< Utterance, TruthValue >, std::vector< defaultdatum_t< Utterance, TruthValue > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, set, word, MyGrammar, grammar, defaultdatum_t< set, word >, std::vector< defaultdatum_t< set, word > >, typename MyGrammar ::VirtualMachineState_t >, MyHypothesis, VectorNormalHypothesis, VectorHalfNormalHypothesis, InnerHypothesis, TNormalVariable< f >, TNormalVariable<+[](float x) ->, MyHypothesis, and InnerHypothesis.
|
inlinevirtual |
Compute the likelihood of a single data point.
datum |
Reimplemented in MyHypothesis, LOTHypothesis< MyHypothesis, S, S, MyGrammar, grammar, defaultdatum_t< S, S >, std::vector< defaultdatum_t< S, S > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, BindingTree *, bool, MyGrammar, grammar, defaultdatum_t< BindingTree *, bool >, std::vector< defaultdatum_t< BindingTree *, bool > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, utterance, word, MyGrammar, grammar, defaultdatum_t< utterance, word >, std::vector< defaultdatum_t< utterance, word > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, CL, CL, Combinators::SKGrammar, grammar, defaultdatum_t< CL, CL >, std::vector< defaultdatum_t< CL, CL > >, typename Combinators::SKGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, int, NumberSet, MyGrammar, grammar, std::multiset< int >, std::vector< std::multiset< int > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, Utterance, TruthValue, MyGrammar, grammar, defaultdatum_t< Utterance, TruthValue >, std::vector< defaultdatum_t< Utterance, TruthValue > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, set, word, MyGrammar, grammar, defaultdatum_t< set, word >, std::vector< defaultdatum_t< set, word > >, typename MyGrammar ::VirtualMachineState_t >, MyHypothesis, and MyHypothesis.
|
pure virtual |
Implemented in BaseGrammarHypothesis< this_t, _HYP, datum_t, data_t, _Predict_t >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, HumanDatum< MyHypothesis >, std::vector< HumanDatum< MyHypothesis > >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< DiscreteDistribution< S > > >, LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >, LOTHypothesis< MyHypothesis, S, S, MyGrammar, grammar, defaultdatum_t< S, S >, std::vector< defaultdatum_t< S, S > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, BindingTree *, bool, MyGrammar, grammar, defaultdatum_t< BindingTree *, bool >, std::vector< defaultdatum_t< BindingTree *, bool > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, utterance, word, MyGrammar, grammar, defaultdatum_t< utterance, word >, std::vector< defaultdatum_t< utterance, word > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, CL, CL, Combinators::SKGrammar, grammar, defaultdatum_t< CL, CL >, std::vector< defaultdatum_t< CL, CL > >, typename Combinators::SKGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, int, NumberSet, MyGrammar, grammar, std::multiset< int >, std::vector< std::multiset< int > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, Utterance, TruthValue, MyGrammar, grammar, defaultdatum_t< Utterance, TruthValue >, std::vector< defaultdatum_t< Utterance, TruthValue > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, set, word, MyGrammar, grammar, defaultdatum_t< set, word >, std::vector< defaultdatum_t< set, word > >, typename MyGrammar ::VirtualMachineState_t >, Lexicon< this_t, _key_t, INNER, _input_t, _output_t, datum_t, _VirtualMachineState_t >, VectorHalfNormalHypothesis, Lexicon< MyHypothesis, std::string, InnerHypothesis, BindingTree *, std::string >, Lexicon< MyHypothesis, S, InnerHypothesis, CL, CL, CLDatum >, Lexicon< MyHypothesis, std::string, InnerHypothesis, ignore_t, ignore_t, Utterance >, VectorNormalHypothesis, TNormalVariable< f >, and TNormalVariable<+[](float x) ->.
|
inlinevirtual |
Default printing of a hypothesis includes its posterior, prior, likelihood, and quoted string version
prefix |
Reimplemented in BaseGrammarHypothesis< this_t, _HYP, datum_t, data_t, _Predict_t >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, HumanDatum< MyHypothesis >, std::vector< HumanDatum< MyHypothesis > >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< DiscreteDistribution< S > > >, MyHypothesis, MyHypothesis, MyHypothesis, and MyHypothesis.
|
pure virtual |
Implemented in BaseGrammarHypothesis< this_t, _HYP, datum_t, data_t, _Predict_t >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, HumanDatum< MyHypothesis >, std::vector< HumanDatum< MyHypothesis > >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< typename MyHypothesis ::output_t > >, BaseGrammarHypothesis< MyGrammarHypothesis, MyHypothesis, MyHumanDatum, std::vector< MyHumanDatum >, Vector2D< DiscreteDistribution< S > > >, LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >, LOTHypothesis< MyHypothesis, S, S, MyGrammar, grammar, defaultdatum_t< S, S >, std::vector< defaultdatum_t< S, S > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, BindingTree *, bool, MyGrammar, grammar, defaultdatum_t< BindingTree *, bool >, std::vector< defaultdatum_t< BindingTree *, bool > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, utterance, word, MyGrammar, grammar, defaultdatum_t< utterance, word >, std::vector< defaultdatum_t< utterance, word > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, CL, CL, Combinators::SKGrammar, grammar, defaultdatum_t< CL, CL >, std::vector< defaultdatum_t< CL, CL > >, typename Combinators::SKGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, int, NumberSet, MyGrammar, grammar, std::multiset< int >, std::vector< std::multiset< int > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< InnerHypothesis, Utterance, TruthValue, MyGrammar, grammar, defaultdatum_t< Utterance, TruthValue >, std::vector< defaultdatum_t< Utterance, TruthValue > >, typename MyGrammar ::VirtualMachineState_t >, LOTHypothesis< MyHypothesis, set, word, MyGrammar, grammar, defaultdatum_t< set, word >, std::vector< defaultdatum_t< set, word > >, typename MyGrammar ::VirtualMachineState_t >, MyHypothesis, VectorHalfNormalHypothesis, VectorNormalHypothesis, Lexicon< this_t, _key_t, INNER, _input_t, _output_t, datum_t, _VirtualMachineState_t >, Lexicon< MyHypothesis, std::string, InnerHypothesis, BindingTree *, std::string >, Lexicon< MyHypothesis, S, InnerHypothesis, CL, CL, CLDatum >, Lexicon< MyHypothesis, std::string, InnerHypothesis, ignore_t, ignore_t, Utterance >, TNormalVariable< f >, and TNormalVariable<+[](float x) ->.
uintmax_t Bayesable< _datum_t, _data_t >::born |
size_t Bayesable< _datum_t, _data_t >::born_chain_idx |
double Bayesable< _datum_t, _data_t >::likelihood |
double Bayesable< _datum_t, _data_t >::posterior |
double Bayesable< _datum_t, _data_t >::prior |