【问题标题】:How to interpret the output of checkgrad function in scipy?如何解释 scipy 中 checkgrad 函数的输出?
【发布时间】:2015-11-17 20:06:50
【问题描述】:

scipy.optimize.check_grad 的预期输出是梯度和梯度的有限差分近似之间的差的 2 范数。我无法从输出中了解我的渐变是否足够好。是否存在值必须属于的范围?什么是可接受的错误?

【问题讨论】:

    标签: numpy optimization machine-learning scipy


    【解决方案1】:

    您的梯度函数返回一个向量,我们称它为g,scipy 数值方法可以为您提供良好的(虽然成本很高)估计v。现在你得到的是

    ||g-v|| = sqrt( SUM_{i=1}^d (g_i - v_i)^2 )
    

    换句话说,它是在所有维度上求和的梯度平方误​​差的平方根。什么是可接受的错误?取决于函数和梯度维度。我想说10e-4 以上的一切都是错误的。虽然回答 10e-410e-10 是否正常取决于您的特定应用程序 - 对简单随机优化有不同的要求(有时只需要每个维度的 符号 而不是值)并且不同了解解决一些复杂数值模拟的精确方法。

    【讨论】:

    • 您能否直接介绍有关不同要求的材料(例如每个维度的符号而不是值)?
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 2018-12-31
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2016-04-10
    相关资源
    最近更新 更多