# 梯度 $\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$ 是「多变量求导、结果是带方向的矢量,指向上升最快」立住。