推断神经网络的层数和神经元(图解)

本文概述

  • 介绍
  • 例子1
  • 例子2
推断神经网络的层数和神经元(图解)

文章图片
人工神经网络(ANN)的初学者可能会问一些问题。其中一些问题包括要使用的隐藏层数是多少?每个隐藏层中有多少个隐藏神经元?使用隐藏层/神经元的目的是什么?增加隐藏层/神经元的数量是否总是能带来更好的结果?我很高兴地说我们可以回答这样的问题。明确地说, 如果要解决的问题很复杂, 回答此类问题可能会太复杂。到本文结尾, 你至少可以了解如何回答这些问题, 并能够根据简单的示例进行自我测试。
推断神经网络的层数和神经元(图解)

文章图片
介绍 ANN受生物神经网络的启发。为简单起见, 在计算机科学中, 它表示为一组层。这些层分为输入, 隐藏和输出三类。
知道输入和输出层的数量及其神经元的数量是最容易的部分。每个网络都有单个输入和输出层。输入层中神经元的数量等于正在处理的数据中输入变量的数量。输出层中神经元的数量等于与每个输入关联的输出的数量。但是挑战在于知道隐藏层及其神经元的数量。
以下是一些指南, 用于了解分类问题中每个隐藏层的隐藏层数和神经元:
  • 根据数据, 画出预期的决策边界以分离类别。
  • 将决策边界表示为一组线。注意, 这些线的组合必须屈服于决策边界。
  • 所选行的数量表示第一隐藏层中隐藏神经元的数量。
  • 为了连接上一层创建的线, 添加了一个新的隐藏层。请注意, 每次需要在上一个隐藏层中的各行之间创建连接时, 都会添加一个新的隐藏层。
  • 每个新的隐藏层中的隐藏神经元数量等于要建立的连接数量。
为了使事情更清楚, 让我们将以前的准则应用于许多示例。
例子1 让我们从一个具有两个类的分类问题的简单示例开始, 如下图所示。每个样本都有两个输入和一个代表类标签的输出。它与XOR问题非常相似。
推断神经网络的层数和神经元(图解)

文章图片
要回答的第一个问题是是否需要隐藏层。确定是否需要隐藏层要遵循的规则如下:
在人工神经网络中, 当且仅当数据必须非线性分离时才需要隐藏层。
看下图, 似乎必须将这些类非线性分离。单行不起作用。结果, 我们必须使用隐藏层以获得最佳决策边界。在这种情况下, 我们可能仍不使用隐藏层, 但这会影响分类的准确性。因此, 最好使用隐藏层。
知道我们需要隐藏层才能使我们需要回答两个重要问题。这些问题是:
  1. 所需的隐藏层数是多少?
  2. 每个隐藏层中隐藏神经元的数量是多少?
按照前面的步骤, 第一步是绘制将两个类别分开的决策边界。如下图所示, 有多个可能的决策边界可以正确分割数据。我们将用于进一步讨论的是在图(b)的右侧。
推断神经网络的层数和神经元(图解)

文章图片
遵循准则, 下一步是用一组线表示决策边界。
使用一组线表示决策边界的想法来自以下事实:任何ANN都是使用单层感知器作为构建块构建的。单层感知器是线性分类器, 它使用根据以下等式创建的线来分隔类:
y = w1x1 + w2x2 +?+ wxx + b
其中xi是第i个输入, wi是其权重, b是偏置, y是输出。由于添加的每个隐藏神经元都会增加权重数, 因此建议使用最少数量的隐藏神经元来完成任务。使用比所需更多的隐藏神经元会增加更多的复杂性。
回到我们的示例, 说使用多个感知器网络构建ANN与说使用多个线路构建网络相同。
在此示例中, 决策边界由一组线代替。线从边界曲线改变方向的点开始。在这一点上, 放置了两条线, 每条线的方向不同。
因为边界曲线的变化方向只有一个点(如下图由灰色圆圈所示), 所以只需要两条线。换句话说, 有两个单层感知器网络。每个感知器产生一条线。
推断神经网络的层数和神经元(图解)

文章图片
【推断神经网络的层数和神经元(图解)】知道只需要两条线来表示决策边界, 就可以知道第一隐藏层将具有两个隐藏神经元。
到目前为止, 我们只有一个带有两个隐藏神经元的隐藏层。每个隐藏的神经元都可以看作是线性分类器, 如上图所示, 用线表示。将有两个输出, 每个分类器一个输出(即隐藏的神经元)。但是我们要构建一个单一的分类器, 其中一个输出代表类标签, 而不是两个分类器。结果, 两个隐藏神经元的输出将合并为一个输出。换句话说, 两条线将由另一个神经元连接。结果如下图所示。
幸运的是, 我们不需要添加带有单个神经元的另一个隐藏层来完成这项工作。输出层神经元将完成任务。这种神经元将合并先前生成的两条线, 因此网络只有一个输出。
推断神经网络的层数和神经元(图解)

文章图片
在知道了隐藏层及其神经元的数量之后, 网络架构就完成了, 如下图所示。
推断神经网络的层数和神经元(图解)

文章图片
例子2 下图显示了另一个分类示例。它与前面的示例相似, 其中有两个类别, 其中每个样本都有两个输入和一个输出。区别在于决策边界。该示例的边界比上一个示例复杂。
推断神经网络的层数和神经元(图解)

文章图片
根据指南, 第一步是绘制决策边界。下图(a)的最左侧显示了我们讨论中使用的决策边界。
下一步是将决策边界划分为一组线, 其中每条线将在ANN中建模为感知器。在画线之前, 应标记边界改变方向的点, 如下图(b)的最右侧所示。
推断神经网络的层数和神经元(图解)

文章图片
问题是需要多少行?顶部和底部的每个点都有两条与之关联的线, 总共4条线。中间点将与其他点共享两条线。下图显示了要创建的行。
因为第一隐藏层将具有等于行数的隐藏层神经元, 所以第一隐藏层将具有4个神经元。换句话说, 有4个分类器, 每个分类器由一个单层感知器创建。目前, 网络将生成4个输出, 每个分类器一个。接下来是将这些分类器连接在一起, 以使网络仅生成单个输出。换句话说, 这些线将由其他隐藏层连接在一起以仅生成一条曲线。
推断神经网络的层数和神经元(图解)

文章图片
模型设计者可以选择网络的布局。一种可行的网络体系结构是用两个隐藏的神经元构建第二个隐藏层。第一个隐藏的神经元将连接前两行, 最后一个隐藏的神经元将连接后两行。第二个隐藏层的结果。第二层的结果如下图所示。
推断神经网络的层数和神经元(图解)

文章图片
到目前为止, 有两条分离的曲线。因此, 网络有两个输出。接下来是将这些曲线连接在一起, 以使整个网络只有一个输出。在这种情况下, 可以使用输出层神经元进行最终连接, 而不是添加新的隐藏层。最终结果如下图所示。
推断神经网络的层数和神经元(图解)

文章图片
网络设计完成后, 完整的网络体系结构如下图所示。
推断神经网络的层数和神经元(图解)

文章图片
有关更多信息。
深度学习+使用ANN解决XOR的简介 幻灯片分享
youtube

    推荐阅读