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

Manifold learning notebooks #278

Merged
merged 9 commits into from
Jun 16, 2024

Conversation

msluszniak
Copy link
Contributor

@msluszniak msluszniak commented Jun 7, 2024

I decided to replace NNDescent in Trimap with LargeVis. In the original implementation of Trimap, authors used Annoy, which is more similar to LargeVis and it's faster. In Google's implementation using Jax, they use NNDescent, which is slower and eventually makes the whole implementation slower than the not-optimised, original one.
original implementation: https://github.com/eamid/trimap
Google implementation: https://github.com/google-research/google-research/tree/master/trimap

@msluszniak
Copy link
Contributor Author

@krstopro do you know there is any way to add support in LargeVis or precisely in RPF for data that is in test cases here and currently fails?

@krstopro
Copy link
Member

krstopro commented Jun 7, 2024

@msluszniak Yeah, I should fix that. The main reason I didn't do it in the first place was because I wouldn't recommend using random projection forest for those cases, i.e. when the sample size is less than two times leaf size.

I would recommend making k-NN algorithm configurable for Trimap. Similarly as it was done in KNNClassifier and KNNRegressor.

@msluszniak
Copy link
Contributor Author

Yeah, that's a good idea

@josevalim
Copy link
Contributor

I would recommend making k-NN algorithm configurable for Trimap. Similarly as it was done in KNNClassifier and KNNRegressor.

Good idea indeed, I have created an issue for it here: #280.

#272 is also related here (it could be another example to show in the notebook).

Copy link
Member

@krstopro krstopro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, few comments on the writing from my side.

notebooks/manifold_learning.livemd Outdated Show resolved Hide resolved
notebooks/manifold_learning.livemd Outdated Show resolved Hide resolved
notebooks/manifold_learning.livemd Outdated Show resolved Hide resolved
notebooks/manifold_learning.livemd Outdated Show resolved Hide resolved
@msluszniak msluszniak requested a review from josevalim June 10, 2024 20:45
Copy link
Contributor

@josevalim josevalim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ship it once CI passes!

@msluszniak msluszniak merged commit accb6b7 into elixir-nx:main Jun 16, 2024
2 checks passed
@msluszniak msluszniak deleted the manifold_learning_notebooks branch June 16, 2024 18:20
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

Successfully merging this pull request may close these issues.

3 participants