估计人工神经网络的神经元数量和层数 [英] Estimating the number of neurons and number of layers of an artificial neural network

查看:296
本文介绍了估计人工神经网络的神经元数量和层数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种有关如何计算层数和每层神经元数的方法.作为输入,我只有输入向量的大小,输出向量的大小和训练集的大小.

I am looking for a method on how to calculate the number of layers and the number of neurons per layer. As input I only have the size of the input vector, the size of the output vector and the size of the training set.

通常,最好的网络是通过尝试不同的网络拓扑并选择误差最小的网络来确定的.不幸的是我不能那样做.

Usually the best net is determined by trying different net topologies and selecting the one with the least error. Unfortunately I cannot do that.

推荐答案

这是一个非常困难的问题.

This is a really hard problem.

网络的内部结构越多,网络在表示复杂解决方案方面就越好.另一方面,过多的内部结构会降低速度,可能会导致培训分散,或导致过度拟合-这可能会阻止您的网络很好地推广到新数据.

The more internal structure a network has, the better that network will be at representing complex solutions. On the other hand, too much internal structure is slower, may cause training to diverge, or lead to overfitting -- which would prevent your network from generalizing well to new data.

人们传统上以几种不同的方式来解决这个问题:

People have traditionally approached this problem in several different ways:

  1. 尝试不同的配置,看看最有效的方法.您可以将训练集分为两部分-一份用于训练,一件用于评估-然后训练和评估不同的方法.不幸的是,这听起来像您的实验方法不可用.

  1. Try different configurations, see what works best. You can divide your training set into two pieces -- one for training, one for evaluation -- and then train and evaluate different approaches. Unfortunately it sounds like in your case this experimental approach isn't available.

使用经验法则.很多人对最有效的方法提出了很多猜测.关于隐藏层中的神经元数量,人们推测(例如)它应该(a)在输入和输出层大小之间,(b)设置为接近(输入+输出)* 2/3,或者(c)不得大于输入层大小的两倍.

经验法则的问题是,它们并不总是考虑重要的信息等等因此,这些规则通常被用作让我们尝试一堆东西,然后看看什么是最佳方法"的粗略起点.

Use a rule of thumb. A lot of people have come up with a lot of guesses as to what works best. Concerning the number of neurons in the hidden layer, people have speculated that (for example) it should (a) be between the input and output layer size, (b) set to something near (inputs+outputs) * 2/3, or (c) never larger than twice the size of the input layer.

The problem with rules of thumb is that they don't always take into account vital pieces of information, like how "difficult" the problem is, what the size of the training and testing sets are, etc. Consequently, these rules are often used as rough starting points for the "let's-try-a-bunch-of-things-and-see-what-works-best" approach.

使用可动态调整网络配置的算法.诸如级联相关性从最小的网络开始,然后在训练期间添加隐藏的节点.这样可以使您的实验设置更加简单,并且(理论上)可以提高性能(因为您不会偶然使用不适当数量的隐藏节点).

Use an algorithm that dynamically adjusts the network configuration. Algorithms like Cascade Correlation start with a minimal network, then add hidden nodes during training. This can make your experimental setup a bit simpler, and (in theory) can result in better performance (because you won't accidentally use an inappropriate number of hidden nodes).

关于这个主题有很多研究-因此,如果您真的很感兴趣,可以阅读很多东西.在此摘要中引用 ,尤其是:

There's a lot of research on this subject -- so if you're really interested, there is a lot to read. Check out the citations on this summary, in particular:

Elisseeff,A.和Paugam-Moisy,H.(1997),. 《神经信息处理系统的发展》第9册,麻萨诸塞州剑桥市:麻省理工学院出版社,第162-168页.

Elisseeff, A., and Paugam-Moisy, H. (1997), "Size of multilayer networks for exact learning: analytic approach". Advances in Neural Information Processing Systems 9, Cambridge, MA: The MIT Press, pp.162-168.

这篇关于估计人工神经网络的神经元数量和层数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆