zoukankan      html  css  js  c++  java
  • 梯度检测(代码实现)

    梯度检查将确保我们的反向传播工作的预期。我们可以把我们的成本函数的导数近似为:

    多θ的矩阵,我们可以近似导数ΘJ如下:

    对于ϵ小值(ε)如ϵ= 10−4,保证了正确的数学。如果ϵ的值足够小,我们可以最终数值问题。

    因此,我们只添加或减去ε的ΘJ矩阵。在matlab我们可以如下做:

    epsilon = 1e-4;
    for i = 1:n,
    thetaPlus = theta;
    thetaPlus(i) += epsilon;
    thetaMinus = theta;
    thetaMinus(i) -= epsilon;
    gradApprox(i) = (J(thetaPlus) - J(thetaMinus))/(2*epsilon)
    end;

    我们以前看到如何计算deltavector。所以一旦我们计算我们的gradapprox向量,我们可以检查gradapprox≈deltavector。

    一旦你有了一次你的反向传播算法是正确的,你不需要计算gradapprox再次。代码计算gradapprox会很慢。

  • 相关阅读:
    第三周作业
    #第四周作业
    第十二周作业
    第十一周作业
    第九周作业
    第八周作业
    2019第七周作业
    第三次实验报告及第五次课程总结
    第二次课程总结&学习总结
    第三周实验和学习总结
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/7326240.html
Copyright © 2011-2022 走看看