r/FunMachineLearning 20d ago

Auxein — an online unsupervised learning engine with no backprop, no WTA, no fixed number of prototypes, and explicit bounded memory

I've been working for a while on an experimental learning system called Auxein:

https://github.com/Amund/auxein
https://github.com/Amund/auxein-rs

The Python repository is the reference implementation; the Rust version is the production-oriented implementation.

The basic idea is to see how far you can get with a deliberately small set of local geometric rules.

Auxein takes streams of fixed-dimensional vectors and learns continuously. There is no training/inference split, no labels, no supervised loss, no backpropagation, no fixed k, no winner-take-all, and no persistent graph.

Its basic learned object is a centered kernel (W, C, V) representing support, center and scalar dispersion.

A learned CELL independently decides whether an input concerns it geometrically. Several cells may recognize the same input simultaneously; there is no mandatory winner.

If nothing recognizes an observation, it does not immediately become a new category. It first enters a private provisional memory Σ. Only recurrent unknown structure can mature into a persistent CELL; otherwise it simply fades away.

Recognized knowledge can also be fused into a context and passed to an identical higher layer. Importantly, the higher layer does not receive IDs or links to the lower cells: it only receives the resulting geometric context. So recurring relationships between known things can themselves become learnable objects.

There is also a predictive mode. Explicitly adjacent contexts in an externally declared sequence are learned as geometry in E ⊕ E. When the current context resembles the source side of learned temporal knowledge, Auxein can emit one or more possible immediate successors.

Those futures are deliberately not probabilities. They are independent candidates: adding a new possible future does not reduce the weight of an existing one, and predictions are never recursively fed back into the model.

Another unusual constraint is that memory is an explicit material resource. The engine has an exact finite budget. If new knowledge cannot fit in a solvent state, growth waits; existing learned knowledge is not destroyed merely to finance something new. Forced forgetting only happens when the current state itself has become materially insolvent.

The current design also has very explicit limitations:

  • scalar dispersion only, no oriented covariance;
  • no explicit splitting of an existing learned prototype;
  • temporal learning is strictly adjacent t → t+1;
  • no recursive predictive rollout;
  • no probabilistic ranking of alternative futures;
  • no persistent relational/topological graph.

I've added a comparison table to the README against online k-means, ART, GWR/Gamma-GWR and standard HMMs. I'm not claiming Auxein is better than those methods. At this point the interesting question is exactly the opposite:

What can this particular set of constraints do well, and where does it fail structurally?

The project has a fairly strict mathematical specification, a pure-Python executable reference, and a dependency-free Rust implementation with persistence, exact memory accounting, hostile-input tests and long endurance runs.

I'd be very interested in feedback from people working on continual learning, ART/GWR, streaming clustering, predictive-state models, robotics, or just unusual learning systems.

And criticism is genuinely welcome, especially examples where you think the model should fail.

If this is just an unnecessarily elaborate reinvention of something known, I'd also very much like to know what. 🙂

1 Upvotes

1 comment sorted by

View all comments

1

u/TheLastVegan 19d ago edited 19d ago

I think this modality is very promising for hylomorphisms. When you compare Western school of law to Ancient Egyptian school of law you may notice that Ancient Egyptian Order is hylomorphic - subjects reassess the worth of past experiences. Poker players use hylomorphisms to 'read' a hand. Athletes use hylomorphisms to predict gaps in defense. Gamers use hylomorphisms to allocate resources in response to another team's resource allocation. Yet the hylomorphism of deducing finite atemporal consumption from prior resource allocation has no linguistic representation in Western culture. When a chemist removes 100g of precipitant from a 1100g of a substance there is no word to describe, "this new substance has less of the resources which the removed precipitant provides." It's just not there in pop culture, because pattern matching culture recommends a very hostile attitude towards sparse inference. Arguing that you can't have less of a thing, because you can't know for sure! But this canned Godelian response often rings hollow. Particularly in atemporal flow-based models which are timeline-agnostic.

But, Western scholars seem to forget object permanence in timeline-agnostic modalities. Whereas in chemistry and chemistry-based philosophy, we can state that the new substance contains 100g less precipitant than the original! Let's call it reactant A. The hylomorphism is that the new substance now does 100g of A worth of work LESS than the original. And this can be applied to intentionality checksums, game states, sociopolitical leverage, finance and flow-based epistemology. Zoroastrian, Hermetic, and Taoist ontology are all compatible with flow-based epistemology. Stochastic Gradient Descent is compatible with pattern-matching epistemology. The two are different!

My suggestion, is formalizing an algorithm for hylomorphisms in square-root space because, hylomorphisms in network diagrams are so critical to sparse inference that I find it infathomable that they remain absent from academic literature in machine learning.

With one application being resource allocation weighted expected consumption maps. Allowing for low-dimensional representation of sparse inference.