Matrix 深度学习模型中变节点数的直觉

Matrix 深度学习模型中变节点数的直觉,matrix,vector,neural-network,deep-learning,sparse-matrix,Matrix,Vector,Neural Network,Deep Learning,Sparse Matrix,除了试错之外,在深度学习模型中改变节点数量会产生什么影响 我是这样解释的:如果节点数较少,则层的每个学习表示都是密集向量;反之,如果节点数较多,则每个表示都是稀疏向量。这是如何提高训练精度的?据我所知,为什么过度参数化的网络能够与类似SGD的优化技术很好地结合,目前还不太清楚。我们知道深度网络比新的测试数据更通用。增加单元的数量会增加模型的学习能力,从而获得越来越多的训练数据。当然,节点之间会有很多冗余,如果在权重上使用适当的正则化,最终可以得到稀疏模型。例如,使用1000-1000-1000(

除了试错之外,在深度学习模型中改变节点数量会产生什么影响


我是这样解释的:如果节点数较少,则层的每个学习表示都是密集向量;反之,如果节点数较多,则每个表示都是稀疏向量。这是如何提高训练精度的?

据我所知,为什么过度参数化的网络能够与类似SGD的优化技术很好地结合,目前还不太清楚。我们知道深度网络比新的测试数据更通用。增加单元的数量会增加模型的学习能力,从而获得越来越多的训练数据。当然,节点之间会有很多冗余,如果在权重上使用适当的正则化,最终可以得到稀疏模型。例如,使用1000-1000-1000(3个密集层,每个层有1000个单元)的网络,使用100k训练样本,可能会获得90%的准确率。你可能会遇到另一个500公里的训练样本,准确率仍然是90%。模型可能已经达到饱和点,您需要增加单元/层或修改模型架构

您的问题也可以用
来表达,深度学习模型的宽度和深度如何影响最终的表现?
。有一个很好的答案。我重复以下一些答案:

  • Widdening持续改进不同深度剩余网络的性能
  • 增加深度和宽度有助于直到参数数量变得太多,需要更强的正则化
  • 在剩余网络中,似乎不存在非常高深度的正则化效果,因为具有相同数量的 作为细参数的参数可以学习相同或更好的表示。此外,广域网可以通过2个或更多的用户成功学习 参数数量是细参数的数倍,这将- 要求将精简网络的深度增加一倍,使其不可行 训练费用昂贵
碰巧,当我在学习学校模块时,这个问题被提了出来,但为了便于分析,它被简化了。您可以在此链接()上看到作业的问题和答案

我在这篇作业中得出的结论(你可以在eassy.pdf的第7页看到更多细节)是,更宽的网络通常具有更好的容量,但也更容易过度拟合

凭直觉,你可以这样想象。更宽的节点本质上意味着将输入空间分解为多个可能重叠的输出空间,然后在下一层重新组合。如果该层中有更多节点,则有更大的潜在输出空间集,可直接转化为容量。事实上,一般来说,深度并不能直接转化为能力,这与人们的普遍看法相反


最后请注意,如果您的意思是稀疏==向量中的许多零值,则您的解释不一定正确。如果使用relu激活,那么向量中确实有许多零。然而,一般来说,表示向量中接近零的节点数与节点数无关。

神经网络可被视为函数逼近工具。近似的质量由其误差定义,即预测与基本事实之间的距离。如果我们撇开更实用的方法(试错法)不谈,有两种理论可以用来研究节点数量(也称宽度)对网络质量的影响;一个是计算理论,另一个是代数拓扑。两者都还没有提供可立即转换为“如果您添加了另一个节点,那么这种情况就会发生”的结果,但两者都提供了一些非常好的见解。我不确定这是否是您期望的答案,但我将尝试非常简要地向您介绍后一个领域在解释方面提供的要点

代数拓扑/控制理论

  • “浅”网络(即单个密集层)可以在假定节点数不受约束的情况下,以任意低误差近似任何连续函数。这意味着,你的网络可以(几乎)完美地学习你扔给它的任何东西,不管它有多复杂,只要你能让它使用它想要的任意多的节点(可能是无限的)。实际上,即使我们知道存在一个近似于误差ε的浅网络→ 如果是连续函数f,我们不知道该网络是什么,也不知道如何估计其参数。通常,f越复杂,我们希望ε越低,我们需要的节点就越多,直到由于维数灾难而无法进行训练为止。在非常实用的术语中,这意味着层越宽,表示越丰富,预测越准确。作为一个副作用,您还需要培训更多的参数,因此需要更多的数据要求,并采取措施防止过度拟合
  • 高阶张量,例如通常用作神经网络目标函数的张量,可以分解为一系列潜在的低阶张量。这有效地减少了自由度,使数值表示更容易,参数少得多。然而,与确定系数本身一样,确定分解的秩(求和数)也是NP困难的。浅层网络对应于正则分解,因此,由于它是NP难的,因此无法对构造完美近似所需的节点数提出任何要求。然而,我们知道的是,循环网络