根据维基百科(我知道这不是一个好的来源)人工神经网络由以下部分组成:
-
A个神经元的输入层
-
由C个神经元组成的多个(B)隐藏层
-
“D”个神经元的输出层
我理解输入层和输出层的意思。
我的问题是如何确定最佳的层数和每层的神经元数量?
- 增加“B”的优点/缺点是什么?
- 增加“C”的优点/缺点是什么?
- 增加“B”和增加“C”有什么区别?
这是不是只是时间问题(处理能力的限制),还是让网络更深会限制结果的质量?我应该更注重深度(更多层)还是广度(每层更多神经元)?
回答:
回答1. 一层可以解决大多数问题,或者最多使用两层。
回答2. 如果使用的神经元数量不足,网络将无法模拟复杂数据,结果拟合将很差。如果使用的神经元过多,训练时间可能会变得过长,更糟糕的是,网络可能会过度拟合数据。当发生过度拟合时,网络将开始模拟数据中的随机噪声。结果是模型对训练数据非常适合,但对新的、未见过的数据的泛化效果很差。必须使用验证来测试这种情况。
什么是过度拟合?
在统计学中,过度拟合是指统计模型描述了随机误差或噪声而不是潜在关系。过度拟合通常发生在模型过度复杂的情况下,例如相对于观测数量而言参数过多。过度拟合的模型通常具有较差的预测性能,因为它会夸大数据中的微小波动。过度拟合的概念在机器学习中很重要。通常,学习算法使用一些训练示例进行训练,即已知所需输出的示例情况。假设学习者能够达到一种状态,它也能够为其他示例预测正确的输出,从而推广到训练期间未展示的情况(基于其归纳偏见)。然而,特别是在学习时间过长或训练示例稀少的情况下,学习者可能会适应训练数据的非常具体的随机特征,这些特征与目标函数没有因果关系。在这个过度拟合的过程中,对训练示例的性能仍然在增加,而对未见数据的性能却变得更差。
回答3. 阅读回答1和2。
维基百科上关于监督学习的文章(http://en.wikipedia.org/wiki/Supervised_learning)将为您提供更多关于任何监督学习系统(包括神经网络)中真正重要的因素的见解。文章讨论了输入空间的维度、训练数据量、噪声等问题。