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