English 中文(简体)
How to determine for which value artificial neuron will fire?
原标题:

I m trying to determine for the articial neuron shown below the values (0 or 1) for the inputs i1, i2, and i3 for which it will fire (i0 is the input for the bias weight and will always be -1).

The weights are

W0 = 1.5

W1 = -1

W2 = 1, and W3 = 2.

Assume the activation function depicted in image below.

Please clarify your answer as I have done few examples and still I m not able to fully understand the theory :(

Many thanks,

Mary J.

PS. Image below:

image

最佳回答

You basically have the following equation for the neuron output, where i1, i2, and i3 can each have the value 0 or 1:

2*i3 + i2 - i1 - 1.5 >= 0

First, let s look at the highest positively-weighted value. If i3 is 0, the most you can get for the left side is -0.5, so i3 has to be 1 to get a non-zero output. The equation then becomes:

i2 - i1 + 0.5 >= 0

Now look at the negatively-weighted value. If i1 is 0, the output will always be greater than zero no matter what i2 is. If i1 is 1, i2 has to be 1 as well for there to be a non-zero output.

You therefore have these combinations which create a non-zero output:

i1    i2    i3

0     0     1
0     1     1
1     1     1
问题回答

It seems to be like it s just a matter of summing in * Wn and determining what combinations of i1,2,3 give a positive result. There are only 8 permutations, so just run through it by hand.

To solve this problem in a more general way, first look at what are the variables and what are the fixed parameters.

Basically you are given the input weights vector w= [1.5, -1, 1, 2] and the transfer function g(x) = (sign(x)+1)/2, and you want to find the input vector in so that: g(w*in ) = +1 (as product of a row and a column vector), therefore:

g( sum_over_i( w_i*in_i ) ) = 1                # product of vectors
g( w0*in0 + w1*in1 + w2*in2 + w3*in3 ) = 1     # roll out the sum
g( -1.5 - in1 + in2 + 2*in3 ) = 1              # replace the values of w and in
0.5*(sign(-1.5 - in1 + in2 + 2*in3)+1) = 1     # definition of g(x)
sign(-1.5 - in1 + in2 + 2*in3) = 1             # simplify
-1.5 - in1 + in2 + 2*in3 >= 0                  # by def: [sign(x)=1 iff x>=0]

Normally you would solve this equation by computing derivatives, but since the inputs in can only take the values 0 or 1, we can simply enumerate all cases (there are 2^n or 8 cases):

in1  in2  in3    -1.5-in1+in2+2*in3
-----------------------------------
 0    0    0           -1.5
 0    0    1            0.5  *
 0    1    0           -0.5
 0    1    1            1.5  *
 1    0    0           -2.5
 1    0    1           -0.5
 1    1    0           -1.5
 1    1    1            0.5  *

Hence we get get the values of in for which the above expression is positive.

I have cursory knowledge of AI, but as far as I know:

The sum of inputs ( Sigma i_n*W_n) has to be greater than the firing threshold. the second picture tells you the firing threshold, the first picture tells you the inputs and their weights.

You just have to figure out which sums (do not forget the bias) will result in desired threshold/intensity





相关问题
Backpropagation issues

I have a couple of questions about how to code the backpropagation algorithm of neural networks: The topology of my networks is an input layer, hidden layer and output layer. Both the hidden layer ...

How to determine for which value artificial neuron will fire?

I m trying to determine for the articial neuron shown below the values (0 or 1) for the inputs i1, i2, and i3 for which it will fire (i0 is the input for the bias weight and will always be -1). The ...

Prototyping neural networks

from your experience, which is the most effective approach to implement artificial neural networks prototypes? It is a lot of hype about R (free, but I didn t work with it) or Matlab (not free), ...

AIML pattern matching - howto?

I m having a problem trying to understand how does AIML pattern matching works. What s the difference between _ and *? And how I should use them to get the best match? I have this document only, ...

Continuous output in Neural Networks

How can I set Neural Networks so they accept and output a continuous range of values instead of a discrete ones? From what I recall from doing a Neural Network class a couple of years ago, the ...

Competitive Learning in Neural Networks

I am playing with some neural network simulations. I d like to get two neural networks sharing the input and output nodes (with other nodes being distinct and part of two different routes) to compete. ...

热门标签