I spent the last night brainstorming with a friend, to come up with the best approach for my project on Machine Learning.
Our Objective : We have decided to apply machine learning techniques to an opportunistic network routing protocol, so that the nodes in the network (which is void of any previously defined architecture), learns the best next hop to foward the message to, based on the previously selected neighbour nodes.
The project idea seems really innovative and we didn’t find any significant learning algortithms previously applied in the field of networking to train a network. So we were really excited about this venture of ours.
But we have run into a few roadbloacks!
First of all, its getting extremely difficult to find out time for everything with the fear of placements looming over our heads, so it’s been almost 3 weeks after mid-sems that we were able to start work on the ML project.
Initially, we had thought of applying a Supervided Learning algorithm for this problem, but then we quickly realised that it is almost impossible to get, or even generate the kind of data which we would need t go ahead with a supervised learning approach.
Then I came forward and suggested using an unsupervised learning approach to be applied to this project, in the form of K-means clustering method. I suggested that we map out or data points (each data point will correspond to the feature values of a neighnour) and run K-means algorithm over it to find clusters in that data, and then we would employ a method to generate a classification out of that clustering. After finding the right class of nodes, we will transfer the message to all of them and hope for a better delivery probability.
But it was getting difficult to get a lot of intuition in favour of this method. I really give intuition a priority at times in work.
Using this method would prove to be computationally really expensive (or so it seems right now!), and most importantly is itsn’t a proper kind of learning that we would actually like to apply. We will have to run K-means for every message instance and that message instant will not really learn from the previously selected nodes for transfer, but K-means will try to find clusters for that message instance afresh.
Also, we are worried that it may not increase delivery probability significantly, and it would be akin to edMultiRouter where we took a mean threshold value to select the best nodes for message forwarding.
I think we’ll have to explore more of unsupervised learning techniques that could be appied to this problem. Finding or building the right kind of dataset, seems nearly impossible.
I’ll try to smoothen out the difficulties we are facing with K-means and try and get somewhere with this. I am really in need of good advice.
We have some more thinking to do on this issue and right now we are really nowhere. I’ll try and brainstorm a few more ideas tomorrow and hopefully come up with something that we can build this protocol upon.