Saturday, November 10, 2012

WiFiLine 1.0.11 is out

I'm glad to inform you that a brand new version of WiFiLine - 1.0.11 - is ready and has been just uploaded to Google Play store. The only one and main feature of this version is a new location algorithm, based on neural networks.

If you don't know much about neural networks I must say that this is a universal problem solver, well adaptable for navigation tasks as well.

One important thing about neural networks is that they must be trained before they can help you to determine current location. This operation performed only once for every map, and after it's finished, the trained neural network is stored internally and used seamlessly for location as needed. In future I plan to provide trained neural networks for every new map, but currently they should be trained on a user device ad hoc.

In order to enable new location mode you should open the "Settings" dialog as usual, and then choose Neural Network from the Location Algorithm drop down list.

After this, if you press OK, the application will ask your confirmation for starting neural network learning. This process may take a while, depending from a number of WiFi-data available in current map.

During this process the application shows a progress dialog which updates information about current phase of learning and cycle of learning. Number of phases is only 2, but number of cycles in each phase can vary significantly. The maximum is 1000, but normally learning is supposed to be completed much earlier. It takes a few seconds.

After the neural network is trained, progress dialog is removed and a tooltip "Ready" is shown. You may now detect your location in the same way as you do with any other location method.

It must be noted that for neural network learning there must be a sufficient amount of WiFi-data in a map, so the following limitations are applied: the map must contain at least 30 points and 3 hotspots. If a map contains fewer data, neural network can't be used.

If you return back to the "Settings" dialog and choose a location algorithm other than neural network, the application will ask you to delete existing neural network. You should normally answer "No" to keep the network for future, so that next time you enable neural network it shouldn't be trained anew.

The only reason why you might want to delete neural network is to re-train it. This can be necessary in some rare cases, if you think neural network performance is not good enough. Every time you train a network, it will be a new instance, different to previous ones. They should behave equally in theory, but can occasionally degrade in practice. The reason for this is described below, in a paragraph for those who knows a little more about neural networks.

As you may know, neural networks have a lot of parameters for customization - number of inputs, number of layers and neurons, learning rate, data normalization algorithms, etc. All this complexity is hidden from ordinary users here, but it's done at the expense of adjusting the abovementioned parameters automatically, based on some heuristics. Unfortunately, this "automatics" applies some restrictions on in-general flexibility of neural networks. Thus there may happen specific WiFi-measurements which create difficulties for a given neural network.

Now WiFiLine provides 4 location algorithms, and some time later I'll probably compare them in details.

No comments:

Post a Comment