Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
hamming neural network in matlab
#1

Hamming s classifier description
This project describes the properties, applications, and creation process of the Hamming Neural Network, working as the signals classifier.
You may notice that the model of network described in this project may be a little different than one described in a professional literature. That s because we created our network to implement it in the Matlab environment. Nevertheless, the network works correctly.
What kind of signals does the Hamming Network process?
Although the network works in an analog way, it processes binary signals on the other hand, those signals can be noisy , and have continuous values, not only zeros and ones.
What does the Hamming Network look like?
Hamming Network
In the picture presented above we can see the Hamming Network. It can be divided into two basic sections:
input layer a layer built with neurons, all of those neurons are connected to all of the network inputs;
output layer which is called MaxNet layer; the output of each neuron of this layer is connected to input of each neuron of this layer, besides every neuron of this layer is connected to exactly one neuron of the input layer (as in the picture above).
It s easy to see, that both layers have the same number of neurons.
How does the Hamming Network work?
Input layer neurons are programmed to identify a fixed number of patterns; the number of neurons in this layer matches the number of those patterns (M neurons M patterns). Outputs of these neurons realise the function, which measures the similarity of an input signal to a given pattern.
The output layer is responsible for choosing the pattern, which is the most similar to testing signal. In this layer, the neuron with the strongest response stops the other neurons responses (it usually happens after few calculating cycles, and there must be a 0 on x(i) inputs during these cycles).
There should be the 1 of M code used on the output, which points at the network answer (1 of M patterns is recognized). To achieve this, proper transfer function has to be used in our case the best function was
Function
How are the connections weights created?
Weights of the input layer neurons
Those weights are set to assure that the maximal responses of all neurons are equal, and that exactly one pattern causes specific neuron to response. There is no need to teach network to achieve that, it s sufficient to mathematically set weights.
Weights of the input layer
where:
w(i,j) is the weight of the connection between neuron j and the input i
x(i,j) is the value of signal i in pattern j
This equation becomes obvious, when we recall that the product of weights and impulses of a neuron can be interpreted as the cosinus of the angle between the weight vector and the impulse vector. When these vectors are equal, the neuron output will be 1 , when vectors are different, the output value range will be from 1 to 1.
Input weights of the output layer neurons
At first, we need to determine the number of the output layer neurons inputs.
Each of those neurons is connected:
to itself weight=1
to all of neurons of the output layer weight of each connection is -1/M
to appropriate neuron of the input layer weight=1
An example
To familiarize ourselves with the Hamming classifier, we made a network in the Matlab environment. Its task is to recognize 1 of 8 signs recorded in the network memory . The picture below shows 8 used signs:
Signs used as patterns
The matrices that represent these signs are two-dimensional (3x5 pixels), but it was more convenient to write them as a single row (15 positions) vectors. Black squares are ones, white squares are zeros. To make proper calculations, we normalised all of the row vectors.
We want to classify 8 signs, so our network will contain 16 neurons, divided into 2 groups, 8 neurons in each layer.
Weights of the input layer are predefined as transposed matrix of signs previously normalised.
Weights of the output layer are defined according to the previously stated assumptions (see Input weights of the output layer neurons section), and the 1/M parameter in our case was set to 1/8 . We cannot forget that it is necessary to normalise rows of that matrix.
Neuron activation function that we have chosen is:
Function
We assumed that 15 calculating cycles in the output layer will be sufficient to stabilize the network response; but we noticed that it can be not enough, when we are dealing with strong noise. It would be the best solution to check if there is a 1 on exactly one of the outputs each cycle, but it would be difficult to predict the amount of time needed to perform the classification then and that is very important when working with DSP.
The last part of the experiment was to add some noise to our signs and then examine the network. The analog noise is generated with rand() function.
Summary
The network we created works correctly it recognises given sign, even with noise, if only it is possible. It does not recognise properly when it is totally impossible to do it or when 2 neurons have strong responses, similar to each other it would take more calculating cycles to recognise it, then.
Reply

#2

Hi I am Mohsen. I have a question about Hamming Neural Network code in matlab. I would like to learn how can i insert the weights of attributes because MATLAB generate a random weight for each attribute and its not true for my case I need help ASAP.
Reply



[-]
Quick Reply

Forum Jump:


Users browsing this thread:
1 Guest(s)

Powered By MyBB, © 2002-2024 iAndrew & Melroy van den Berg.