machine-learning - 过拟合、梯度消失和局部极小值之间的关系?

标签 machine-learning neural-network deep-learning

我正在尝试学习深度学习。

我对这些问题很困惑:过度拟合、梯度消失和局部最小值。

到目前为止,我了解了RBM由于过拟合而进行预训练的情况。但有人说需要预训练是因为Gradient Vanishing,也有人说是因为Local Minima。

所以..问题是,哪一个是真的?如果大家说的都对的话,能告诉我一下这些概念之间的关系吗?

<小时/>

我还是很困惑。到目前为止,我对梯度消失的理解是,早期层由于达到梯度零而无法很好地训练。那么你的意思是,训练不佳的早期层与达到局部最小值的概念相同?如果是这样,所有层都经过良好训练就是全局最优的。我说得对吗?

其次,就预训练而言,我知道它不再因为接收大量数据和随机初始化权重而受到关注。而接收大量数据与防止过拟合有关。所以..从这个角度来说是为了防止过度拟合而开发的。难道这个想法是错误的吗?

最佳答案

在深入研究深度学习算法之前,掌握机器学习(特别是统计机器学习)、统计学和概率论的核心概念非常有帮助。我建议the Elements of statistical learningProbability Theory书籍。

据我所知,RBM预训练被用作训练CNN的预处理,CNN是一个前馈网络,通过反向传播delta规则进行训练。一般来说,反向传播是在前馈网络上执行的,因为我们希望误差梯度(根据实际输出和预测输出之间的差异定义)达到零,这就是所谓的梯度消失 .

现在的一个问题是误差梯度在局部最小值上达到零;我们的进展将停滞在那里,因为我们的权重校正步骤与梯度的大小成正比(在最小值、局部或全局上接近于零)。有一些技术可以避免这种情况,例如“随机权重启动”。

过度拟合完全是另一回事。这是一种统计现象,表明您的算法几乎“记住”了训练数据,而不是“学习”它们(训练误差比测试误差小得多)。不仅是神经网络,当模型的自由度(可调整参数的数量,即神经网络中的权重) )与训练集的大小相比要高得多。假设二维空间中有 1 个点,您可以将无数直线和曲线拟合到该点。因此,不能保证所选模型也适合选择模型后发生的未见过的测试实例。

现在,CNN 的问题在于层数和神经元数量如此之多,以至于需要永远达到零梯度(每个神经连接都应该是一个权重)。您可以通过逐渐增加神经网络的大小并测量训练时间来测试这个想法。所以梯度消失在这里将是一个实际问题。现在,RBM ​​是一种可以有效调整初始权重的技术,以便在初始权重明显接近其最终期望值时开始反向传播过程。将其视为一个良好的开端。因此,作为对你问题的回答,我投票给梯度消失问题。

我再次强调,在使用 CNN 时,另外两个问题仍然存在。但据我所知,他们需要自己的解决方案:“大型数据集和正则化技术”用于过度拟合,“仔细研究梯度变化和随机权重启动的行为”以陷入局部极小值。

关于machine-learning - 过拟合、梯度消失和局部极小值之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825094/

相关文章:

随机森林回归 - 累积 MSE?

machine-learning - 如何在 tensorflow 0.11 中使用 RNN 编写多维回归预测器

tensorflow - 如何在CNN中安排不同的层

tensorflow - 为什么我们需要使用 feed_dict 传递值来打印 TensorFlow 中的损失值

python - CNTK:从用于多 GPU 训练的 numpy 数组创建 MinibatchSource

python - Word2VecKeyedVectors 的对象没有属性 'index_to_key'

machine-learning - 监督学习分类

neural-network - 子梯度的总和或平均值?,小批量 SGD keras

machine-learning - 神经网络,是否值得随时间改变学习率和动量

python - 在 keras 的 LSTM 中使用隐藏状态而不是输出