1.如何选择隐藏层数量和每层节点数量。
多层神经网络结构主要包括三个部分,输入层-隐藏层--输出层。
(1)输入层节点数目等于输入特征的数量,或者输入向量矩阵的横向维度。
(2)输出层节点数目,如果是回归问题,节点数目是1,如果是分类问题输出层节点数是1(如果是用softmax多类分类器,那么有多少个类就因该有多少个节点)
(3)隐藏层
如果你的数据是线性可分的(你通常需要先知道这个问题),你根本不需要隐藏层。但是话说回来,如果数据线线性可分,你为什么还要用神经网络呢?但是,当然,它也能很好的处理这个问题。
通常我们面对的是非线性可分的数据,有很多关于隐藏层设置的文章和评论,虽然没有一个固定的公式或策略来计算出“多少层”,“每层多少个”,但是有一个共识通常是有用的:增加隐藏层的数量(增加第二个,第三个等)带来的性能的提升往往很小,只用一个隐藏层足够解决大部分任务。所以,到底“多少层”,“每层多少个”?确实没有一个定论,很多时候都是根据经验指引(empirically-derived rules-of-thumb)。
现在笔者提供几种选择策略,供大家做初步设定:
1.在大多数任务中,采用下面的策略进行隐藏层设定通常可以取得很好的表现:(i)隐藏层数量设为1层, (ii)这一层节点的数目为输入层节点数目和输出层节点数目和的平均。
2.还有一个方法来求隐层节点数目, 根据Maters(1993)提出的几何金字塔规则(the geometric pyramid rule):对一个三层神经网络(输入层N节点,一个隐藏层,输出层M节点),隐藏层节点个数等于sqrt(M*N)。
3.输