使用Shuffle数据进行回归的随机梯度下降表现优于未洗牌。为什么?

时间:2015-04-08 13:28:27

标签: machine-learning neural-network gradient-descent

我正在使用随机梯度下降(SGD)算法进行回归任务,并训练网络进行输入数据点的多次迭代。我发现,与相同迭代次数的非抽动输入数据相比,输入数据的混洗可以提供更好的结果。举个例子,我正在训练网络学习[-1,1]之间输入范围的“Square”函数,总共100个点和500次迭代。因此,总训练点数为100 * 500,如果我将所有这些训练点洗牌,系统的表现要好得多。

有人可以建议背后的数学是什么?为什么改组输入表现更好?或者对参考文件的任何建议,这解释了培训中的时尚性如何帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

因为SGD的工作原理是根据遇到的每个样本进行大量调整,然后对剩余的样本进行随后的越来越小的调整,样本的顺序很重要。如果模型在前几次迭代中仅遇到正样本或仅有负样本,则尤其如此。

答案 1 :(得分:0)

顾名思义,随机梯度下降使用损失函数的STOCHASTIC梯度更新神经网络(NN)的参数向量。

随机梯度是真实梯度的“ unbiased estimation”。换句话说,随机梯度是一个随机变量,其期望值等于“真实”梯度。

在NN中,梯度是损失函数的梯度。幸运的是,损失函数是线性的,因此它是在每个样本处计算出的损失函数的平均值。

当我们获取一个样本并在那里计算损失函数的梯度时,我们得到的值可以看作是对真实梯度的估计。现在,如果以某种方式对样本进行排序,则在它们上计算的损失函数的序列就不会“无偏”。

概括地说,要应用随机梯度下降法,必须对样本进行采样,以使它们从概率分布中独立抛出,以使在每个样本上计算的损失函数的梯度“似乎”都是真实的无偏估计。损失函数。