Unsupervised Learning to cluster acoustic signals/spectrograms

17 次查看(过去 30 天)
Hello,
I'm not new to Matlab but completely new to Machine Learning, and while I understand the theory behind ML, I have never applied it and feel quite overwhelmed.
I have a large number of audio clips, each with a signal of the same general type/source. I want to use Unsupervised Learning to cluster those signals/their spectrograms based on (visual) differences among them. We do not want to have to train a model ourselves, first.
I have a hard time conceptualizing my approach and the corresponding code. Can anyone point me in the direction of a tutorial or example(s) for this specific use case or similar ones (possibly images instead of spectrograms?)?
Thank you!

回答(1 个)

Varun Sai Alaparthi
Hello Anke,
I understand you are looking for MATLAB examples for clustering-based approaches for image data. There are various algorithms for unsupervised clustering like k-means which you can use directly for this task by inputting the double values of the images.
But the most common and efficient approach for images/spectrograms is to take features from a trained model and apply k-means on top of those for clustering.
You could try using an Autoencoder which can be used to get a representation of given input data which can be an image, text, or videos.
To train an autoencoder you can use trainAutoencoder.
The Autoencoder will generate meaningful features of the images, and these features can be extracted from the last layer of encoder. The last layer of encoder is a lower dimensional representation of the image which can be used in k-means for clustering the features in K groups. This way the images will be clustered into several groups.
You could also refer to this example which uses resnet18’ and k-means for clustering.
If you have any further queries, please feel free to reply to my answer
Sincerely,
Varun
  1 个评论
Anke Kügler
Anke Kügler 2023-1-19
Hello Varun,
thank you for the reply, I appreciate it as I'm trying to navigate this overwhelming field of machien learning. I have two more questions:
1) What is the difference between using an Autoencoder and a stacked Autoencoder? The help page says a stacked Autoencoder is better for images, but I'm not sure how I would determine which one to use, nor how to choose the various settings that are being used in their example.
2) I forgot to make clear in my initial post that we don't know the number of expected clusters. From my understanding in that case I should be using hierarchical clustering instead of kmeans? Or is it possible to use kmeans without setting a defined number of clusters and let a model choose the appropriate k based on some measure of similarity?
Thank you!

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by