给定优化问题:
,假设已经用代码上线了求目标函数值和求目标哈桉树梯度的功能,请问,如何利用求目标函数值的功能来验证求目标函数梯度的功能是否正确?
根据梯度的定义,目标函数的梯度向量为:,其中每一个元素为目标函数(优化函数)对这一模型参数求的偏导数。
回顾一下偏导数的定义:
,即函数L(\theta )在这点的斜率,ei为维度与\theta 一样的向量,只有在i这个维度为1,其余为0。
其中,的在0处的泰勒展开+拉格朗日余项开为:
在0处的泰勒展+拉格朗日余项开为:
最后通过合并、计算得出:
,M为常数,且每当h减小原来的十分之一,误差会减小到原来的百分之一。
因此,为了验证如上题目,可现将h选取一个比较小的数,将所有的\theta 带到上式中,若有的\theta 不满足,则可能
1)此\theta 对应的M过大
2)梯度分量计算错误
为了验证上俩个假设,降低h十分之一,若误差页跟着降低百分之一,则就为假设1,否则梯度分量计算有问题。