一般来说,通过向隐藏层添加更多节点或更多隐藏层来扩展人工神经网络会得到什么?
它是否允许更精确的映射,或者它是否允许它可以识别的关系更微妙,还是其他?
最佳答案
机器学习中有一个众所周知的结果,它指出单个隐藏层足以逼近任何平滑的有界函数(该论文名为 "Multilayer feedforward networks are universal approximators",现在已有近 20 年历史了)。但是,有几点需要注意。
- 单个隐藏层可能需要任意宽度。
- 这并没有说明找到近似值的难易程度;一般来说,大型网络很难正确训练,并且经常成为过度拟合的受害者(所谓的“卷积神经网络”除外,它实际上只用于解决视觉问题)。
- 这也没有说明表示的效率。如果使用一层完成,一些函数需要指数数量的隐藏单元,但使用更多层可以更好地扩展(有关此内容的更多讨论,请阅读 Scaling Learning Algorithms Towards AI)
深度神经网络的问题在于它们更难训练。你最终会得到非常非常小的梯度被反向传播到较早的隐藏层并且学习不会真正去任何地方,特别是如果权重被初始化为小(如果你将它们初始化为更大的幅度你经常会陷入糟糕的局部最小值) .有一些用于“预训练”的技术,例如本 Google tech talk 中讨论的技术。 Geoff Hinton 试图解决这个问题。
关于algorithm - 人工神经网络问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332722/