2016-11-04 121 views
2

我通读本页面:http://neuralnetworksanddeeplearning.com/chap1.html以更好地了解神经网络的工作原理。我想创建一个简单的Java前馈网络,它没有反向传播或培训。了解神经网络图层,节点和点积

我在模糊的是网络中每层“神经元”所涉及的数学。假设我有三层。第一层采用大小为100的输入矢量。这是否意味着我的第一层将有100个神经元?这是否也意味着每个神经元的输入将是所有100个输入乘以权重的总和?这是总结我的神经元激活功能的输入?

在该章节中提到,神经元/感知器的所有输入之和可以重新表示为输入(x)和权重(w)的点积。我可以将它们视为两个独立的向量,它们的点积给出了x1w1 x2w2 x3w3 ..等,但是x1w1 + x2w2 + ..的总和仍然等于点积?

最后,如果一层应该有一个100的输入和1000的输出,这是否意味着该层实际上有1000个神经元,每个神经元需要100个输入?那么这个图层为每个神经元输出1个值,从而给出1000个输出?

如果这些问题完全无关紧要,我会提前致歉,我已经在线阅读了一些文档,这是我迄今为止的理解,但很难验证没有问问真正理解它的人。如果您有其他资源或视频可以提供帮助,他们会非常感激。

+0

此外,良好的学习的地方是[deeplearning4j(HTTPS:/ /deearningarning4j.org/neuralnet-overview)了解神经网络的基础知识。 –

回答

1

这是我在stackoverflow的第一个答案,所以请放轻松。

如果我正确理解你的问题,你想知道人造神经元背后的数学是如何工作的。神经元由以下列表中显示的5个组件组成。 (下标i表示第i个输入或重量。)

  1. 一组输入xi。
  2. 一组权重wi。
  3. 阈值,u。
  4. 激活函数f。
  5. 单个神经元输出y。

人造神经元有一个相当简单的结构。

使用单元步骤激活功能,就可以判断一组权重(和阈值),将产生以下分类: Click to view classification

综观数4.一种激活函数f。许多不同的功能可以在身份功能最简单的情况下发生。

的神经元输出Y,是施加激活函数到的输入,少了加权和的结果。

根据所使用的激活函数,此值可以是离散或实数。

Here's的Y的输出,其保持特定功能F.

一旦输出已计算出,它可以被传递到另一个神经元(或组神经元)或由外部环境取样。神经元输出的解释考虑

@Seephore

原则上取决于问题,对可以在人工神经网络中使用的隐藏层的数量没有限制。这样的网络可以使用来自深度学习文献的“堆叠”或其他技术来训练。是的,你可以有1000层,但我不知道你是否会得到很多好处:在深度学习中,我更常见的是1-20层隐藏层,而不是1000层隐藏层。在实践中,层数是基于实际问题的,例如,在合理的训练时间和没有过度拟合的情况下会导致良好的准确性。

你在问什么: 我会假设你的意思是说100个输入和1000个输出? 当输入接受加权值时,其输出会将其输出给下一层中的所有其他节点(神经元),但该值仍来自给定节点。

有许多“愿望洗”书出他们对于Java,但如果你真的想进入它读This

+0

谢谢,这很有帮助。还有一个问题需要澄清:当一个图层被定义为具有100个输入和1000个输入时,这是否意味着每个神经元将100个输入作为加权和输出1个值,并且该图层具有1000个这些神经元? – Seephor

+0

是的,我的意思是1000的输出。您可以在此回复评论,而不是发布新答案。 – Seephor

+0

明白了,就像我刚才说的那样,我是新手 –