Space Science with Python - Autoencoders (concept)
Coders!

I keep up my weekly tutorial sessions (some asked, whether I could increase it to 2 videos or more per week... But I have too many things to do... let's see how it continues in the long run!).

Anyway, what did we do in the last couple of weeks? Using Python on Google Colab we:

- Downloaded asteroid spectra + their corresponding class (whether it is e.g. a stony or iron obejct)
- Parsed, cleaned and enriched the data
- Created an interactive spectrum visualization tool in Colab
- Conducted a Machine Learning experiment using scikit-learn and their SVM implementation
- Created a neural network with Keras and optimized its architecture with Keras-Tuner to classify our data

So are we done?

Theoretically yes. But I would like to conclude the asteroid part with an unsupervised ML algorithm: Autoencoders! Using this neural network architecture + some clustering algorithms I'd like to show how one can create an unsupervised classification method.

But what are Autoencoders exactly, and how do they work?

Well to split up theory and coding a little bit, I created a small "concept" video on Autoencoders, so that we can start coding next time (knowing what we want to do and what to expect).

I am not a CGI expert or big YouTuber. It's more "seminar-like" and I'd like to know your opinion on this, whether it's useful, or not.

Link: https://youtu.be/ET441nffKjU

So what will we do next with Python, Keras and the asteroid data?

- Next tutorial: creating an Autoencoder using Keras (we won't use Keras-Tuner, to keep things simple). We'll also check the "reconstruction" power of the Autoencoder that compresses the 49-dimensional spectra into 2 dimensions

- Afterwards: how does the latent space look like? We'll create an interactive Jupyter Viewer to visualise the latent space and color the spectrum class corresponding latent values to determine whether we have a "class separation" or not

- Last video of the entire project: Rebuild an Autoencoder with a larger latent space, and applying Gaussian Mixture Models (GMMs) to determine the number of possible classes using the Bayesian Information Criterion (BIC)

Well... Afterwards a new Space + Python project will start :)

Hope you guys like it. I am looking forward to suggestions and ideas!

See you next week!

Thomas