根据Wikipedia(这是一个不好的来源,我知道)神经网络由
组成A神经元的输入层
多个(B)隐藏层,每个层由C神经元组成。
“D”神经元的输出层。
我理解输入和输出层的含义。
我的问题是如何确定最佳的层数和每层神经元?
只是时间量(处理能力的限制)或是否会使网络更深入地限制结果质量,我应该更多地关注深度(更多层)还是广度(每层更多神经元)?
答案 0 :(得分:8)
答案1。一层可以模拟大多数问题,或者最多可以使用两层。
答案2。如果使用的神经元数量不足,网络将无法对复杂数据进行建模,因此结果不合适。如果使用太多神经元,则训练时间可能变得过长,并且更糟糕的是,网络可能过度拟合数据。当 过度拟合 $发生时,网络将开始模拟数据中的随机噪声。结果是该模型非常适合训练数据,但它很难概括为新的,看不见的数据。必须使用验证来测试这一点。
$什么是过度拟合?
在统计学中,当统计模型描述随机误差或噪声而不是基础关系时,会发生过度拟合。过度拟合通常在模型过于复杂时发生,例如相对于观察数量具有太多参数。过度拟合的模型通常具有较差的预测性能,因为它可能夸大数据中的微小波动。 过度拟合的概念在机器学习中很重要。通常使用一组训练示例来训练学习算法,即,期望输出已知的示例性情况。假设学习者达到一种状态,在该状态下,学习者也能够预测其他示例的正确输出,从而推广到训练期间未呈现的情况(基于其归纳偏差)。然而,特别是在学习执行时间过长或训练样本很少的情况下,学习者可以调整到训练数据的非常特定的随机特征,这些特征与目标函数没有因果关系。在这个过度拟合的过程中,训练样例的性能仍然会提高,而看不见的数据的性能会变差。
回答3。阅读答案1& 2。
维基百科上的监督学习文章(http://en.wikipedia.org/wiki/Supervised_learning)将让您更深入地了解哪些因素对包括神经网络在内的任何监督学习系统非常重要。文章讨论了输入空间的维度,训练数据的数量,噪声等。
答案 1 :(得分:3)
层数/节点数取决于分类任务以及您对NN的期望。从理论上讲,如果你有一个线性可分的函数/决策(例如布尔AND函数),1层(即只有没有隐藏层的输入层)将能够形成超平面并且就足够了。如果您的函数不是线性可分的(例如布尔XOR),那么您需要隐藏图层。
使用1个隐藏层,您可以形成任何可能无界的凸区域。可以表示具有有限映射的任何有界连续函数。更多关于here。
另一方面,2个隐藏层能够表示任意复杂的决策边界。唯一的限制是节点数量。在典型的2-隐藏层网络中,第一层计算区域,第二层计算AND操作(每个超立方体一个)。最后,输出层计算OR运算。根据Kolmogorov's Theorem,所有功能都可以通过2隐藏层网络学习,您永远不需要超过2个隐藏层。但是,在实践中,1-hidden-layer几乎总能完成工作。
总之,对于线性可分函数,修正B = 0,对于其他所有函数,修正B = 1.
对于C以及B和C的关系,看看The Number of Hidden Layers。它提供了一般信息,并提到了不合适,过度拟合。
作者根据经验建议以下其中一项: