This project is solving the Neuromorphic Studies of Asteroid Imagery challenge. Description
Currently there are many asteroids for which light curves exist but which classifications do not, ideally spectroscopic investigations would be performed on each of these bodies in turn to define their spectroscopic class. This project aims to link the photometric properties of asteroids as they rotate to the material they are made of and consequently their spectroscopic properties. To see if this is possible we derived a number of metrics from the light curves and gave them to a neural net and trained it to determine what asteroid class the light curve metrics belonged to.
The data we used for this project was taken from minorplanetcenter.net and was composed of professional and volunteer astronomers who have made photometric observations of minor planets http://www.minorplanetcenter.net/light_curve2/docs/ALCDEF_ALL.zip .
This was combined with data about the derived properties of these asteroids such as the rotation period and class, this was used to train the neural net by giving it correct answers to test itself against. Data download here - http://minorplanetcenter.net/mp_properties.json.gz
Whilst there are many observations of minor planets on the minorplanet.net database a lot of these were observation periods of only an hour or less which for objects with rotation periods of usually between 2 and 10 hours is insufficient to give a complete light curve. To deal with this data was filtered taking only the longest observations for each individual object (observations were bundled together for each object in the database). Whilst this throws out a lot of potentially valuable data, time constraints forced it as a quick solution.
Metric Creation and Data Analysis
The simple Neural net we used for this project could not handle as a direct input light curve data so information about the data had to be reduced to single numbers or metrics. The simplest metric we created was simply the difference in brightness between the maximum and minimum magnitude measurement, in this spirit a variety of metrics were created many simple like maximum brightness but others requiring more mathematics such as the peaks in the Fourier transform of the light curve.
To acquire the Fourier space light curve several steps had to be taken, the data was discrete and non equispaced in time meaning that first synthetic data had to be created which linearly interpolated between the original data points and re-sampled that linear interpolation at equal time spacing's to created equispaced data which discrete Fourier transform algorithms could tackle. We used FFTW (http://fftw.org/), a freely available C library to perform the discrete Fourier transforms.
Neural Net Usage and Topology
The tool that was used to classify the asteroid light curves was a Back Propagating Neural Net. The neural net contained one hidden layer made up of a 256 Neurons. Twenty-two metrics were extracted from the data this meant that the neural net required 22 input neurons. There were 3 classes of asteroid each class relating to an output neuron thus giving the neural net a topology of 22-256-3.
The use of the neural net can be split up into 3 categories training, testing, and classifying. The testing phase involves repeatedly showing the neural net asteroid light curve data along with the class that the light curve belongs to. Once the light curve data is passed in to the neural net it is processed and the output layers guess what class the asteroid should belong to. The guess is then compared to the actual class and the neural net alters the relationship between its neurons so that the next guess will be more accurate.
The testing phase also uses data that has already been classified. Classified data is used to check how often the neural net classifies correctly. We found that our neural net correctly classified the asteroids 70% of the time.
Once the testing has shown suitably reliable classification the neural net is then ready to be used to give a rough idea of what class an asteroid belongs to, based on its light curve.
From the beginning of this project we wanted to create a hosted version of the neural net online and a web interface which would allow users to upload a set of their own observations and get their target asteroid classified immediately. The planned format for the website is for users to upload a two column .txt file with in the format : Julian_date | magnitude
Due to several of our core developers sitting finals over the next few weeks project development can not continue at present, however when it commences we plan to further train the neural net on carefully selected data so that imbalances in the asteroid population it trains on does not distort it towards repeatedly giving the same output no matter the input. This is a problem we encountered after some training sessions.
Additionally we aim to experiment with different neural net topologies to see if better accuracy can be attained.
License: MIT license (MIT)
Source Code/Project URL: https://github.com/tristanheaven/asteroids
Project Hack pad - https://hackpad.com/Neural-asteroid-classification-3WGJ2rOlH8J
Lecture on Neural net theory - https://www.youtube.com/watch?v=q0pm3BrIUFo&app=desktop
Discrete Fourier transform - http://www.fftw.org/
Asteroid derived properties - http://minorplanetcenter.net/mp_properties.json.gz
Asteroid light curves - http://www.minorplanetcenter.net/light_curve2/docs/ALCDEF_ALL.zip
Web Code - https://github.com/m0jtaba/AsteroidsWebsite