神经网络里为什么隐藏层越多越好?
6个回答
神经网络是非线性函数聚类+线性拟合。非线性函数作用是把每层输入特征空间分割成很多小的子空间,每个子空间是一个簇;然后每个神经元在一个子空间做线性回归。类似于用很短的线段去描任意曲线。
隐藏层越多,特征空间的抽象程度越高,分割的子空间也会更小,在子空间内的数据点可能会更线性相关。打个比方,以体重划分动物,找不出人类;如果以是否用手制造工具并有复杂语言为特征,更容易把人类找出来。
隐藏层越多,训练越困难,梯度消失会更严重。还有个问题是隐藏层越多,特征抽象程度会越高,更容易过拟合。需要更大训练数据解决过拟合。
SofaSofa数据科学社区DS面试题库 DS面经神经网络是利用中间的隐藏层去学习原来在机器学习中的特征,如果隐藏层越多,那么神经网络学习到的特征就越多,那么自然学习的效果越好。但是神经网络的隐藏层不是越多越好,因为存在梯度爆炸与梯度消失问题,神经网络的层数是有存在一定限制的,同时神经网络的隐藏层越多,那么相应需要学习的参数就越多,训练时间与训练难度就越大,所以隐藏层不是越多越好。
SofaSofa数据科学社区DS面试题库 DS面经贴一个老图,八十年代MIT 林肯实验室的Richard Lippmann就发现神经网络从1层,增加到2层,增加到3层,预测能力是越来越强。
但是和其他回答提到的一样,层数多到一定的极限,模型精度提升的边际效果肯定就越小了。