什么应该是随机梯度下降的通用的收敛标准

时间:2012-10-24 23:46:09

标签: machine-learning

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

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

a)每10%datat.size后检查一次丢失函数,在某个窗口上取平均值

b)在每10-20%的数据集大小

之后检查权重向量之间的差异的范数

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

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

我注意到这些检查(检查的准确性等)也取决于其他的东西,比如步长,学习率......而且效果可能因训练问题而异。

我似乎无法理解,无论在SGD模块中投掷的训练集fx,df / dw如何,通用停止标准应该是什么。你们做什么?

另外,对于(d),n维向量的“符号变化”是什么意思?因为,在给定dw_i,dw_i + 1的情况下,如何检测符号的变化,它是否具有超过2维的含义?

P.S。抱歉非数学/乳胶符号......仍然习惯这些东西。

1 个答案:

答案 0 :(得分:3)

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

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

enter image description here

enter image description here

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

其次,使用所谓的“微型计算机”进一步扭曲随机梯度下降。它与SGD的工作方式相同,只是它使用多个训练示例来进行渐变的每个估计。该技术减少了梯度估计的变化,并且通常更好地利用现代计算机中的分层存储器组织。请参阅 3