我正在为随机梯度下降实现一个通用模块。这需要参数:训练数据集,损失(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为非数学/乳胶符号道歉......仍然习惯了这些东西。