1

我正在为随机梯度下降实现一个通用模块。这需要参数:训练数据集,损失(x,y),dw(x,y) - 每个样本损失和每个样本梯度变化。

现在,对于收敛标准,我想到了:-

a) 每 10% 的 dataset.size 后检查损失函数,在某个窗口上取平均值

b) 在每 10-20% 的数据集大小之后检查权重向量之间差异的范数

c) 训练集上的误差稳定。

d)梯度符号的变化(再次,在每个固定间隔后检查) -

我注意到这些检查(检查精度等)还取决于其他东西,比如步长、学习率……而且效果可能因一个训练问题而异。

我似乎无法决定,通用停止标准应该是什么,无论在 SGD 模块中抛出的训练集 fx、df/dw 是什么。你们是做什么的?

另外,对于 (d),n 维向量的“符号变化”是什么意思?因为,在 - 给定 dw_i,dw_i+1 中,我如何检测符号的变化,它甚至在超过 2 个维度上都有意义吗?

PS为非数学/乳胶符号道歉......仍然习惯了这些东西。

4

1 回答 1

3

首先,随机梯度下降是梯度下降方法的在线版本。更新规则一次使用一个示例。

假设,f(x)是单个示例的成本函数,SGD 对 N 维向量的停止标准通常是:

在此处输入图像描述

在此处输入图像描述

有关详细信息,请参阅此1或此2

其次,使用所谓的“小批量”对随机梯度下降有进一步的扭曲。它的工作原理与 SGD 相同,只是它使用多个训练示例来进行梯度估计。这种技术减少了梯度估计的方差,并且经常更好地利用现代计算机中的分层内存组织。见此3

于 2012-10-25T00:06:48.287 回答