Neural network

Neural networks, usually

has a finite number of discrete outputs, even when the input is continuous. The

number of outputs is equal to the number of nodes in the last layer. But for

correcting the error in localization, the output has to be continuous. Using

neural networks with regression helps us to obtain a continuous output from the

neural network. In neural networks with regression, the values in the final

layer is fed into another layer with a single node, after being multiplied by

the weights. The value of this node is treated as output, having continuous values.

This network can be

trained and the neuron values and connection weights can be manipulated during

the training phase. Once trained, these networks can be used to obtain required

results

Error correction using neural networks

Presence of noise,

Randomness of the environment, obstacles and other factors make sure that in an

indoor environment the localization results are erroneous most of the time.

Using neural networks, the error in the localization result can be reduced

drastically. In this paper, we build a simple feedforward neural network with regression.

We train the network by feeding it with inputs and desired outputs. These input

output data are results of RSSI based localization. Once trained, Results of

localization can be passed through this network to get highly accurate results.

A feedforward network

is initialized with required number of hidden layers, inputs and outputs. The

weights of links in the network are initialized to any random value. The outputs

of this network are connected to a single node for getting a continuous output.

For training the

neural networks, few wireless sensor nodes are uniformly spread in the

environment, placed at known locations. Localization results of these nodes are

computed. These computed values are given to the neural network as input and

the corresponding actual locations are given as desired outputs. An input to

the network propagates in the forward direction and produces an output. This

output is compared with the desired value and the error in the computed value

is recorded. With the desired output, the neural network is traced back manipulating

the weights of the intermediate connections so that the desired output is obtained

for that particular input. This process is continued for all the other values

in the training data set, completing one epoch. If the average error is greater

than a prefixed threshold, another epoch of training occurs, till the average

error is at desired levels. After training, the neural network is tested and

validated with two other sets of data. After training, testing and validation

the neural network is ready to be deployed.

The

results of localization are fed into this neural network. The output would be

the error corrected output. The amount of error correction depends on the

number of hidden layers and number of training nodes dedicated. More the number

of training nodes, better would be the performance of the neural network.

However, the training time would increase proportionately with the number of

training nodes. A trained neural network

would help in error control without any additional requirements until there is drastic

change in the environment. Under such circumstances the network has to be

trained again for correct functioning.