E-means: 10x faster k-means at equal loss
Posted by porridgeraisin 5 hours ago
Comments
Comment by jlhawn 2 hours ago
Edit: tried it, and it’s definitely not better for this use case. e-means wins by needing fewer passes over a huge dataset, but relaxing a mesh on a sphere has no dataset: each Voronoi cell’s centroid can be computed directly from its geometry. Mini-batches just swap that for a noisy sampled estimate of the same thing. It has the same objective and the same optimum, so at best it matches Lloyd. In practice it was much slower and left the grid noisy, and with small sample budgets it even tangled the mesh.
[1] https://webgcm.app/explain/grid#nudging-the-cells-into-shape
Comment by shiandow 1 hour ago
Edit: in fact you might end up going faster by moving the other way, set alpha = -0.1 and see what happens!
Comment by Luke2642 3 hours ago
Comment by hinkley 3 hours ago
When I was just starting out, client-server was still a bit of a specialty, mostly reserved for gaming and large institutions. Most of my education was in single task computing. If the university hadn’t offered a class in distributed computing I wouldn’t have gotten much in that direction except in independent study.
In the time since then, we seem to have focused much less on seconds per task and more on tasks per second, which results in more concern about statistical spreads, and queuing mechanisms to manage the variability between a hit and a miss. It would be better if this sort of computation were more organized into a discipline.
Comment by Luke2642 2 hours ago
Comment by benmandrew 2 hours ago
Comment by LPisGood 2 hours ago
Comment by ivanjermakov 21 minutes ago
Comment by real_faxenoff 3 hours ago
That's impressive!
Comment by detourdog 11 minutes ago
Comment by shiandow 1 hour ago
Though I suppose it may be as simple as expectation maximization with a friction term, since Sj = sj - a (sj - Sj).
Importantly they note that this update rule keeps the centroid within the convex hull, which is pretty important.
Comment by wood_spirit 4 hours ago
Hope it gets added to scipy - it’s much more available in the envs many use than facebooks own faiss library.
Comment by porridgeraisin 4 hours ago
Comment by bashhq_r 3 hours ago
Comment by coderenegade 2 hours ago