Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thoughts on synblast #108

Open
clbarnes opened this issue Nov 17, 2022 · 1 comment
Open

Thoughts on synblast #108

clbarnes opened this issue Nov 17, 2022 · 1 comment

Comments

@clbarnes
Copy link
Collaborator

Rather than having 2 trees for input and output synapses, or a binary axis on the lookup table for "same" and "different" types for the nearest match, we could go more like NBLAST and give each point an attribute describing its neighbourhood, as the exact point match isn't that informative in dense regions with approximate nearest neighbours. This will need some tweaking, but it would be something like:

  • For each point in the cloud, find its k nearest neighbours
  • Score the point on how output-y its neighbourhood is (e.g. if 0 is outgoing and 1 is incoming, then 0.1 would be a synapse in a region where most of the synapses are outgoing)
    • This should be weighted by distance, although you then need to figure out how to weight the 0 distance (I'd propose some proportion of the next shortest distance)

When querying point matches, you'd do 1 - abs(q_neighbourhood - t_neighbourhood); i.e. if they had identical neighbourhoods, you'd have 1 (just like distdots) and if one was entirely output and the other entirely input, you'd have 0.

I have an implementation for this, although I haven't hooked it in to the smat training structure to test it yet.

@schlegelp
Copy link
Collaborator

schlegelp commented Nov 17, 2022

Oh interesting. I have FlyWire matches for ~2800 hemibrain types which gives a decently sized test set.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants