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
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.
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.