Monty.Frameworks.Models.EvidenceMatching.FeatureEvidence.Scorer.DefaultFeatureEvidenceScorer (ExTbpMonty.Core v0.1.0)

Copy Markdown View Source

Feature evidence per node for one channel of one graph.

Mirrors tbp/monty/frameworks/models/evidence_matching/feature_evidence/scorer.py::DefaultFeatureEvidenceScorer.

Three pieces meet here, all of them injected:

  • the selector decides once, at construction, whether each channel is matched on its features at all — a channel weighted only on poses still contributes pose evidence, but no feature evidence;
  • the calculator turns the stored feature rows into a score per node;
  • the memory supplies those rows and the observation's query features are compared against them.

A channel that is not matched on features answers zeros rather than being absent: every node of that graph is still a hypothesis, it just learns nothing from this observation.

Summary

Functions

Whether this channel takes part in feature matching at all.

A scorer over memory.

Types

t()

@type t() ::
  %Monty.Frameworks.Models.EvidenceMatching.FeatureEvidence.Scorer.DefaultFeatureEvidenceScorer{
    calculator: term(),
    feature_weights: term(),
    graph_memory: term(),
    increment: term(),
    tolerances: term(),
    use_features_by_channel: term()
  }

Functions

matched_on_features?(default_feature_evidence_scorer, input_channel)

@spec matched_on_features?(t(), String.t()) :: boolean()

Whether this channel takes part in feature matching at all.

new(memory, options)

A scorer over memory.

:calculator and :selector name the modules doing the work, :increment scales feature evidence before it is added to a hypothesis' total — it is the knob an experiment turns to make feature evidence matter more than pose evidence.