# 梯度 $\nabla$ 的方向 score 写成 $\nabla\log p$,里头 $\nabla$(读「那布拉」)是新符号,先单独讲清。这一节只讲 $\nabla$ 是什么,下一节讲它和 $\log p$ 合起来的意思。 > [!abstract] 先建立概念,$\nabla$ 是什么 > **$\nabla$(梯度)就是求导,跟你会的导数是同一个东西,区别只在变量个数。** > 一个变量,求导得一个数,是标量,比如 $\dfrac{\mathrm{d}h}{\mathrm{d}x}$。 > 多个变量,对每个变量各求一次导,把这些导数打包成一组,是矢量(一组数,带方向)。这个矢量就叫梯度,记 $\nabla h$。 > 一句话,标量是导数,矢量是梯度,本质都是求导。 > [!abstract] 一、$\nabla$ 具体长什么样 > $h(x,y)$ 有两个变量,对每个变量各求一次导,打包成一组: > $\nabla h=\Big(\frac{\partial h}{\partial x},\ \frac{\partial h}{\partial y}\Big)$ > $\dfrac{\partial h}{\partial x}$ 读「$h$ 对 $x$ 的偏导数」,意思是只对 $x$ 求导、其它变量当常数摁住不动。$\partial$(读「偏」)就是提醒「只动这一个」。$\dfrac{\partial h}{\partial y}$ 同理,只对 $y$ 求导。 > 两个导数凑成一组 $(\dots,\dots)$,就是梯度 $\nabla h$。变量再多也一样,有几个变量,就求几个偏导数、凑成几个分量。 > [!abstract] 二、这组数为什么带方向,方向指哪 > 这一组导数,每个分量是「沿那个坐标轴方向的变化速度」。$\dfrac{\partial h}{\partial x}$ 是沿 $x$ 轴的变化速度,$\dfrac{\partial h}{\partial y}$ 是沿 $y$ 轴的变化速度。 > 一组分量凑在一起就是个矢量,矢量本来就有方向。所以梯度自带方向,这是它跟单变量导数(只是一个数)不一样的地方。 > **这个方向有个确定的含义,$\nabla h$ 指向函数上升最快的方向。**各方向里哪个方向函数涨得最快,$\nabla h$ 就指哪。这是梯度最关键的性质,记住它。 > [!abstract] 三、加负号,指向下降最快的方向 > $\nabla h$ 指上升最快,前面加负号 $-\nabla h$ 就指反方向,也就是函数下降最快的方向。 > 记住这一对,$\nabla h$ 上升最快,$-\nabla h$ 下降最快。后面想让函数变小(往下走),就朝 $-\nabla h$ 走。 > [!question]- 练习 > 一,一个变量求导得什么、多个变量的 $\nabla$ 得什么。 > 二,$\nabla h$ 指向什么方向。 > 三,$-\nabla h$ 指向什么方向。 > [!note]- 练习答案 > 一,一个变量得一个数(标量);多个变量得一组数(矢量),即梯度。 > 二,函数上升最快的方向。 > 三,函数下降最快的方向。 > [!note]- 和主线(扩散)的关系 > 下一节的 score 是 $\nabla\log p$,就是对 $\log p$ 求梯度。**$p$ 是概率密度,$\nabla\log p$ 是一个矢量、带方向,这个方向指向概率上升最快、也就是数据更密的地方。**反向去噪要的就是这个方向,这一节先把 $\nabla$ 是「多变量求导、结果是带方向的矢量,指向上升最快」立住。