我正在调试我的约束随机梯度下降算法,论文http://research.microsoft.com/pubs/192769/tricks-2012.pdf建议用有限差分来检验梯度。我增加了一个惩罚函数,但模型不再收敛,所以我想检查我的梯度,如本文所建议的。
所以我可以选择一个例子来计算这个例子的损失,但是我的权向量包含了大约4000个特征,所以当损失是整数时,我得到了许多偏导数的向量作为梯度,所以不可能计算Q(z,w) +δg。我是否只需要计算w的单个特征的损失?这是指“当前的w”吗?
发布于 2016-01-12 20:22:08
该出版物中的等式看上去很奇怪,因为它没有被仔细描述。为了检查梯度,通常检查“猜测”的梯度g与数值梯度之间的差异,即i第四维是否等于。
( Q(z, w + delta*e_i) - Q(z, w) ) / ( delta )对于足够小的delta,而e_i是i第四正则向量(i第th维数为1,否则为0)是足够小的。换句话说,如果我们用g_i表示梯度的i第四维,那么您需要检查是否
| ( Q(z, w + delta*e_i) - Q(z, w) ) / ( delta ) - g_i | < eps
| Q(z, w + delta*e_i) - Q(z, w) - delta * g_i | < delta*eps可以归结为检查
| Q(z, w + delta*e_i) - ( Q(z, w) + delta * g_i ) | < delta*eps因此检查是否
Q(z, w + delta*e_i) ≈ ( Q(z, w) + delta * g_i )这是它们的方程,简单地说是feature-wise.
https://stackoverflow.com/questions/34751035
复制相似问题