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

How to encode large vector as input to SP and HTM #782

Closed
aamir-gmail opened this issue Mar 14, 2020 · 9 comments
Closed

How to encode large vector as input to SP and HTM #782

aamir-gmail opened this issue Mar 14, 2020 · 9 comments
Labels
newbie question Further information is requested

Comments

@aamir-gmail
Copy link

I have a large feature vector (128, 300, 600 and 1200 D), is there a way to encode them using RSDE
for input to SP.

@breznak breznak added newbie question Further information is requested labels Mar 17, 2020
@breznak
Copy link
Member

breznak commented Mar 17, 2020

(128, 300, 600 and 1200 D)

do you mean n-dimensional vector, or 1D with that many elements?
If 1D, and each element means a feature. Make a SDR for each element (and it's RDSE encoder). Then concatenate() the SDRs into one, feed it to SP.

@aamir-gmail
Copy link
Author

aamir-gmail commented Mar 17, 2020

I have 128 elements (1D with many elements) vector as in [x1,x2,x3,............], currently, I am using TSNE dimensional reduction to 3 1D elements. as with many dimensional reductions techniques I am sure some of the original properties are lost in this reduction. I want to get your opinion on the best way forward.

@breznak
Copy link
Member

breznak commented Apr 10, 2020

I want to get your opinion on the best way forward.

You'll need to test this for your specific task. In general. HTM's SpatialPooler should perform well in that matter.
Please let us know your results, it'll be interesting.

@breznak breznak closed this as completed Apr 10, 2020
@aamir-gmail
Copy link
Author

aamir-gmail commented Apr 14, 2020 via email

@breznak
Copy link
Member

breznak commented Apr 14, 2020

thanks for the heads up, Aamir!

I have used TSNE to reduce the dimensions of 128 D vector to 3

do you have a compirasion of tSNE (or other dimensionality reduction methods, PCA) to HTM's spatial-pooler?

Btw, for images, you could try a biological RetinaEncoder (as a working PR in this repo)

@aamir-gmail
Copy link
Author

aamir-gmail commented Apr 14, 2020 via email

@aamir-gmail
Copy link
Author

aamir-gmail commented Apr 14, 2020 via email

@breznak
Copy link
Member

breznak commented Apr 14, 2020

I was looking for an eye encoder I could not find in the master branch. If
you have a link with some examples on how to use it please let me know.

the retina encoder is here, in an almost working state.
#691

Along with TSNE, the 4th dimension is the norm ( magnitude ) of the 128 dim
original vectors. That is the one which makes all the difference

thanks for these findings! If you're interested, we could include this as an image encoder in here.

Yes, I tried PCA as well as UMAP, however, TSNE worded best,

actually, I was asking if you've compared tSNE (+SP) vs raw data (+SP --meaning the SP does all the reduction, and how well it performs?)

@aamir-gmail
Copy link
Author

aamir-gmail commented Apr 15, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
newbie question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants