【问题标题】:why need Hidden Layer in Neural Network?为什么需要神经网络中的隐藏层?
【发布时间】:2015-05-28 22:09:30
【问题描述】:

我是机器学习中学习神经网络的新手。当我为 AND/OR/NOT 等布尔函数计算激活函数时,不需要Hidden Layer 但 XOR/XNOR 等布尔函数需要Hidden Layer 来计算激活函数。为什么? (我在谷歌搜索,但不能明确的知识)。隐藏层中是否有number of neuron取决于输入神经元的数量??

【问题讨论】:

  • 你使用什么样的激活函数?阶跃函数或者换句话说你的神经网络是感知器?那么原因是一层只给你超平面,将你的空间分成两半。现在看看 xor 看起来是怎样的几何图形:byclb.com/TR/Tutorials/neural_networks/ch8_1_dosyalar/… 你不能线性地将 '1' 与 '0' 分开,但你需要一种方法来与超平面相交(这可以通过一个额外的隐藏层来完成)。
  • Sigmoid 函数@uberwach
  • 您可以关注 [hidden-layer-in-a-neural-network-compute][1]。我觉得对你有帮助[1]:stats.stackexchange.com/questions/63152/…

标签: machine-learning artificial-intelligence neural-network


【解决方案1】:

实际上,如果我们有更多的隐藏层,那么我们将获得良好的预测值和数据集的最佳准确性。因此,隐藏层中的每个节点都会从数据集中获取一个或多个特征,并应用权重和激活函数,直到我们得到好的预测值。它使用反向传播来更新权重。

这里的反向传播意味着最小化成本函数,并在您找到作为最终神经网络的成本函数的一分钟后立即获得,这意味着您的权重已经调整并且您已经找到了该数据集的最佳权重您开始培训并准备好进入测试阶段或申请阶段。

【讨论】:

    【解决方案2】:

    更简单地说:如果您的输出是非线性 (XOR),例如,您需要一个隐藏层。但是,如果您确实添加了一个,则您几乎致力于非线性输出函数(Sigmoid),并且需要将反向传播合并到您的算法中。隐藏层权重主要由反向支持例程调整,这就是网络获得解决非线性问题的能力的地方。一个描述非线性的思想示例:您有一个音量控制旋钮,标记为 1 到 10。数字越大,声音越大。但是,如果我们有一个控件将音量从 1 增加到 5,然后开始将音量从 6 减小到 10,那将是非线性神经网络可以解决的非线性函数。

    【讨论】:

      【解决方案3】:

      如果简单地说隐藏层会增加输入的额外转换,这对于单层网络来说是不容易实现的(实现它的方法之一是在输入中添加某种非线性)。第二层增加了额外的转换,可以处理更复杂的任务。如果要谈论 AND/OR/NOT,它们被认为是线性可分的任务。 查看显示 AND 值的图片(三个点表示假)。可以用一条线将真值与假值分开,这可以在没有隐藏层的神经网络的帮助下完成。但是如果说异或/异或,你需要两条线,两条线可以由具有两层和非线性激活函数的神经网络构造。黄线表示可以通过神经网络完成的分离。

      【讨论】:

      • 隐藏层中的神经元数量是否取决于输入神经元的数量??
      • 一般建议隐藏层的数字为输入层的2/3。但这不是一成不变的,其他参数也可以工作
      猜你喜欢
      • 2015-08-31
      • 2019-12-13
      • 2017-01-17
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多