0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个决定神经网络深度、网络层大小的简单方法

zhKF_jqr_AI 来源:未知 作者:李倩 2018-10-24 08:58 次阅读

编者按:Ahmed Gad介绍了一个决定神经网络深度、网络层大小的简单方法。

该使用多少层隐藏层?使用隐藏层的目的是什么?增加隐藏层/神经元的数目总能给出更好的结果吗?人工神经网络(ANN)初学者常常提出这些问题。如果需要解决的问题很复杂,这些问题的答案可能也会比较复杂。希望读完这篇文章后,你至少可以知道如何回答这些问题。

介绍

在计算机科学中,借鉴了生物神经网络的ANN用一组网络层表示。这些网络层可以分为三类:输入层、隐藏层、输出层。

输入层和输出层的层数、大小是最容易确定的。每个网络都有一个输入层,一个输出层。输入层的神经元数目等于将要处理的数据的变量数。输出层的神经元数目等于每个输入对应的输出数。不过,确定隐藏层的层数和大小却是一项挑战。

下面是在分类问题中确定隐藏层的层数,以及每个隐藏层的神经元数目的一些原则:

在数据上画出分隔分类的期望边界。

将期望边界表示为一组线段。

线段数等于第一个隐藏层的隐藏层神经元数。

将其中部分线段连接起来(每次选择哪些线段连接取决于设计者),并增加一个新隐藏层。也就是说,每连接一些线段,就新增一个隐藏层。

每次连接的连接数等于新增隐藏层的神经元数目。

下面我们将举例说明这一确定隐藏层层数、大小的简单方法。

例一

让我们先来看一个简单的分类问题。每个样本有两个输入和一个表示分类标签的输出,和XOR问题很像。

首先需要回答的问题,是否需要隐藏层。关于这个问题,有一条一般规则:

在神经网络中,当且仅当数据必须以非线性的方式分割时,才需要隐藏层。

回到我们的例子。看起来一条直线搞不定,因此,我们需要使用隐藏层。在这样的情形下,也许我们仍然可以不用隐藏层,但会影响到分类精确度。所以,最好使用隐藏层。

已知需要隐藏层,那么接下来就需要回答两个重要问题:

需要多少层?

每层需要多少神经元?

按照我们之前提到的流程,首先需要画出分割的边界。如下图所示,可能的边界不止一种。我们在之后的讨论中将以下图右部的方案为例。

根据之前的原则,接下来是使用一组线段表示这一边界。

使用一组线段表示边界的想法来自于神经网络的基础构件——单层感知器。单层感知器是一个线性分类器,根据下式创建分界线:

y = w1x1+ w2x2+ ⋯ + wixi+ b

其中xi是第i项输入,wi是权重,b是偏置,y是输出。因为每增加一个隐藏单元都会增加权重数,所以一般建议使用能够完成任务的最少数量的隐藏单元。隐藏神经元使用量超出需要会增加复杂度。

回到我们的例子上来,人工神经网络基于多个感知器构建,这就相当于网络由多条直线组成。

因此我们使用一组线段替换边界,以分界曲线变向处作为线段的起点,在这一点上放置方向不同的两条线段。

如下图所示,我们只需要两条线段(分界曲线变向处以空心圆圈表示)。也就是两个单层感知器网络,每个感知器产生一条线段。

只需两条线段就可以表示边界,因此第一个隐藏层将有两个隐藏神经元。

到目前为止,我们有包含两个隐藏神经元的单隐藏层。每个隐藏神经元可以看成由一条线段表示的一个线性分类器。每个分类器(即隐藏神经元)都有一个输出,总共有两个输出。但我们将要创建的是基于单个输出表示分类标签的一个分类器,因此,两个隐藏神经元的输出将被合并为单个输出。换句话说,这两条线段将由另一个神经元连接起来,如下图所示。

很幸运,我们并不需要额外添加一个包含单个神经元的隐藏层。输出层的神经元正好可以起到这个作用,合并之前提到的两个输出(连接两条线段),这样整个网络就只有一个输出。

整个网络架构如下图所示:

例二

我们再来看一个分类问题的例子。和上面一个例子相似,这个例子也有两个分类,每个样本对应两个输入和一个输出。区别在于边界比之前的更复杂。

遵照之前的原则,第一步是画出边界(如下图左半部分所示),接着是将边界分成一组线段,我们将使用ANN的感知器建模每条线段。在画出线段之前,首先标出边界的变向处(下图右半部分中的空心圆圈)。

问题在于需要几条线段?顶部和底部的变向处各需要两条线段,这样总共是4条线段。而当中的变向处可以和上下两个变向处共用线段。所以我们需要4条线段,如下图所示。

这意味着第一个隐藏层将包含4个神经元。换句话说,由单层感知器构成的4个分类器,每个分类器各生成一个输出,共计4个输出。接下来需要将这些分类器连接起来,使得整个网络生成单个输出。换句话说,通过另外的隐藏层将这些线段连接起来,以得到单条曲线。

网络的具体布局取决于模型设计者。一种可能的网络架构是创建包含两个隐藏神经元的第二隐藏层。其中第一个隐藏神经元连接前两条线段,最后一个隐藏神经元连接后两条线段,如下图所示。

到目前为止,我们有两条曲线,也就是两个输出。接下来我们连接这两条曲线,以得到整个网络的单个输出。在这一情形下,输出层的神经元可以完成最终的连接,而无需增加一个新的隐藏层。最后我们得到了如下曲线:

这就完成了网络的设计,整个网络架构如下图所示:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100739
  • 神经元
    +关注

    关注

    1

    文章

    363

    浏览量

    18450

原文标题:如何得出神经网络需要多少隐藏层、每层需要多少神经元?

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用深度循环神经网络对心电图降噪

    一个是它们由堆叠在起的多个 (> 2) 组成 - 这 种方法也称为深度学习。这种深层架构虽然比典型 的\"浅层\"
    发表于 05-15 14:42

    从AlexNet到MobileNet,带你入门深度神经网络

    深度神经网络运用的方法。AlexNet在研发的时候,使用的GTX580仅有3GB的显存,所以创造性的把模型拆解在两张显卡中,架构如下:1.第一层是卷积
    发表于 05-08 15:57

    【PYNQ-Z2试用体验】神经网络基础知识

    语言,使用numpy.dot方法即可计算矩阵乘法。 以上便是简单神经网络的基本原理,对神经网络
    发表于 03-03 22:10

    【案例分享】ART神经网络与SOM神经网络

    元,它决定了该输入向量在地位空间中的位置。SOM神经网络训练的目的就是为每个输出神经元找到合适的权向量,以达到保持拓扑结构的目的。SOM的训练过程其实很
    发表于 07-21 04:30

    深度神经网络是什么

    多层感知机 深度神经网络in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 与许忠传,林敏涛和华佳勇合作
    发表于 07-12 06:35

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入
    发表于 07-12 08:02

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络的实现是如何直没有具体实现下:现看到
    发表于 08-18 07:25

    神经网络移植到STM32的方法

    问题,一个神经网络的移植,另一个是STM32的计算速度。神经网络的移植网络采用的是最简单的BP
    发表于 01-11 06:20

    卷积神经网络模型发展及应用

    卷积神经网络模型发展及应用转载****地址:http://fcst.ceaj.org/CN/abstract/abstract2521.shtml深度学习是机器学习和人工智能研究的最新趋势,作为
    发表于 08-02 10:39

    【人工神经网络基础】为什么神经网络选择了“深度”?

    的 Logistic regression 就可以认为是不含隐含的输出激活函数用 sigmoid(logistic) 的神经网络,显
    发表于 09-06 20:48 689次阅读

    卷积神经网络层级结构 卷积神经网络的卷积讲解

    卷积神经网络层级结构 卷积神经网络的卷积讲解 卷积神经网络(Convolutional Neural Network,CNN)是种基于
    的头像 发表于 08-21 16:49 7594次阅读

    卷积神经网络深度神经网络的优缺点 卷积神经网络深度神经网络的区别

    深度神经网络种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经
    发表于 08-21 17:07 4100次阅读

    浅析深度神经网络压缩与加速威廉希尔官方网站

    深度神经网络深度学习的种框架,它是种具备至少
    的头像 发表于 10-11 09:14 737次阅读
    浅析<b class='flag-5'>深度</b><b class='flag-5'>神经网络</b>压缩与加速威廉希尔官方网站

    深度神经网络模型有哪些

    深度神经网络(Deep Neural Networks,DNNs)是类具有多个隐藏神经网络,它们在许多领域取得了显著的成功,如计算机视
    的头像 发表于 07-02 10:00 1355次阅读

    深度神经网络的设计方法

    深度神经网络(Deep Neural Networks, DNNs)作为人工智能领域的重要威廉希尔官方网站 之,通过模拟人脑神经元之间的连接,实现了对复杂数据的自主学习和智能判断。其设计
    的头像 发表于 07-04 13:13 455次阅读