个性化阅读
专注于IT技术分析

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

本文概述

推断神经网络的层数和神经元1

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

推断神经网络的层数和神经元2

介绍

ANN受生物神经网络的启发。为简单起见, 在计算机科学中, 它表示为一组层。这些层分为输入, 隐藏和输出三类。

知道输入和输出层的数量及其神经元的数量是最容易的部分。每个网络都有单个输入和输出层。输入层中神经元的数量等于正在处理的数据中输入变量的数量。输出层中神经元的数量等于与每个输入关联的输出的数量。但是挑战在于知道隐藏层及其神经元的数量。

以下是一些指南, 用于了解分类问题中每个隐藏层的隐藏层数和神经元:

  • 根据数据, 画出预期的决策边界以分离类别。
  • 将决策边界表示为一组线。注意, 这些线的组合必须屈服于决策边界。
  • 所选行的数量表示第一隐藏层中隐藏神经元的数量。
  • 为了连接上一层创建的线, 添加了一个新的隐藏层。请注意, 每次需要在上一个隐藏层中的各行之间创建连接时, 都会添加一个新的隐藏层。
  • 每个新的隐藏层中的隐藏神经元数量等于要建立的连接数量。

为了使事情更清楚, 让我们将以前的准则应用于许多示例。

例子1

让我们从一个具有两个类的分类问题的简单示例开始, 如下图所示。每个样本都有两个输入和一个代表类标签的输出。它与XOR问题非常相似。

推断神经网络的层数和神经元3

要回答的第一个问题是是否需要隐藏层。确定是否需要隐藏层要遵循的规则如下:

在人工神经网络中, 当且仅当数据必须非线性分离时才需要隐藏层。

看下图, 似乎必须将这些类非线性分离。单行不起作用。结果, 我们必须使用隐藏层以获得最佳决策边界。在这种情况下, 我们可能仍不使用隐藏层, 但这会影响分类的准确性。因此, 最好使用隐藏层。

知道我们需要隐藏层才能使我们需要回答两个重要问题。这些问题是:

  1. 所需的隐藏层数是多少?
  2. 每个隐藏层中隐藏神经元的数量是多少?

按照前面的步骤, 第一步是绘制将两个类别分开的决策边界。如下图所示, 有多个可能的决策边界可以正确分割数据。我们将用于进一步讨论的是在图(b)的右侧。

推断神经网络的层数和神经元4

遵循准则, 下一步是用一组线表示决策边界。

使用一组线表示决策边界的想法来自以下事实:任何ANN都是使用单层感知器作为构建块构建的。单层感知器是线性分类器, 它使用根据以下等式创建的线来分隔类:

y = w1x1 + w2x2 +⋯+ wxx + b

其中xi是第i个输入, wi是其权重, b是偏置, y是输出。由于添加的每个隐藏神经元都会增加权重数, 因此建议使用最少数量的隐藏神经元来完成任务。使用比所需更多的隐藏神经元会增加更多的复杂性。

回到我们的示例, 说使用多个感知器网络构建ANN与说使用多个线路构建网络相同。

在此示例中, 决策边界由一组线代替。线从边界曲线改变方向的点开始。在这一点上, 放置了两条线, 每条线的方向不同。

因为边界曲线的变化方向只有一个点(如下图由灰色圆圈所示), 所以只需要两条线。换句话说, 有两个单层感知器网络。每个感知器产生一条线。

推断神经网络的层数和神经元5

知道只需要两条线来表示决策边界, 就可以知道第一隐藏层将具有两个隐藏神经元。

到目前为止, 我们只有一个带有两个隐藏神经元的隐藏层。每个隐藏的神经元都可以看作是线性分类器, 如上图所示, 用线表示。将有两个输出, 每个分类器一个输出(即隐藏的神经元)。但是我们要构建一个单一的分类器, 其中一个输出代表类标签, 而不是两个分类器。结果, 两个隐藏神经元的输出将合并为一个输出。换句话说, 两条线将由另一个神经元连接。结果如下图所示。

幸运的是, 我们不需要添加带有单个神经元的另一个隐藏层来完成这项工作。输出层神经元将完成任务。这种神经元将合并先前生成的两条线, 因此网络只有一个输出。

推断神经网络的层数和神经元6

在知道了隐藏层及其神经元的数量之后, 网络架构就完成了, 如下图所示。

推断神经网络的层数和神经元7

例子2

下图显示了另一个分类示例。它与前面的示例相似, 其中有两个类别, 其中每个样本都有两个输入和一个输出。区别在于决策边界。该示例的边界比上一个示例复杂。

推断神经网络的层数和神经元8

根据指南, 第一步是绘制决策边界。下图(a)的最左侧显示了我们讨论中使用的决策边界。

下一步是将决策边界划分为一组线, 其中每条线将在ANN中建模为感知器。在画线之前, 应标记边界改变方向的点, 如下图(b)的最右侧所示。

推断神经网络的层数和神经元9

问题是需要多少行?顶部和底部的每个点都有两条与之关联的线, 总共4条线。中间点将与其他点共享两条线。下图显示了要创建的行。

因为第一隐藏层将具有等于行数的隐藏层神经元, 所以第一隐藏层将具有4个神经元。换句话说, 有4个分类器, 每个分类器由一个单层感知器创建。目前, 网络将生成4个输出, 每个分类器一个。接下来是将这些分类器连接在一起, 以使网络仅生成单个输出。换句话说, 这些线将由其他隐藏层连接在一起以仅生成一条曲线。

推断神经网络的层数和神经元10

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

推断神经网络的层数和神经元11

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

推断神经网络的层数和神经元12

网络设计完成后, 完整的网络体系结构如下图所示。

推断神经网络的层数和神经元13

有关更多信息。

深度学习+使用ANN解决XOR的简介

幻灯片分享

youtube

赞(0) 打赏
未经允许不得转载:srcmini » 推断神经网络的层数和神经元(图解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏