Hi @olibclarke!
Class similarity in 3D Classification works in much the same way as it does in ab initio reconstruction.
Briefly, class similarity is a way of accounting for the fact that early on in a classification of any kind, our models are not very good. So if differences between two true classes are small compared to the overall object, the two classes run the risk of being combined during the early, low-quality iterations.
Class similarity is a fudge factor that forces particles to spread the probability mass among the classes.
- A class similarity of
1.0
forces all particles into all classes equally, regardless of the probability for each class calculated during the expectation step. - A class similarity of
0.0
uses the probabilities calculated during the expectation step (and hard classification) directly — in other words, it does not force particles into classes to which they don’t seem to belong.
This is what explains the ESS spread you’re observing with similarity of 0.0
but force hard classification off: 0.0
just means “Use the calculated class probabilities”.
As for your feature request, perhaps you could talk me through where you see it being useful? To my mind, having hard class off during similarity annealing and turning it on once similarity is annealed is more-or-less similar to (but certainly not exactly the same as!) having a lower starting class similarity (essentially, more weight to “proper” classes during annealing ~ less forced weight to “improper” classes) but I could certainly be missing something!