4.4. How to manage with the bigger amount of the inputs of the

advertisement
4.4. How to manage with the bigger amount of the inputs of the
neuron?
(Translated by Krzysztof Kajdański; krzysiek.kajdanski@wp.pl)
The examples above are nice and simple because they concern only one neuron with two
inputs. In real application of the neural networks you typically have to do with task where
many inputs are considered (because the solution of the problem you try to solve with the
neural network often depends on the huge amount of the input data) and there is a need to
apply many cooperating neurons to gain the level of compliance of the network appropriate
for the current problem.
That's the point in the neural networks where jokes ends and problems begin. You cannot
draw this (because nobody is able to imagine points in the input space having more than ten
dimensions!) and that's why everyone thinks that it must be very hard. However – it doesn't
have to be that way. I'll convince you in a minute. Just try out the program Example 01c (see
Fig. 4.14)
Fig. 4.14. The beginning of the conversation with the Example 01c program
The program asks to enter the number of the neuron's inputs. You can accept the default value
(5) and click Next. Then, as previously in the Example 01, you should input the weights,
which define the model of the signal, on which your neuron should react positively. Fill in the
column marked as w(i) (Fig. 4.15). Then you enter the values of the input signals in the x(i)
column and then program will calculate the output. Really simple, isn't it?
The
weights
The input signals
Fig. 4.15. The sequent part of the conversation with the Example 01c program
Don't worry that the program tells you something about some strength. You will get to know,
what you can use it for in a minute.
During experiments with this program you can easily notice, that even when we work in the
five dimensional space of weights and signals (that's a kind of space even Albert Einstein
didn't work with – he stopped on the four dimensional continuum) – we can easily foresee
what neuron will do. When while setting the coordinates of the input signals vector, you set
them to be similar to the corresponding weight vector coordinates – these values are
obligingly recollected by the program – you will get high value of the output signal. It is quite
obvious: similar values of weight vector and input vector means that these vector lay close to
each other and this – as you know from previous consideration – is a condition of getting the
high output signal. On the other hand, if the values of the coordinates of input signals vector
are set similarly to the values of the weight vector – but with the opposite sign - you will
make the input signal vector pointing another direction than the weight vector. Of course the
effect of this action would be the neuron generating strong negative output signal. Finally, if
you don't try to keep any accordance between the input signals and the weights – there is a
chance that your multi-dimensional neuron will remain haughtily indifferent towards the input
signals producing output signal with very small absolute value.
During experiments you will notice that high values of the output signals are returned in two
situations: when input signals correspond to the weights of the neuron (that's what we
expected) or just by entering huge input values, where weights are positive. The first way of
obtaining the high output is intelligent, sophisticated and elegant – well, whatever, since the
same (sometimes even better) effects we can get using the brute force and the method number
two. Therefore during entering the input signals you should try to make them of the same
strength (using the parameter given by the computer estimating the actual strength). Only then
you will be able to correctly interpret and compare your results. Similarly comparing the
behavior of two different neurons (with different weight values) for identical input signals –
they should tend to have the same value of memory trace strength – it is just the length of the
weight vector. In the network with the bigger amount of neurons the meaning of the strength
of the input signals radically decrease, when – stronger or weaker input signals – get to every
neuron and the difference of the signals from different neurons decide about the effect: these
better 'tuned' to the input signal and those worse 'tuned'. We will focus on that in a minute.
However when we consider only one neuron – dissimilar values of input signals can make
results harder to interpret – that's why we should agree on choosing the input values for
examined neuron in a way, when the sum of their squares is (estimating – high precision is
not needed here) between 5 and 35, for instance. Because program calculates the strength as a
square root from the sum of squares of the coordinates (that's the formula for the length of a
vector), let us agree that the strength of the signals should be between square root from 5 and
square root from 35, which is somewhere between 2 and 6.
Why should we choose these values? Because during my work with the program I found out,
that when entering small random integer values for five inputs of the neuron – you will get
(more or less accurately) values from this range. However if you prefer, you can choose any
other value and it is going to work, but remember to keep with it. The same limitation should
be applied to the values of weights (it will turn out to be useful, you'll see!). Thanks to it, it
will be easier to check, if the input signals 'match' the values.
Download