我正在寻找一种方法来计算层数和每层神经元的数量.作为输入,我只有输入向量的大小,输出向量的大小和trainig集的大小.
通常,通过尝试不同的网络拓扑并选择具有最小误差的网络来确定最佳网络.不幸的是我做不到.
artificial-intelligence machine-learning neural-network deep-learning
多层感知器神经网络中的隐藏层数对神经网络的行为方式有何影响?隐藏层中节点数量的问题相同?
假设我想使用神经网络进行手写字符识别.在这种情况下,我将像素颜色强度值作为输入节点,将字符类作为输出节点.
我如何选择隐藏层和节点的数量来解决这个问题?
我目前正在为具有387个特征和3000个样本的数据集构建一个nn.输出是3类.我将网络结构配置如下:
输入 - > 200 - > {300-> 100} - > 50->输出
我选择了正确数量的节点和图层吗?如何确定每个层的节点数(输入,隐藏和输出)?有规则吗?
参考这个关于选择NN中隐藏层数和单位数的答案:https:
//stackoverflow.com/a/10568938/2265724
该帖子建议添加隐藏单位的数量,直到泛化错误开始增加.
但我的问题是学习率.给定隐藏单元的数值(即图中的一个数据点或一个特定的架构,例如让我们说10个隐藏单元),如何设置学习率和训练多少个时期?
1.使用固定的学习率(在检查后收敛,即成本下降)并运行n个时期或直到成本(或验证错误)平稳(如果它确实以一个很好的渐近方式下降)
2.如同早期1停止
3.如在1或2中,但在某个(线性或对数)范围内尝试各种不同的学习率
4.如在3中,包括学习率衰减
5.如在3或4中,包括权重衰减作为正规化,或者可能更好,辍学
参数的数量从1增加到5. 1最快但听起来不令人满意(为什么不尝试其他学习率?).3-5是耗时的.因为如果我不开心,我需要通过增加隐藏单元的数量来尝试另一种架构.并重复,直到获得帖子中显示的图表.
我能正确理解和练习吗?