开发者社区> 【方向】> 正文

人工神经网络中究竟使用多少隐藏层和神经元

简介: 本文讲述了人工神经网络中使用了多少隐藏层,每个隐藏层中包含多少神经元,使用隐藏层和神经元的目的,以及增加隐藏的层数和神经元的数量总是会带来什么结果。
+关注继续查看

人工神经网络(ANNs)的初学者很可能都会面临一些问题。其中一些问题包括使用隐藏层的数量是多少?每个隐藏层中包含了多少个神经元?使用隐藏的层和神经元的目的是什么?增加隐藏的层数和神经元的数量总是会带来更好的结果吗?

非常高兴地告诉大家,这些问题都是可以回答的。

人工神经网络的灵感来自于生物学的神经网络。为了简单起见,在计算机科学中,它被表示为一系列的网络层。这些层分为三类:分别是输入层、隐藏层和输出层。

了解输入层和输出层的数量和它们的神经元的数量是比较容易的。每个人工神经网络都有一个单独的输入层和输出层。输入层中的神经元数量等于正在处理的数据中的输入变量的数量。在输出层中的神经元的数量等于与每个输入相关联的输出的数量。但是,真正的挑战是如何知道隐藏层和它们所包含的神经元的数量。

这里有一些可以依照的准则,用于知道分类问题中隐藏层的数量和每个隐藏层中所包含的神经元的数量:

· 基于数据,画出一个期望的决策边界用来分离多个类;

· 将决策边界表示为一组直线。注意,这样的直线组合必须服从于决策边界;

· 所选直线的数量等于在第一个隐藏层中的隐藏神经元的数量;

· 为了连接由前一层所创建的直线,添加了一个新的隐藏层。需要注意的是,当每次需要在前一个隐藏层中创建直线之间的连接时,都要添加一个新的隐藏层;

· 每个新的隐藏层中隐藏神经元的数量等于要建立的连接的数量;

为了把事情弄的更清楚,让我们用之前的方法和原则来举几个例子。

示例 1

让我们从下图中简单的分类问题开始,每个样本都有两个输入,和一个用于表示类标签的输出,这与XOR问题十分相似。

0?e=2129500800&v=beta&t=_rrLwLhBZIJwUqeZ 

1

第一个要回答的问题是隐藏层是否是必需的。为了解答这个问题,需要遵循的规则如下:

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

请看图2,看起来类必须是非线性分离的,一条线是完不成的。因此,我们必须使用隐藏层,以获得最佳的决策边界。在这种情形下,我们可能仍然不使用隐藏层,但这将影响分类的精确度。所以,最好还是使用隐藏层。

理解我们需要隐藏层的原因,首先需要回答以下两个重要的问题:

1、所需要隐藏层的数量是多少?

2、每个隐藏层中所包含的隐藏神经元的数量是多少?

接着前面的过程,第一步是画出分割两个类的决策边界。至少有一个可能的决策边界会正确地分离数据,如图所示:

0?e=2129500800&v=beta&t=8HPoFUGBKD6zmte9 

2

使用一组直线来表示决策边界,这种想法来自于使用单层感知器作为构造块来构造任何人工神经网络的方式。单层的感知器是一个线性分类器,它根据以下等式所创建的直线方程来分离多个类:

y = w_1*x_1 + w_2*x_2++ w_i*x_i + b

其中x_i表示输入,w_i表示它的权重,b表示偏差,y表示输出。因为每个添加的隐藏神经元将增加权重的数量,所以建议使用最少的隐藏神经元来完成任务,另外,使用比实际需要更多的隐藏神经元也会增加更多的复杂性。

回到我们的例子,人工神经网络是用多个感知器网络构建的,与使用多条直线构建的网络是一样的。

在这个例子中,决策边界被一组直线所代替。这些直线从边界曲线改变方向的点开始,在这些点上,各有两条直线经过,每条直线在不同的方向上。

因为只有在一个点上,边界曲线改变了方向,下图所示的灰色圆圈,那么只需要两条直线,换句话说,有两个单层感知器网络,每个感知器仅仅产生一条直线。

0?e=2129500800&v=beta&t=CNYalo9EF3sYAmzR 

3

只需要两条直线来表示决策边界,这告诉我们第一个隐藏层将有两个隐藏神经元。

到目前为止,我们有一个带有两个隐藏神经元的隐藏层。每个隐藏神经元可看作一个线性分类器,如上图所示,表示为一条直线。一个隐藏层将会有两个输出,每个输出都来自于一个分类器(即隐藏的神经元)。但是,我们要建立一个单一的分类器,并且带有一个表示类标签的输出,而不是两个分类器。结果是,两个隐藏神经元的输出被合并成了一个输出。换句话说,这两条直线将被另一个神经元连接起来,结果如下图所示。

0?e=2129500800&v=beta&t=TvwuQ6r7H99jzxv9 

4

幸运的是,我们不需要用单一神经元来添加另一个隐藏层来完成这项工作,而是输出层神经元做这项工作。这样的神经元将合并先前生成的两条直线,使得只有一条直线来自人工神经网络的输出。

在知道隐藏层以及它们的神经元的数量之后,网络体系结构现在就已经完整了,如下图所示:

0?e=2129500800&v=beta&t=t3OJ_C-cuq1c4hFf 

5

示例 2

另一个分类的示例如图6所示,它类似于前一个示例,其中有两个类,并且每个样本包括两个输入和一个输出。这两个示例的区别就在于决策边界,示例2的边界比之前的示例要更复杂一些。

 0?e=2129500800&v=beta&t=N0TVdQU8MsKOX4H0

6

根据指导原则,第一步是画出决策边界,在我们讨论中所使用的决策边界如图7(a)所示。

下一步是将决策边界分割成一组直线,其中每一条直线将在人工神经网络中被模拟成感知器。在画出这些直线之前,在决策边界改变方向所在的那些点应该被标记为图7(b)所示的那样。

 0?e=2129500800&v=beta&t=aKDzaOTVvgLn_--e

7

那么究竟我们需要多少直线呢?每个在顶部和底部的点都有两条直线经过,这样一共就有四条。中间的点会有两条从其它的点共享的两条直线,要创建的直线如图8所示:

0?e=2129500800&v=beta&t=kYY1_ctgknAqIi8- 

8

因为第一个隐藏层将具有与直线数量相等的隐藏层神经元,那么它有四个神经元。换句话说,它包含四个分类器,每一个分类器都是由单层感知器创建的。目前,人工神经网络将会产生四个输出,每个输出都会来自于一个分类器。下一步是将这些分类器连接在一起,这是为了让网络仅产生单一的输出。换句话说,这些直线会被其它隐藏层连接在一起,以形成一条单独的曲线。

由模型设计者来选择网络的布局。一个可用的网络结构是构造一个具有两个隐藏神经元的第二隐藏层。第一个隐藏神经元将连接前两条直线,最后一个隐藏神经元会连接最后两条直线,这就是第二隐藏层,结果如图9所示。

0?e=2129500800&v=beta&t=c6F6qWWmenJIVz1X 

9

对此,将有两条分离的曲线,所以会有两个来自网络的输出。下一步是将这样的曲线链接在一起,目的是为了从整个人工神经网络中仅得到一个输出。在这种情况下,输出层神经元可以被用来做最后的连接,而不是添加一个新的隐藏层。最后的结果如图10所示。

0?e=2129500800&v=beta&t=XZd7vFaDW7ljj6Md 

10

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

0?e=2129500800&v=beta&t=UW1ckRZyxaPoFU9v 

11

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Beginners Ask “How Many Hidden Layers/Neurons to Use in Artificial Neural Networks?”》

作者:Ahmed Gad, KDnuggets Contributor

译者:奥特曼,审校:袁虎。

文章为简译,更为详细的内容,请查看原文

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27698 0
Nat.Commun.|使用基于注意力机制的多标签神经网络预测并解释12种RNA修饰
Nat.Commun.|使用基于注意力机制的多标签神经网络预测并解释12种RNA修饰
30 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19976 0
Tuxedo多人使用tmadmin命令时,如何强制停止服务
需要重启Tuxedo应用时,提示:LIBTUX_CAT:577: ERROR: Unable to register because the slot is already owned 此时执行tmadmin命令,有报错: $ tmadmintmadmin - Copyright (c) 1996-1999 BEA Systems, Inc.
859 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23523 0
DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略
DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略
79 0
使用同步解决多人卖票问题 | 带你学《Java语言高级特性》之九
本节先由多人合卖10张票为例,引出了线程同步问题,并结合实例代码讲解了同步机制的实现办法。
1056 0
神经网络-神经元模型及神经网络模型
神经网络-神经元模型及神经网络模型
31 0
黑箱方法-神经网络①
人工神经网络 人工神经网络的概念 人工神经网络(Artificial Neural Networks,ANN)是对一组输入信号和一组输出信号之间的关系进行建模,使用的模型来源于人类大脑对来自感觉输入的刺激是如何反应的理解。
1173 0
+关注
【方向】
欢迎各位对内容方向及质量提需求,我们尽量满足,将国外优质的内容呈现给大家!
706
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载