微积分与梯度
导数
对一个函数y=f(x)y=f(x)y=f(x)进行求导(微分),可以得到这个函数 y 对于 x 的导数,表示为Df(x)Df(x)Df(x)。
导数的意义在于,其可以表示一个函数在某一点上的斜率。
函数y=x2y=x^2y=x2的导数是 y′=2xy'=2xy′=2x :
import numpy as np
import matplotlib.pyplot as plt
# x 的取值范围
x = np.linspace(-5, 5, 500)
# 原函数
y = x ** 2
# 导函数
dy = 2 * x
# 绘图
plt.plot(x, y, label="f(x) = x²")
plt.plot(x, dy, label="f'(x) = 2x")
plt.axhline(0, linewidth=0.8)
plt.axvline(0, linewidth=0.8)
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.grid(True)
end()
plt.grid(True)
plt.show()

梯度
如果一个函数有多个变量:y=f(x1,x2,...,xn)y=f(x_1,x_2,...,x_n)y=f(x1,x2,...,xn),我们就需要求其对于第 i 个变量的导数,称之为 偏导数 :Dif(x)D_if(x)Dif(x)。
如果我们将函数对于其所有变量的偏导数组合在一起,就可以形成一个向量(一维数组):[D1f(x1),D2f(x2),...Dnf(xn)][D_1f(x_1),D_2f(x_2),...D_nf(x_n)][D1f(x1),D2f(x2),...Dnf(xn)],我们将这个向量称为函数 y 的梯度:$\nabla f(\mathbf{x}) $。
梯度的意义在于,我们找到了一种方法来衡量复杂函数在某一点的变化率。对于函数上的某一点,计算其梯度,我们只需要沿着梯度的反方向移动,就可以使得函数值下降,从而找到一个函数低点(往往是局部低点)。这个过程就称之为 梯度下降 。


2230

被折叠的 条评论
为什么被折叠?



