一. 梯度下降过程绘制
上节仅仅给出计算梯度下降的过程,本次则通过matplotlib绘制梯度下降的过程。
(1)初始化参数θ值。
(2)设置一个保存所有θ值的数组theta_history,每取一个新的θ值则将其保存。
(3)循环更新θ值和损失函数J(θ)的值,直到满足精度要求。
(4)以红色的"*"作为标记标记出学习的过程。
theta = 0.0
theta_history = [theta]
while True:
gradient = dJ(theta)
last_theta = theta
theta = theta - eta * gradient # 往负方向移动一步
theta_history.append(theta)
if (abs(J(theta) - J(last_theta)) < epsilon):
break
plt.plot(plot_x, J(plot_x))
plt.plot(np.array(theta_history), J(np.array(theta_history)), color='r', marker='*')
plt.show()
运行结果:
此时查看学习的次数为46次。