如何找到每层神经元的最佳数量?


28

在编写算法时,如何知道每一层需要多少个神经元?是否有找到最佳数量的方法,或者是经验法则?

Answers:



7

对于比随机或穷举搜索更智能的方法,您可以尝试使用遗传算法,例如NEAT http://nn.cs.utexas.edu/?neat。但是,这不能保证找到全局最优值,它只是基于性能的优化算法,因此很容易陷入局部最优值。


1
无论如何,它将非常接近于全局最优。
jjmerelo

4

Paper Szegedy C,Vanhoucke V,Ioffe S等。关键词:计算机视觉,初始构架 arXiv预印本arXiv:1512.00567,2015年。给出了一些一般设计原则:

  1. 避免出现代表性瓶颈,尤其是在网络初期。

  2. 平衡网络的宽度和深度。通过平衡每级滤波器的数量和网络的深度,可以达到网络的最佳性能。增加网络的宽度和深度可以有助于提高网络质量。但是,如果并行增加两者,则可以达到恒定计算量的最佳改进。因此,应在网络的深度和宽度之间以平衡的方式分配计算预算。

但是,这些建议无法为您带来网络中最佳的神经元数量。

但是,仍然有一些模型压缩研究,例如深层神经网络的结构稀疏学习(SSL)SqueezeNet修剪网络,这些可能为如何优化单层神经元提供了启示

特别是在深度神经网络的结构稀疏学习中,它Group Lasso在损失函数中添加了正则化项以对DNN的结构(即滤波器,通道,滤波器形状和层深度)进行正则化,即将某些成分归零(网络结构的过滤器,通道,过滤器形状和层深度),并实现了显着的网络紧凑性和加速性,同时保留了很小的分类精度损失。


3

您知道当神经元过多时就是过度适应。这意味着它不能正常工作,因为NN试图在不可能的最完美匹配上激活。就像两只具有相同原子量的不同猫一样,或者说,探测器NN仅在您的宠物猫的图片上激活,而没有其他任何东西。您需要一个更大的范围来激活nn。就像在猫的任何图片上一样。

过度拟合是没有真正快速解决方案的问题。您可以从太少开始,然后继续添加更多。或者从很多开始,然后将其删除,直到工作正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.