With completion of Stratosphere.NET Neural Networks functionality I feel that it's now a good time to put entire library into some practical use. This post describes briefly my idea.
In a company I work for - Future Processing - one of teams created great mobile application for inner-company use. The app let's you report issues related to buildings and IT infrastructure, find closest conference rooms, book them etc.
Important feature of this app is that it can guess your location by analyzing available wifi networks. The location is not related anyway to GPS coordinates, it's just information about the room you're probably in.
It seems like good candidate for Neural Networks - having a signal strength of each reachable wifi access point, classify it as one of the predefined locations.
Neural Network input will be a vector with each element corresponding to one of the access points available in company offices. For currently reachable access points, corresponding values will contain measured signal strength. For access points that are not reachable - vector elements will be zero.
Neural Network will output classification probability for each location.
Obviously I need some training data. To gather it I'll build an Android application using Xamarin. The app will read available access points and ask user to select current location, and report the data to server.
When done gathering the data, I'll prepare, train and evaluate a Neural Network that will be responsible for classifying the location. If I succeed then I'll build mobile app that will be able to determine the location using trained Neural Network.