gpt4 book ai didi

machine-learning - 多层感知器 (MLP) 架构 : criteria for choosing number of hidden layers and size of the hidden layer?

转载 作者:行者123 更新时间:2023-11-30 08:19:43 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

6 个月前关闭。



Improve this question




如果我们有 10 个特征向量,那么我们可以在输入层有 10 个神经节点。如果我们有 5 个输出类,那么我们可以在输出层有 5 个节点。但是在 MLP 中选择隐藏层数的标准是什么以及有多少神经1 个隐藏层中的节点?

最佳答案

有多少隐藏层?

具有零隐藏层的模型将解析线性可分数据。因此,除非您已经知道您的数据不是线性可分的,否则验证这一点并没有什么坏处——为什么要使用比任务所需的更复杂的模型?如果它是线性可分的,那么更简单的技术会起作用,但感知器也能完成这项工作。

假设您的数据确实需要通过非线性技术分离,那么 总是从一个隐藏层开始 .几乎可以肯定,这就是您所需要的。如果您的数据可以使用 MLP 进行分离,那么该 MLP 可能只需要一个隐藏层。对此有理论依据,但我的理由纯粹是经验性的:使用单隐藏层 MLP 解决了许多困难的分类/回归问题,但我不记得遇到任何用于成功建模数据的多隐藏层 MLP - - 无论是在 ML 公告板、ML 教科书、学术论文等上。它们确实存在,但从经验上看,证明它们使用合理的情况非常罕见。

隐藏层有多少个节点?

来自 MLP 学术文献。我自己的经验等,我已经收集并经常依赖于几个经验法则 (RoT),而且我还发现它们是可靠的指南(即,指南是准确的,即使不是,它通常很清楚接下来要做什么):

RoT基于改进收敛:

When you begin the model building, err on the side of more nodes in the hidden layer.



为什么?首先,隐藏层中的一些额外节点不太可能造成任何伤害——您的 MLP 仍会收敛。另一方面,隐藏层中的节点太少会阻碍收敛。这样想,额外的节点提供了一些额外的容量——额外的权重,用于在迭代(训练或模型构建)期间向网络存储/释放信号。其次,如果您从隐藏层中的其他节点开始,那么稍后(在迭代过程中)很容易修剪它们。这很常见,并且有一些诊断技术可以帮助您(例如,Hinton Diagram,它只是权重矩阵的视觉描述,权重值的“热图”)。

RoTs基于输入层的大小和输出层的大小:

A rule of thumb is for the size of this [hidden] layer to be somewhere between the input layer size ... and the output layer size....

To calculate the number of hidden nodes we use a general rule of: (Number of inputs + outputs) x 2/3



RoT基于主成分:

Typically, we specify as many hidden nodes as dimensions [principal components] needed to capture 70-90% of the variance of the input data set.



然而 NN FAQ作者将这些规则称为“废话”(字面意思),因为它们:忽略训练实例的数量、目标中的噪声(响应变量的值)以及特征空间的复杂性。

在他看来(在我看来他总是知道他在说什么),根据您的 MLP 是否包含某种形式的正则化或提前停止来选择隐藏层中的神经元数量。

优化隐藏层神经元数量的唯一有效技术:

在你的模型构建过程中,痴迷地测试;测试将揭示“不正确”网络架构的特征。例如,如果您从具有由少量节点组成的隐藏层的 MLP 开始(根据测试结果,您将根据需要逐渐增加),由于偏差和欠拟合,您的训练和泛化误差都会很高。

然后增加隐藏层中的节点数量,一次一个,直到泛化误差开始增加,这次是由于过度拟合和高方差。

在实践中,我是这样做的:

输入层 :我的数据向量的大小(我模型中的特征数量)+ 1 用于偏置节点,当然不包括响应变量

输出层 : soley 由我的模型确定:回归(一个节点)与分类(节点数等于类数,假设为 softmax)

隐藏层 :首先,一个隐藏层,其节点数等于输入层的大小。 “理想”的大小更有可能更小(即输入层中的数量和输出层中的数量之间的节点数量)而不是更大——同样,这只是一个经验观察,并且大部分这个观察是我自己的经验。如果项目证明所需的额外时间是合理的,那么我从一个由少量节点组成的隐藏层开始,然后(正如我在上面解释的那样)我将节点添加到隐藏层,一次一个,同时计算泛化误差、训练误差、偏差和方差。当泛化误差下降并且就在它再次开始增加之前,此时的节点数量是我的选择。见下图。

enter image description here

关于machine-learning - 多层感知器 (MLP) 架构 : criteria for choosing number of hidden layers and size of the hidden layer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10565868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com