【问题标题】:What is wrong with my cost function in numpy?我在 numpy 中的成本函数有什么问题?
【发布时间】:2018-01-31 05:11:23
【问题描述】:

我试图为 Andrew Ng 深度学习课程中的编程作业实现成本函数,这需要我自己的原创作品。我也不允许未经许可复制分配代码,但无论如何我都会在这个问题中这样做。

成本的预期结果 = 6.000064773192205,但是使用此代码,我的成本结果 = 4.50006477319。有谁知道我在这段代码中做错了什么?

删除的代码

【问题讨论】:

  • 这一行的操作顺序是否正确?成本 = (-1/m) * np.sum((Y*np.log(A)) + (1-Y)*np.log(1-A))
  • 抱歉,我已经编辑了代码。
  • 我不确定操作的顺序。你会把它改成什么?
  • 这给了我 9.0001295.... 而不是 4.5....
  • 这很奇怪。我只是在 pycharm 中运行它,它给了我成本 = 4.5

标签: python numpy machine-learning deep-learning


【解决方案1】:
np.sum(np.multiply(Y, np.log(A)) + np.multiply((1-Y), np.log(1-A)))  /m   

【讨论】:

    【解决方案2】:

    以防万一您发现它很有用(并且因为我正在使用相同的源代码),您也可以通过使用它来调用您在上一步中定义的 sigmoid() 函数从propagate() 中代替:

    A = sigmoid(np.dot(w.T,X) + b)
    

    你的工作证明这不是必需的,但它更干净一些。

    【讨论】:

      【解决方案3】:

      您的 sigmoid 函数有错误。你应该计算np.dot(np.transpose(w), X) + b)的负数。

      这是我用过的一个

      A = 1 / (1 + np.exp(-(np.dot(np.transpose(w), X) + b)))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-11
        • 2015-09-30
        • 2017-10-07
        • 2013-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-17
        相关资源
        最近更新 更多