Unsupervised - starting point

Hello, i want to make unsupervised neural network (clustering problem) via dl4j. Where i can find some examples or what i should read first?
Thanks

For unsupervised clustering with neural networks you will usually train the network with reconstruction labels, or some other unsupervised task (e.g. fill in the blank for text models) and use a bottleneck layer in the middle of the network.

Once that network is trained, you use it to transform your input data into the corresponding vectors, and then apply the clustering algorithm of your choice on that.

Is there any example I can look into?

There are multiple ways you can approach that. One would be using a variational auto encoder, for which we have an example here:
https://github.com/eclipse/deeplearning4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/unsupervised/variational/VariationalAutoEncoderExample.java#L45

The anomaly detection example also features a bottleneck:
https://github.com/eclipse/deeplearning4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/unsupervised/sequenceanomalydetection/SequenceAnomalyDetection.java#L127-L133

And while outdated and therefore not copy&paste-able for running, this tutorial also covers clustering:
https://deeplearning4j.konduit.ai/getting-started/tutorials/advanced-autoencoder#clustering-the-output

1 Like