Active Learning in Experiment Loops
Letting a model choose its own next training example so it learns the most from the fewest expensive runs.
The idea
Ordinary supervised learning is handed a fixed dataset. Active learning turns that around: the model chooses which example to label next, picking the one it expects to learn the most from. When each label is an expensive simulation or experiment, choosing well means reaching a good model with far fewer runs.
How the model chooses
- Uncertainty sampling: label where the model is least confident
- Query by disagreement: label where an ensemble of models disagrees most
- Expected model change: label where a new point would shift the model most
- Diversity: avoid clustering all queries in one region
Relationship to Bayesian experimental design
Active learning and Bayesian experimental design are close cousins. Both choose the next observation to maximize information; active learning usually frames it as improving a predictive model, while Bayesian experimental design frames it as reducing parameter uncertainty. In practice the loops look similar and often share machinery.
def next_query(model, pool):
# uncertainty sampling: pick the pool point with highest predictive variance
scored = [(x, model.predict(x)[1]) for x in pool] # (_, variance)
return max(scored, key=lambda s: s[1])[0]
The pitfalls
Active learning can get stuck: a confident but wrong model may stop querying the region where it is wrong, because it is not uncertain there. Ensembles, occasional random exploration, and periodic validation guard against this. The loop must be allowed to be surprised.
Kronos use
In materials screening and simulation campaigns, active learning orders the run queue so that the studies which most reduce uncertainty happen first. It is a core part of closed-loop autonomous experimentation and a practical way to make scarce high-fidelity runs count.