过度拟合,梯度消失和局部最小值之间的关系?

问题描述 投票:1回答:3

我正在努力学习深度学习。

我对这些问题非常困惑:过度拟合,渐变消失和局部最小值。

到目前为止,我了解由于过度拟合而进行预训练的RBM。但是有些人说因为Gradient Vanishing而需要预训练,而其他一些人则因为Minima来说。

所以..问题是,哪一个是真的?如果所有人都说的是正确的,你能告诉我这些概念之间的关系吗?


我还在困惑。到目前为止,我对Gradient Vanishing的理解是,由于达到梯度零,早期层无法很好地训练。那么你的意思是,那些训练不好的早期层次与当地最低层次相同的概念是什么?如果是这样,所有层都训练有素是全球最佳的。我对吗?

其次,在预训练的情况下,我已经知道通过接收大量数据和随机初始化权重不再需要它。并且接收大量数据与防止过度拟合有关。所以..在这个角度来看是因为防止过度拟合而开发的。这是错误的想法吗?

machine-learning neural-network deep-learning
3个回答
1
投票

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

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

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

过度拟合完全是另一回事。这是一种统计现象,表明您的算法几乎“记忆”了训练数据而不是“学习”它们(训练误差远小于您的测试误差)。当模型的自由度(可调参数的数量,即神经网络中的权重)时,不仅神经网络,而且每个机器学习算法(作为数据驱动的统计模型)都有过度拟合数据的风险)与训练集的大小相比要高得多。假设您在2D空间中有1个点,那么您可以在该点上放置无数的线条和曲线。因此,无法保证所选模型也适合在选择模型后发生的看不见的测试实例。

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

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


0
投票

所以关于当地最低。训练算法的任务是最小化误差函数。最常用的是1/2(期望 - 达到)^ 2

为了获得这一点,backprop使用该函数的第一次推导来获得最小化。 BP基于权重和梯度计算误差梯度是大多数增加误差的方向。所以英国石油公司使用-gradient与大多数错误增加相反。

那么问题出在哪里?这种方法不能保证全局最小化。全局最小值是权重配置,它产生尽可能小的错误。

也过度拟合。想象一下数百维输入向量和数百万权重。从理论上讲,网络能够记住数据集中的每个输入值并对其进行分类。但是如果从测试数据集中获取网络内容,则概率很高的网络会失败。你想要网络概括而不是记忆。为避免这种情况,可以使用dropout(在学习过程中删除一些突触或神经元)和验证数据集。您使用训练数据集训练网络并减少错误,但您还会在验证数据集上观察到错误(但网络未从此数据中学习)。因此,两个数据集上的错误都会减少,但如果在训练数据上出现错误并且在验证时开始增加,则会停止学习,因为这种情况会过度拟合症状。


0
投票

过度拟合:过度拟合是指训练和测试数据之间的准确性差异。如果差异很大,则要么必须增加数据集的大小(数据增加),要么使用正则化技术。过度拟合表示您的模型记忆的训练数据没有概括培训数据。

梯度消失:梯度消失是由于具有小范围的激活功能而发生的困难。例如,如果使用sigmoid激活函数,则即使值较大,每层的输入也将落在[0,1]范围内。这是什么意思?这意味着如果您更改具有更大值的参数,它将不会导致输出发生重大变化,因为它将再次落在[0,1]范围内。因此,输出相对于参数的变化率太小。因此,不会发生参数更新意味着将消失梯度。

局部最小值:局部最小值是由于学习率较低而导致模型卡住的点。这个问题可以通过使用大学习率或不同的优化器来解决,如rmsprop,Adam等。

© www.soinside.com 2019 - 2024. All rights reserved.