我被要求优化一段代码,该代码用于解决从两个不同的摄像机捕获的两组点之间找到最佳匹配的问题。当前的方法是使用SCG,它需要函数来计算误差,而另一函数需要用于计算梯度。我要介绍的优化是使用链式规则从误差函数计算梯度,而不是通过数值计算梯度。不幸的是,比较几个点的数值梯度和解析梯度会导致完全不同的梯度(按绝对值,但符号相同)。令我感到困惑的是,如果我引入学习率之类的东西-仅将梯度乘以 0.001或0.0001 ,解析梯度方法就会收敛到相同的全局最优值,否则会收敛到具有更高价值的解损失函数。
因此,我要征求有关如何调试问题的建议,如果我们假设区分正确实施,是否有办法找出导致问题的原因!
PS。所有代码都是用matlab编写的。