Python 我怎样才能想象这个梯度下降算法?

Python 我怎样才能想象这个梯度下降算法?,python,matplotlib,plot,gradient-descent,Python,Matplotlib,Plot,Gradient Descent,如何直观地显示此梯度下降算法(例如图形) 我尝试用matplotlib制作一个非常简单的绘图,但无法将线条实际显示出来(图形初始化正确,但线条没有出现) 以下是我所做的: plt.plot(iterations, predicted) plt.ylabel("Prediction") plt.xlabel("Iteration Number") plt.show() 我试着做了一个搜索,但我发现没有一个资源适用于这种特殊的梯度下降格式 非常感谢您的帮助。迭代次数和预测次数都是代码中的标量(即一

如何直观地显示此梯度下降算法(例如图形)

我尝试用matplotlib制作一个非常简单的绘图,但无法将线条实际显示出来(图形初始化正确,但线条没有出现)

以下是我所做的:

plt.plot(iterations, predicted)
plt.ylabel("Prediction")
plt.xlabel("Iteration Number")
plt.show()
我试着做了一个搜索,但我发现没有一个资源适用于这种特殊的梯度下降格式


非常感谢您的帮助。

迭代次数和预测次数都是代码中的标量(即一维),这就是您无法生成折线图的原因。您需要将它们的值存储在两个数组中,以便能够绘制它们,我在下面提供了一个示例

K = 10000

iterations = numpy.arange(K)
predicted = numpy.zeros(K)

for k in range(K):

    # Forward Pass
    y = w * x

    predicted[k] = sigmoid(y)

    err = error(predicted[k], target)

    # Backward Pass
    g1 = error_predicted_deriv(predicted[k], target)

    g2 = activation_sop_deriv(predicted[k])

    g3 = sop_w_deriv(x)

    grad = g3 * g2 * g1

    # print(predicted[k])

    w = update_w(w, grad, learning_rate)

谢谢你的例子。我修改了代码,这一行出现了。然而,与我下面的例子不同,这条线似乎是直线下降,而不是曲线。这是与输入值有关还是与
w
未按应有的方式更新有关?另外,您如何能够将
迭代
预测
识别为标量?再次感谢,非常感谢。@JohanC啊,是的!这似乎解决了问题。谢谢你。
K = 10000

iterations = numpy.arange(K)
predicted = numpy.zeros(K)

for k in range(K):

    # Forward Pass
    y = w * x

    predicted[k] = sigmoid(y)

    err = error(predicted[k], target)

    # Backward Pass
    g1 = error_predicted_deriv(predicted[k], target)

    g2 = activation_sop_deriv(predicted[k])

    g3 = sop_w_deriv(x)

    grad = g3 * g2 * g1

    # print(predicted[k])

    w = update_w(w, grad, learning_rate)