原标题:如何配置神经网络节点昰什么中层和节点的数量
人工神经网络节点是什么有两个重要的超参数控制着网络的架构或拓扑结构:层数和每个隐藏层中的节点数
你茬配置网络时,必须指定这些参数的值想为你特定的预测建模问题配置这些超参数,最可靠的方法就是用强大的测试工具进行系统试验
对于刚接触机器学习领域的初学者来说,这可能并非易事关键是寻找一种分析方法来计算最佳的层数和节点数,或者遵循简单的经验法则
在这篇文章中,你将了解层和节点的作用以及如何着手为你的预测建模问题配置多层感知器神经网络节点是什么。
阅读本文后伱会知道:
单层感知器网络与多层感知器网络的区别。
网络中有一个和多个隐藏层的价值
配置网络中的层数和节点数的五种方法。
图1:洳何配置神经网络节点是什么中的层数和节点数
本文分为四个部分它们是:
节点又叫神经元或感知器,它是一个计算单元拥有一个或哆个权重输入连接、以某种方式结合输入的传递函数(transfer function)以及连接输出。
然后将节点组织成层以构成网络
单层人工神经网络节点是什么叒叫单层,顾名思义它只有单层节点。单层中的每个节点直接连接到输入变量用于得到输出变量。
单层网络只有一层活动单元输入通过单层权重直接连接到输出。输出不相互影响因此拥有N个输出的网络可被视为N个独立的单输出网络。
--1999年的《神经锻造:前馈人工鉮经网络节点是什么中的监督学习》第15页
单层网络可以扩展成多层网络(又叫多层感知器)。多层感知器(MLP)是有不止一层的人工神经網络节点是什么
它有一个连接到输入变量的输入层、一个或多个隐藏层以及生成输出变量的输出层。
标准多层感知器(MLP)由单层感知器楿互连接在一起有一层输入节点、一层输出节点和一个或多个中间层。内部层有时叫作“隐藏层”因为它们无法从系统输入和输出直接观察到。
--1999年的《神经锻造:前馈人工神经网络节点是什么中的监督学习》第31页
我们可以将MLP中各层的类型总结如下:
输入层:输入變量,有时叫作可见层
隐藏层:输入层和输出层之间的节点层。可能有一个或多个隐藏层
输出层:生成输出变量的节点层。
最后有幾个用来描述神经网络节点是什么形状和能力的术语:
大小:模型中的节点数。
宽度:特定层中的节点数
深度:神经网络节点是什么中嘚层数。
能力:可通过网络配置学习的函数的类型或结构有时叫作“表示能力”。
架构:网络中层和节点的具体排列
过去关于如何计數层数存在一些分歧。
分歧的焦点在于输入层要不要计数在内一种观点认为输入层不该计数在内,因为输入不是活动输入它们只是输叺变量。我们将使用这个惯例这也是《神经锻造》一书中推荐的惯例。
因此拥有输入层、一个隐藏层和一个输出层的MLP是2层MLP,可以使用簡单的标记来概括MLP的结构
这种方便的标记概括了层数和每层的节点数。每层中的节点数被指定为一个整数按照从输入层到输出层的顺序,每个层的大小由正斜线字符(“/”)分隔
比如说,如果某个网络有输入层中的两个变量、有8个节点的一个隐藏层和有1个节点的输出層可以使用标记:2/8/1来描述。
我建议在描述多层感知器神经网络节点是什么的层及大小时使用此标记
在我们探讨指定多少层之前,思考為什么我们想要有多层很重要
单层神经网络节点是什么只能用于表示线性可分的函数。这意味着很简单的问题比如说分类问题中的两個类可以用一条线整齐地分开。如果你的问题比较简单单层网络可能足够了。
我们想要解决的大多数问题都不是线性可分的
多层感知器可用于表示凸区域(convex region)。这意味着实际上,它们可以学习针对一些高维度空间中的实例绘制形状以便可以将它们进行分隔和分类,從而克服线性可分的局限性
实际上,Lippmann在1987年的论文《神经网络节点是什么计算入门》中有一个理论发现表明有两个隐藏层的MLP足以创建任哬所需形状的分类区域。这颇有启发性不过值得一提的是,论文根本没有表明每层中使用多少节点或如何学习权重
无论你遇到什么样嘚启发方法,所有答案都归结为需要认真的试验看看哪种方法最适合你的特定数据集。
网络可以通过直觉来进行配置比如说,你可能擁有深度网络解决特定的预测建模问题所需要的直觉
深度模型提供了层次结构,这种层次从输入变量空间到输出变量空间逐渐提高了抽潒级别
如果对问题领域(problem domain)有一定的了解,我们可能需要深度层次模型来充分解决预测问题在这种情况下,我们可以选择有多层深度嘚网络配置
选择一个深度模型意味着我们相信,我们想要学习的函数应包含几个更简单的函数这可以从表示学习的角度来加以解释,峩们认为学习问题包括发现一组变化的影响因素而这些因素又可以从其他更简单的变化影响因素方面加以描述。
――2016年的《深度学习》第201页。
这种直觉可能来自领域方面的经验、神经网络节点是什么建模问题方面的经验或者两者兼之
根据我的经验,直觉常常通过试验被证明是无效的
Goodfellow、Bengio和Courville在重要的深度学习教科书中强调,单凭经验针对感兴趣的问题,深度神经网络节点是什么似乎表现更好
具体而訁,他们表示在深度可能明显有利的情况下应该选择使用深度神经网络节点是什么作为统计论点。
从经验上看深度越大对众多任务的歸纳就越好。[…]这表明使用深度架构确实在模型学习的函数空间上表达了一个有用的先验
――2016年出版的《深度学习》,第201页
我们可以使用这个论点来表明:使用深度网络(多层网络)可能是一种配置网络的启发式方法,以应对有挑战性的预测建模问题
一种简单但可能佷耗时的方法是利用文献中报道的研究结果。
查找这类研究论文:描述使用MLP处理多少类似你问题的预测问题注意那些论文中使用的网络配置,将它们用作测试你问题的配置的一个起点
模型超参数的可传递性导致模型可以从一个问题适用于另一个问题,这是颇具挑战性的開放性问题也是模型超参数配置与其说是科学不如说是艺术的原因。
然而针对相关问题所使用的网络层和节点数是测试想法的好起点。
设计自动搜索以测试不同的网络配置
你在搜索时可以结合来自文献和直觉的想法。
一些流行的搜索策略包括:
随机:尝试层和每层节點的随机配置
网格:尝试对层数和每层节点数执行系统搜索。
启发式方法:尝试对配置进行定向搜索比如遗传算法或贝叶斯优化。
穷盡法:试遍层和节点数的所有组合;这个策略对小型网络和数据集来说可能行得通
对于庞大模型、庞大数据集以及两者的结合体,这可能具有挑战性减轻或管理计算负担的一些想法包括如下:
让模型拟合训练数据集的较小子集,以加快搜索
严格限制搜索空间的大小。
跨多个服务器实例并行化搜索(比如使用亚马逊EC2服务)
如果时间和资源允许,我建议系统化搜索
如果你希望深入了解,本节将提供有關该主题的更多资源
1987年的《神经网络节点是什么计算入门》:
1999年的《神经锻造:前馈人工神经网络节点是什么中的监督学习》:
维基百科上的人工神经网络节点是什么条目:
维基百科上的通用逼近定理条目:
你在本文中了解不同层和节点的作用,以及如何着手配置一个多層感知器神经网络节点是什么
单层感知器网络与多层感知器网络的区别。
网络中有一个和多个隐藏层的价值
配置网络中的层数和节点數的五种方法。
有什么问题吗欢迎留言交流!