1

我刚开始学习一个星期前的ANN,没有经典的训练。只是通过观看视频和阅读博客/白皮书,我已经得到了很多。如何计算神经网络的输出?

我对ANN的最终输出有疑问。

举例说,我正在构建一个带有两个输入节点的XOR,一个隐藏层中有3个节点,输出层中有一个节点。 A 2 x 3 x 1.

首先我想确保我有正确的第一部分。

因此,每个节点都有一个与隐藏层中每个节点相关的权重,如果隐藏层中有5个节点,则输入节点会计算它的输入并将其乘以与每个节点相关的权重隐藏层。因此,要计算第一个节点的S形,您需要取所有输入并将其乘以权重(no +表示偏差),并将sigmoid函数应用于输入*权重之和。然后我们用一个sigmoid压缩这个值,得到0.5866175789173301。 (1 x .25)+(1 x .10)= .35。基本上,它会是(1 x .25)+(1 x .10)= .35。

现在,我只需要为每个节点 这样做三次,并获得3个压扁的数字。

// (input1 * HiddenNode(x)Weight) + (input2 * HiddenNode(x)Weight) 
    activationFunction((1 * .25) + (1 * .10)) // 0.5866175789173301 
    activationFunction((0 * .40) + (1 * .60)) // 0.6456563062257954 
    activationFunction((1 * .20) + (0 * .80)) // 0.549833997312478 

现在从我个人理解,我再总结&壁球这些问题的答案:

activationFunction(hidden1 + hidden2 + hidden3) // 0.8559569515861635 

我有它正确的那么远?

我的问题是,如果你有两种缩放数字喂养预测成绩,89 & 6.5 =(等级/睡眠时间)

你会如何计算从0.8559到一些喜欢93的输出并计算该值的错误?除了偏见之外,我是否还缺少什么?

如果我在变化的百分比在过去的3个股价变化进来了,我希望它猜测第四价格,我将如何像这样的答案转换:

activationFunction(hidden1 + hidden2 + hidden3) // 0.8559569515861635 

来回答比如.10(股票价格的变化百分比)还是其他真实世界的答案?

在此先感谢!

+0

输入必须是二进制的,因此10011011输出10111011.正如你所说,每个节点都被触发或不被触发。所以输入节点要么被触发,要么不是1/0。 –

+0

神经元网络的大事是他们可以被训练。所以我认为你应该转移到OOP,来处理许多节点... –

+0

我把神经网包装在一个类中,我将其中的100个实例化为人口,并用健身函数为每个基因组评分。我在什么时候提到一个节点是触发的还是不是。我认为使用乙状结肠的时候没有阈值,因为乙状结肠作为阈值。我已经进行了一些测试,一些基因组可以得分.99991234,并将权重调整为.000。它太酷了!我只想确保自己在做好准备之前正确地做事。我需要弄清楚如何将我的输入编码为二进制数据。 – clxxxii

回答

1

不像人们提到的那样。输入应该是而不是是二进制的。它们应该在一定范围之间(对于S形为0,1,对于TanH为-1,1)。

在第一部分中,如果你没有考虑到偏见,那么你完全正确。

// Completely right, each hidden node gets input from 2 input nodes 
activationFunction((1 * .25) + (1 * .10)) // 0.5866175789173301 
activationFunction((0 * .40) + (1 * .60)) // 0.6456563062257954 
activationFunction((1 * .20) + (0 * .80)) // 0.549833997312478 

// However, all the hidden nodes are connected the output node 
output = activationFunction((0.59 * weight1) + (0.64 * weight2) + (0.55 * weight3)) 

请务必记住,节点只能通过连接连接到其他节点,而连接总是有权重的。

我的问题是,如果你有两种缩放数字喂养预测成绩,89 & 6.5 =(等级/小时的睡眠)

首先你缩放输入(阅读更多here) :

89 > 0.89 
6.5 > 6.4/24 = 0.27 

所以,如果你得到了新的等级是100,和你的输出是0.8559那么你的输出节点上的错误是1.00 - 0.8559 = 0.1441。然后你通过网络反向传播,但我不是那个适合你的解释。