【问题标题】:what do hidden layers mean in a neural network?隐藏层在神经网络中意味着什么?
【发布时间】:2019-12-13 14:24:23
【问题描述】:

在标准神经网络中,我试图直观地理解隐藏层的值在模型中的含义。

我了解计算步骤,但我仍然不知道如何考虑隐藏层以及如何解释(隐藏层的)结果

例如,给定用于训练和预测 0 到 9 之间的手写数字的标准 MNIST 数据集,模型将如下所示:

  1. 手写数字的图像将有 784 像素。

  2. 因为有784个像素,所以输入节点就有784个,每个节点的值就是像素强度(0-255)

  3. 每个节点都有分支,这些分支就是权重。

  4. 我的下一层是我的隐藏层,隐藏层中给定节点的值是我的输入节点的加权和(像素*权重)。

  5. 无论我得到什么值,我都会使用 sigmoid 函数将其压缩,得到一个介于 0 和 1 之间的值。

我从 sigmoid 得到的那个数字。它究竟代表了什么,为什么它是相关的?我的理解是,如果我想构建更多隐藏层,我将使用初始隐藏层的值,但在这一点上,我不知道第一个隐藏层的值究竟意味着什么。

谢谢!

【问题讨论】:

  • 据我所知,如果你使用简单的神经网络节点,它没有具体的名称。如果您使用卷积神经网络,则称为“激活图”。用简单的外行术语,我们可以将其称为特征,因为从 784 开始,您可能已将其减少到 500 个节点(隐藏节点)并且仅提取了那么多特征。在训练期间,具有特定特征的节点会被激活(sigmoid 中的值较高),而另一个则不会。
  • 它们也被称为隐藏,因为它们既不是输入也不是输出,就像函数的输入是已知的,输出最终也是,技术上它里面的所有东西都是一个黑盒子,只要您没有阅读它的来源,它是隐藏的。而在 NN 中,这是不等价的……输入节点触发……然后它进入隐藏层,该隐藏层不能直接被输入影响或访问。它包含在两个限制较少的方面,在命名事物时我们不是很有创意,因此是“隐藏的”。背后并没有什么特别的含义。它与 in data 的“输入”一词一样特殊。

标签: python tensorflow neural-network


【解决方案1】:

考虑一个非常基本的 AND、OR、NOT 和 XOR 函数示例。

您可能已经知道,只有当问题是线性可分时,单个神经元才适用。

在这种情况下,AND、OR 和 NOT 函数是线性可分的,因此可以使用单个神经元轻松处理它们。

但是考虑 XOR 函数。它不是线性可分的。所以单个神经元将无法预测 XOR 函数的值。 现在,XOR 函数是 AND、OR 和 NOT 的组合。下面的等式是它们之间的关系:

a XOR b = (a AND (NOT b)) OR ((NOT a) AND b)

因此,对于 XOR,我们可以使用包含三层的网络。 第一层作为NOT函数,第二层作为第一层输出的AND,最后输出层作为第二隐藏层的OR。

注意:这只是解释为什么需要它的一个例子,XOR 可以在各种其他神经元组合中实现。

【讨论】:

  • 这仍然不能完全解决模型第一个隐藏层(激活后)中值的含义,正如 OP 所要求的那样。
【解决方案2】:

神经网络中的隐藏层可以理解为既不是输入也不是输出的层,而是网络计算的中间步骤。

在您的 MNIST 案例中,隐藏层中的网络状态是输入的处理版本,从完整数字减少到抽象信息关于这些数字。

这个想法扩展到您在机器学习中会遇到的所有其他隐藏层案例——第二个隐藏层是输入数据的更抽象版本,循环神经网络的隐藏层是对发生的输入的解释随着时间的推移收集信息,或者卷积神经网络中的隐藏状态是输入的解释版本,具有通过卷积过程隔离的某些特征。

重申一下,隐藏层是神经网络过程中的一个中间步骤。该层中的信息是对输入的抽象,并包含在输出处解决问题所需的信息。

【讨论】:

    【解决方案3】:

    AFAIK,对于这个数字识别案例,一种思考方式是隐藏层的每一层代表抽象层。

    现在,假设用于数字识别的神经网络只有 3 层,即 1 个输入层、1 个隐藏层和 1 个输出层。

    让我们看一个数字。为了识别它是一个数字,我们可以将数字的图片分解为一些更抽象的概念,例如线、圆和弧。如果我们要识别6,我们可以先识别出图片中存在的比较抽象的概念。对于6,此示例将是一个圆弧和一个圆。对于8,它将是 2 个圆圈。对于1,它将是一行。

    对于神经网络也是如此。我们可以将第 1 层视为像素,第 2 层用于识别我们之前谈到的抽象概念,例如线、圆和弧,最后在第 3 层中我们确定它是哪个数字。

    在这里我们可以看到输入经过了一系列层,从最抽象的层到不太抽象的层(像素 -> 线、圆、弧 -> 数字)。在这个例子中,我们只有 1 个隐藏层,但在实际实现中,根据您对神经网络的解释,最好有更多的隐藏层。有时我们甚至不必考虑每一层代表什么,让训练为我们做这件事。无论如何,这就是培训的目的。

    【讨论】:

      猜你喜欢
      • 2020-05-09
      • 2015-05-28
      • 2017-01-17
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多