如何确定人工神经元的射击值?

时间:2009-12-09 23:29:51

标签: artificial-intelligence neural-network

我正在尝试确定下面显示的人工神经元值(0或1) 对于它将要触发的输入i1,i2和i3(i0是输入的输入) 偏重,总是-1)。

权重是

W0 = 1.5

W1 = -1

W2 = 1,W3 = 2。

假设激活功能如下图所示。

请澄清你的答案,因为我做了一些例子,但我仍然无法完全理解这个理论:(

非常感谢,

Mary J。

PS。图片如下:

image

4 个答案:

答案 0 :(得分:3)

似乎只是总结in * Wn并确定i1,2,3的哪些组合给出积极结果的问题。只有8种排列,所以只需手动操作即可。

答案 1 :(得分:3)

对于神经元输出,您基本上有以下等式,其中i1i2i3每个都可以具有值0或1:

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

首先,让我们看看最高正加权值。如果i3为0,则左侧可获得的最大值为-0.5,因此i3必须为1才能获得非零输出。等式变为:

i2 - i1 + 0.5 >= 0

现在看看负加权值。如果i1为0,则无论i2是什么,输出总是大于零。如果i1为1,则i2也必须为1,以便输出非零。

因此,您可以使用这些组合创建非零输出:

i1    i2    i3

0     0     1
0     1     1
1     1     1

答案 2 :(得分:3)

要以更一般的方式解决这个问题,首先要看一下变量是什么以及固定参数是什么。

基本上你会得到输入权重向量 w = [1.5, -1, 1, 2]传递函数 g(x) = (sign(x)+1)/2,你想在中找到输入向量,以便:g( w * in' ) = +1(作为行和列向量的乘积),因此:

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]

通常你会通过计算导数来解决这个等式,但由于输入 中的输入只能取值01,我们可以简单地枚举所有情况(那里)是2^n8个案例:

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  *

因此,我们得到上面表达式为正的 的值。

答案 3 :(得分:2)

我对AI有粗略的了解,但据我所知:

输入之和(Sigma i_n * W_n)必须大于点火阈值。第二张图片告诉你射击阈值,第一张图片告诉你输入及其重量。

你只需要弄清楚哪些总和(不要忘记偏见)会产生所需的阈值/强度