如何绘制复杂表面上的点轨迹
<p让我告诉你我如何在一篇博文中创建了一个梯度下降的动画来说明一个观点。这值得,因为这样我通过这个过程学到了更多的python,并掌握了一项新技能:制作动画图。

<p我将为您介绍我遵循的步骤过程。
背景简介
<p几天前,我发布了一篇关于梯度下降的博文,将其作为用于训练人工神经网络的优化算法。<p我想要包含一个动画图来展示选择不同的初始点进行梯度下降优化可能会产生不同结果。
<p就在我偶然发现了这些令人惊叹的动画,这些动画是几年前Alec Radford创建的,并在Reddit评论中分享,展示了一些高级的梯度下降算法,如Adagrad、Adadelta和RMSprop之间的差异。<p由于我一直在努力用python来替代matlab,我决定尝试自己编写类似的动画,首先使用一个“原始”的梯度下降算法。
<p让我们逐步进行。
绘制用于优化的表面
<p我们首先导入所需的库并定义要表示的数学函数。
<p我想要使用一个鞍点表面,因此我定义了以下方程:
<p我们还创建了一个用于绘制我们的表面的点网格。对于此任务,使用np.mgrid非常适合。传递的复数81j表示在起始值和停止值之间创建多少个点(81个点)。
import numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt# 创建计算表面的函数def f(theta): x = theta[0] y = theta[1] return x**2 - y**2# 创建用于绘制的点网格x, y = np.mgrid[-1:1:81j, -1:1:81j]
</p我们还创建了一个用于绘制我们的表面的点网格。对于此任务,使用</p我想要使用一个鞍点表面,因此我定义了以下方程:</p我们首先导入所需的库并定义要表示的数学函数。</p让我们逐步进行。</p由于我一直在努力用python来替代matlab,我决定尝试自己编写类似的动画,首先使用一个“原始”的梯度下降算法。</p就在我偶然发现了</p我想要包含一个动画图来展示选择不同的初始点进行梯度下降优化可能会产生不同结果。</p几天前,我发布了一篇</p我将为您介绍我遵循的步骤过程。</p让我告诉你我如何在一篇博文中创建了一个梯度下降的动画来说明一个观点。这值得,因为这样我通过这个过程学到了更多的python,并掌握了一项新技能:制作动画图。