如何计算神经网络的输出?

时间:2017-06-06 18:10:25

标签: javascript machine-learning ecmascript-6 neural-network genetic-programming

一周前我刚开始学习人工神经网络而没有经典培训。只是通过观看视频和阅读博客/白皮书,我已经走到了这一步。

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

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

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

因此,每个节点都有一个与隐藏层中每个节点相关联的权重,如果隐藏层中有5个节点,则输入节点将计算其输入并将其乘以与隐藏中每个节点关联的权重层

因此,要计算第一个节点的sigmoid,您将获取所有输入并将其乘以权重(偏差为+)并将sigmoid函数应用于输入*权重之和。然后我们用sigmoid压缩该值,得到0.5866175789173301。

基本上,它会是,(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 =(等级/小时的睡眠)

如何计算从.8559到93之类的数字的输出并计算该值的误差?除了偏见之外,我错过了什么吗?

如果我输入最近3次股票价格变化的变化百分比,并且我想让它猜测第四个价格,我将如何转换这样的答案:

 activationFunction(hidden1 + hidden2 + hidden3) // 0.8559569515861635

回答类似.10(股票价格变化百分比)或任何其他现实世界的答案?

提前致谢!

1 个答案:

答案 0 :(得分:1)

与人们提到的不同。输入应该是二进制的。它们应该在一定范围之间(对于sigmoid为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。然后你通过网络反向传播,但我不适合为你解释。