Dual Encoder Setup
Since the last post, AOgmaNeo has had several important updates - most notably, it now uses a dual-encoder setup.
This means that each layer in the hierarchy contains two encoders, one that is updated by minimizing reconstruction error w.r.t. the input (this one is generative), and another that is updated to minimize prediction errors (this one is discriminative).
Individually these encoders both had problems - when one improved upon some task, the other would fail. So, I decided to just combine these two seemingly complementary encoders, into the new dual-encoder setup.
It is a bit slower than it was before, but it performs a lot better on the tasks I have tested. The API has had some functions renamed, but the general usage remains the same more or less.
The user manual is also nearing completion, so that should be released as well soon - it explains things a bit more gently than before. Hopefully this makes these posts more accessible to a general audience as well!